Bio::Phenotype
Phenotype
Summary
Phenotype - A class for modeling phenotypes
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
#get Bio::Phenotype::PhenotypeI somehow
print $phenotype->name(), "\n";
print $phenotype->description(), "\n";
my @keywords = ( "achondroplasia", "dwarfism" );
$phenotype->add_keywords( @keywords );
foreach my $keyword ( $phenotype->each_keyword() ) {
print $keyword, "\n";
}
$phenotype->remove_keywords();
foreach my $gene_symbol ( $phenotype->each_gene_symbol() ) {
print $gene_symbol, "\n";
}
foreach my $corr ( $phenotype->each_Correlate() ) {
# Do something with $corr
}
foreach my $var ( $phenotype->each_Variant() ) {
# Do something with $var (mutation)
}
foreach my $measure ( $phenotype->each_Measure() ) {
# Do something with $measure
}
Description
This superclass implements common methods for classes modelling phenotypes.
Bio::Phenotype::OMIM::OMIMentry is an example of an instantiable phenotype
class (the design of this interface was partially guided by the need
to model OMIM entries).
Please note. This class provides methods to associate mutations
(methods "each_Variant", ...) and genotypes (methods "each_Genotype", ...)
with phenotypes. Yet, these aspects might need some future enhancements,
especially since there is no "genotype" class yet.
Methods
Methods description
Title : new
Usage : $obj = Bio::Phenotype::Phenotype->new( -name => "XY",
-description => "This is ..." );
Function: Creates a new Phenotype object.
Returns : A new Phenotype object.
Args : -name => the name
-description => the description of this phenotype
-species => ref to the the species
-comment => a comment |
Title : init()
Usage : $obj->init();
Function: Initializes this OMIMentry to all "" and empty lists.
Returns :
Args : |
Title : name
Usage : $obj->name( "r1" );
or
print $obj->name();
Function: Set/get for the name or id of this phenotype.
Returns : A name or id [scalar].
Args : A name or id [scalar] (optional). |
Title : description
Usage : $obj->description( "This is ..." );
or
print $obj->description();
Function: Set/get for the description of this phenotype.
Returns : A description [scalar].
Args : A description [scalar] (optional). |
Title : species
Usage : $obj->species( $species );
or
$species = $obj->species();
Function: Set/get for the species of this phenotype.
Returns : A species [Bio::Species].
Args : A species [Bio::Species] (optional). |
Title : comment
Usage : $obj->comment( "putative" );
or
print $obj->comment();
Function: Set/get for a comment about this phenotype.
Returns : A comment [scalar].
Args : A comment [scalar] (optional). |
Title : each_gene_symbol()
Usage : @gs = $obj->each_gene_symbol();
Function: Returns a list of gene symbols [scalars, most likely Strings]
associated with this phenotype.
Returns : A list of scalars.
Args : |
Title : add_gene_symbols
Usage : $obj->add_gene_symbols( @gs );
or
$obj->add_gene_symbols( $gs );
Function: Pushes one or more gene symbols [scalars, most likely Strings]
into the list of gene symbols.
Returns :
Args : scalar(s). |
Usage : $obj->remove_gene_symbols();
Function: Deletes (and returns) the list of gene symbols [scalars,
most likely Strings] associated with this phenotype.
Returns : A list of scalars.
Args : |
Title : each_Variant()
Usage : @vs = $obj->each_Variant();
Function: Returns a list of Bio::Variation::VariantI implementing objects
associated with this phenotype.
This is for representing the actual mutation(s) causing this
phenotype.
{* The "variants" data member and its methods will/might need to be
changed/improved in one way or another, CZ 09/06/02 *}
Returns : A list of Bio::Variation::VariantI implementing objects.
Args : |
Usage : $obj->add_Variants( @vs );
or
$obj->add_Variants( $v );
Function: Pushes one or more Bio::Variation::VariantI implementing objects
into the list of Variants.
Returns :
Args : Bio::Variation::VariantI implementing object(s). |
Title : remove_Variants
Usage : $obj->remove_Variants();
Function: Deletes (and returns) the list of Bio::Variation::VariantI implementing
objects associated with this phenotype.
Returns : A list of Bio::Variation::VariantI implementing objects.
Args : |
Title : each_Reference()
Usage : @refs = $obj->each_Reference();
Function: Returns a list of Bio::Annotation::Reference objects
associated with this phenotype.
Returns : A list of Bio::Annotation::Reference objects.
Args : |
Title : add_References
Usage : $obj->add_References( @refs );
or
$obj->add_References( $ref );
Function: Pushes one or more Bio::Annotation::Reference objects
into the list of References.
Returns :
Args : Bio::Annotation::Reference object(s). |
Title : remove_References()
Usage : $obj->remove_References();
Function: Deletes (and returns) the list of Bio::Annotation::Reference objects
associated with this phenotype.
Returns : A list of Bio::Annotation::Reference objects.
Args : |
Title : each_CytoPosition()
Usage : @cps = $obj->each_CytoPosition();
Function: Returns a list of Bio::Map::CytoPosition objects
associated with this phenotype.
Returns : A list of Bio::Map::CytoPosition objects.
Args : |
Title : add_CytoPositions
Usage : $obj->add_CytoPositions( @cps );
or
$obj->add_CytoPositions( $cp );
Function: Pushes one or more Bio::Map::CytoPosition objects
into the list of CytoPositions.
Returns :
Args : Bio::Map::CytoPosition object(s). |
Title : remove_CytoPositions
Usage : $obj->remove_CytoPositions();
Function: Deletes (and returns) the list o fBio::Map::CytoPosition objects
associated with this phenotype.
Returns : A list of Bio::Map::CytoPosition objects.
Args : |
Title : each_Correlate()
Usage : @corrs = $obj->each_Correlate();
Function: Returns a list of Bio::Phenotype::Correlate objects
associated with this phenotype.
(Correlates are correlating phenotypes in different species;
inspired by mouse correlates of human phenotypes in the OMIM
database.)
Returns : A list of Bio::Phenotype::Correlate objects.
Args : |
Title : add_Correlates
Usage : $obj->add_Correlates( @corrs );
or
$obj->add_Correlates( $corr );
Function: Pushes one or more Bio::Phenotype::Correlate objects
into the list of Correlates.
Returns :
Args : Bio::Phenotype::Correlate object(s). |
Title : remove_Correlates
Usage : $obj->remove_Correlates();
Function: Deletes (and returns) the list of Bio::Phenotype::Correlate objects
associated with this phenotype.
Returns : A list of Bio::Phenotype::Correlate objects.
Args : |
Title : each_Measure()
Usage : @ms = $obj->each_Measure();
Function: Returns a list of Bio::Phenotype::Measure objects
associated with this phenotype.
(Measure is for biochemically defined phenotypes
or any other types of measures.)
Returns : A list of Bio::Phenotype::Measure objects.
Args : |
Title : add_Measures
Usage : $obj->add_Measures( @ms );
or
$obj->add_Measures( $m );
Function: Pushes one or more Bio::Phenotype::Measure objects
into the list of Measures.
Returns :
Args : Bio::Phenotype::Measure object(s). |
Title : remove_Measures
Usage : $obj->remove_Measures();
Function: Deletes (and returns) the list of Bio::Phenotype::Measure objects
associated with this phenotype.
Returns : A list of Bio::Phenotype::Measure objects.
Args : |
Title : each_keyword()
Usage : @kws = $obj->each_keyword();
Function: Returns a list of key words [scalars, most likely Strings]
associated with this phenotype.
Returns : A list of scalars.
Args : |
Title : add_keywords
Usage : $obj->add_keywords( @kws );
or
$obj->add_keywords( $kw );
Function: Pushes one or more keywords [scalars, most likely Strings]
into the list of key words.
Returns :
Args : scalar(s). |
Title : remove_keywords
Usage : $obj->remove_keywords();
Function: Deletes (and returns) the list of key words [scalars,
most likely Strings] associated with this phenotype.
Returns : A list of scalars.
Args : |
Title : each_DBLink()
Usage : @dbls = $obj->each_DBLink();
Function: Returns a list of Bio::Annotation::DBLink objects
associated with this phenotype.
Returns : A list of Bio::Annotation::DBLink objects.
Args : |
Title : remove_DBLinks
Usage : $obj->remove_DBLinks();
Function: Deletes (and returns) the list of Bio::Annotation::DBLink objects
associated with this phenotype.
Returns : A list of Bio::Annotation::DBLink objects.
Args : |
Title : each_Reference()
Usage : @gts = $obj->each_Reference();
Function: Returns a list of "Genotype" objects
associated with this phenotype.
{* the "genotypes" data member and its methods certainly will/needs to be
changed/improved in one way or another since there is
no "Genotype" class yet, CZ 09/06/02 *}
Returns : A list of "Genotype" objects.
Args : |
Title : add_Genotypes
Usage : $obj->add_Genotypes( @gts );
or
$obj->add_Genotypes( $gt );
Function: Pushes one or more "Genotypes"
into the list of "Genotypes".
Returns :
Args : "Genotypes(s)". |
Title : remove_Genotypes
Usage : $obj->remove_Genotypes();
Function: Deletes (and returns) the list of "Genotype" objects
associated with this phenotype.
Returns : A list of "Genotype" objects.
Args : |
Title : _check_ref_type
Usage : $self->_check_ref_type( $value, "Bio::Annotation::DBLink" );
Function: Checks for the correct type.
Returns :
Args : The value to be checked, the expected class. |
Methods code
sub new
{
my( $class,@args ) = @_;
my $self = $class->SUPER::new( @args );
my ( $name,
$description,
$species,
$comment )
= $self->_rearrange( [ qw( NAME
DESCRIPTION
SPECIES
COMMENT ) ], @args );
$self->init();
$name && $self->name( $name );
$description && $self->description( $description );
$species && $self->species( $species );
$comment && $self->comment( $comment );
return $self;
}
} |
sub init
{
my( $self ) = @_;
$self->name( "" );
$self->description( "" );
my $species = Bio::Species->new();
$species->classification( qw( sapiens Homo ) );
$self->species( $species );
$self->comment( "" );
$self->remove_Correlates();
$self->remove_References();
$self->remove_CytoPositions();
$self->remove_gene_symbols();
$self->remove_Genotypes();
$self->remove_DBLinks();
$self->remove_keywords();
$self->remove_Variants();
$self->remove_Measures();
}
} |
sub name
{ my ( $self, $value ) = @_;
if ( defined $value ) {
$self->{ "_name" } = $value;
}
return $self->{ "_name" };
}
} |
sub description
{ my ( $self, $value ) = @_;
if ( defined $value ) {
$self->{ "_description" } = $value;
}
return $self->{ "_description" };
}
} |
sub species
{ my ( $self, $value ) = @_;
if ( defined $value ) {
$self->_check_ref_type( $value, "Bio::Species" );
$self->{ "_species" } = $value;
}
return $self->{ "_species" };
}
} |
sub comment
{ my ( $self, $value ) = @_;
if ( defined $value ) {
$self->{ "_comment" } = $value;
}
return $self->{ "_comment" };
}
} |
sub each_gene_symbol
{ my ( $self ) = @_;
if ( $self->{ "_gene_symbols" } ) {
return @{ $self->{ "_gene_symbols" } };
}
else {
return my @a = ();
}
}
} |
sub add_gene_symbols
{ my ( $self, @values ) = @_;
return unless( @values );
push( @{ $self->{ "_gene_symbols" } }, @values );
}
} |
sub remove_gene_symbols
{ my ( $self ) = @_;
my @a = $self->each_gene_symbol();
$self->{ "_gene_symbols" } = [];
return @a;
}
} |
sub each_Variant
{ my ( $self ) = @_;
if ( $self->{ "_variants" } ) {
return @{ $self->{ "_variants" } };
}
else {
return my @a = ();
}
}
} |
sub add_Variants
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Variation::VariantI" );
}
push( @{ $self->{ "_variants" } }, @values );
}
} |
sub remove_Variants
{ my ( $self ) = @_;
my @a = $self->each_Variant();
$self->{ "_variants" } = [];
return @a;
}
} |
sub each_Reference
{ my ( $self ) = @_;
if ( $self->{ "_references" } ) {
return @{ $self->{ "_references" } };
}
else {
return my @a = ();
}
}
} |
sub add_References
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Annotation::Reference" );
}
push( @{ $self->{ "_references" } }, @values );
}
} |
sub remove_References
{ my ( $self ) = @_;
my @a = $self->each_Reference();
$self->{ "_references" } = [];
return @a;
}
} |
sub each_CytoPosition
{ my ( $self ) = @_;
if ( $self->{ "_cyto_positions" } ) {
return @{ $self->{ "_cyto_positions" } };
}
else {
return my @a = ();
}
}
} |
sub add_CytoPositions
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Map::CytoPosition" );
}
push( @{ $self->{ "_cyto_positions" } }, @values );
}
} |
sub remove_CytoPositions
{ my ( $self ) = @_;
my @a = $self->each_CytoPosition();
$self->{ "_cyto_positions" } = [];
return @a;
}
} |
sub each_Correlate
{ my ( $self ) = @_;
if ( $self->{ "_correlates" } ) {
return @{ $self->{ "_correlates" } };
}
else {
return my @a = ();
}
}
} |
sub add_Correlates
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Phenotype::Correlate" );
}
push( @{ $self->{ "_correlates" } }, @values );
}
} |
sub remove_Correlates
{ my ( $self ) = @_;
my @a = $self->each_Correlate();
$self->{ "_correlates" } = [];
return @a;
}
} |
sub each_Measure
{ my ( $self ) = @_;
if ( $self->{ "_measures" } ) {
return @{ $self->{ "_measures" } };
}
else {
return my @a = ();
}
}
} |
sub add_Measures
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Phenotype::Measure" );
}
push( @{ $self->{ "_measures" } }, @values );
}
} |
sub remove_Measures
{ my ( $self ) = @_;
my @a = $self->each_Measure();
$self->{ "_measures" } = [];
return @a;
}
} |
sub each_keyword
{ my ( $self ) = @_;
if ( $self->{ "_keywords" } ) {
return @{ $self->{ "_keywords" } };
}
else {
return my @a = ();
}
}
} |
sub add_keywords
{ my ( $self, @values ) = @_;
return unless( @values );
push( @{ $self->{ "_keywords" } }, @values );
}
} |
sub remove_keywords
{ my ( $self ) = @_;
my @a = $self->each_keyword();
$self->{ "_keywords" } = [];
return @a;
}
} |
sub each_DBLink
{ my ( $self ) = @_;
if ( $self->{ "_db_links" } ) {
return @{ $self->{ "_db_links" } };
}
else {
return my @a = ();
}} |
sub add_DBLinks
{ my ( $self, @values ) = @_;
return unless( @values );
foreach my $value ( @values ) {
$self->_check_ref_type( $value, "Bio::Annotation::DBLink" );
}
push( @{ $self->{ "_db_links" } }, @values );
}
} |
sub remove_DBLinks
{ my ( $self ) = @_;
my @a = $self->each_DBLink();
$self->{ "_db_links" } = [];
return @a;
}
} |
sub each_Genotype
{ my ( $self ) = @_;
if ( $self->{ "_genotypes" } ) {
return @{ $self->{ "_genotypes" } };
}
else {
return my @a = ();
}
}
} |
sub add_Genotypes
{ my ( $self, @values ) = @_;
return unless( @values );
push( @{ $self->{ "_genotypes" } }, @values );
}
} |
sub remove_Genotypes
{ my ( $self ) = @_;
my @a = $self->each_Genotype();
$self->{ "_genotypes" } = [];
return @a;
}
} |
sub _check_ref_type
{ my ( $self, $value, $expected_class ) = @_;
if ( ! defined( $value ) ) {
$self->throw( ( caller( 1 ) )[ 3 ] .": Found [undef"
."] where [$expected_class] expected" );
}
elsif ( ! ref( $value ) ) {
$self->throw( ( caller( 1 ) )[ 3 ] .": Found scalar"
." where [$expected_class] expected" );
}
elsif ( ! $value->isa( $expected_class ) ) {
$self->throw( ( caller( 1 ) )[ 3 ] .": Found [". ref( $value )
."] where [$expected_class] expected" );
}
}
} |
General documentation
User feedback is an integral part of the evolution of this and other
Bioperl modules. Send your comments and suggestions preferably to the
Bioperl mailing lists Your participation is much appreciated.
bioperl-l@bioperl.org - General discussion
http://bio.perl.org/MailList.html - About the mailing lists
report bugs to the Bioperl bug tracking system to help us keep track
the bugs and their resolution. Bug reports can be submitted via
email or the web:
bioperl-bugs@bio.perl.org
http://bugzilla.bioperl.org/
The rest of the documentation details each of the object
methods. Internal methods are usually preceded with a _
Title : add_DBLink
Usage : $obj->add_DBLinks( @dbls );
or
$obj->add_DBLinks( $dbl );
Function: Pushes one or more Bio::Annotation::DBLink objects
into the list of DBLinks.
Returns :
Args : Bio::Annotation::DBLink object(s).