Bio::Phenotype
Phenotype
Summary
Bio::Phenotype::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 = shift;
return $self->{ "_description" } = shift if(@_);
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 = shift;
return $self->{ "_comment" } = shift if(@_);
return $self->{ "_comment" };
}
} |
sub each_gene_symbol
{ my ( $self ) = @_;
return @{$self->{"_gene_symbols"}} if exists($self->{"_gene_symbols"});
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_variants" } } if exists($self->{ "_variants" });
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_references" } } if exists($self->{ "_references" });
return ();
}
} |
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 ) = @_;
return @{$self->{"_cyto_positions"}} if exists($self->{"_cyto_positions"});
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_correlates" } } if exists($self->{ "_correlates" });
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_measures" } } if exists($self->{ "_measures" });
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_keywords" } } if exists($self->{ "_keywords" });
return ();
}
} |
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 ) = @_;
return @{ $self->{ "_db_links" } } if exists($self->{ "_db_links" });
return ();} |
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 ) = @_;
return @{ $self->{ "_genotypes" } } if exists($self->{ "_genotypes" });
return ();
}
} |
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://bioperl.org/wiki/Mailing_lists - 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 the
web:
http://bugzilla.open-bio.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).