Bio::Phenotype Phenotype
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvs
Summary
Bio::Phenotype::Phenotype - A class for modeling phenotypes
Package variables
No package variables defined.
Included modules
Bio::Annotation::DBLink
Bio::Annotation::Reference
Bio::Map::CytoPosition
Bio::Phenotype::Correlate
Bio::Phenotype::Measure
Bio::Range
Bio::Species
Bio::Variation::VariantI
Inherit
Bio::Phenotype::PhenotypeI Bio::Root::Root
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
newDescriptionCode
initDescriptionCode
nameDescriptionCode
descriptionDescriptionCode
speciesDescriptionCode
commentDescriptionCode
each_gene_symbolDescriptionCode
add_gene_symbolsDescriptionCode
remove_gene_symbolsDescriptionCode
each_VariantDescriptionCode
add_VariantsDescriptionCode
remove_VariantsDescriptionCode
each_ReferenceDescriptionCode
add_ReferencesDescriptionCode
remove_ReferencesDescriptionCode
each_CytoPositionDescriptionCode
add_CytoPositionsDescriptionCode
remove_CytoPositionsDescriptionCode
each_CorrelateDescriptionCode
add_CorrelatesDescriptionCode
remove_CorrelatesDescriptionCode
each_MeasureDescriptionCode
add_MeasuresDescriptionCode
remove_MeasuresDescriptionCode
each_keywordDescriptionCode
add_keywordsDescriptionCode
remove_keywordsDescriptionCode
each_DBLinkDescriptionCode
add_DBLinksDescriptionCode
remove_DBLinksDescriptionCode
each_GenotypeDescriptionCode
add_GenotypesDescriptionCode
remove_GenotypesDescriptionCode
_check_ref_typeDescriptionCode
Methods description
newcode    nextTop
 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
initcodeprevnextTop
 Title   : init()
Usage : $obj->init();
Function: Initializes this OMIMentry to all "" and empty lists.
Returns :
Args :
namecodeprevnextTop
 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).
descriptioncodeprevnextTop
 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).
speciescodeprevnextTop
 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).
commentcodeprevnextTop
 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).
each_gene_symbolcodeprevnextTop
 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 :
add_gene_symbolscodeprevnextTop
 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).
remove_gene_symbolscodeprevnextTop
 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 :
each_VariantcodeprevnextTop
 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 :
add_VariantscodeprevnextTop
 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).
remove_VariantscodeprevnextTop
 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 :
each_ReferencecodeprevnextTop
 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 :
add_References codeprevnextTop
 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).
remove_ReferencescodeprevnextTop
 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 :
each_CytoPositioncodeprevnextTop
 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 :
add_CytoPositionscodeprevnextTop
 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).
remove_CytoPositionscodeprevnextTop
 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 :
each_CorrelatecodeprevnextTop
 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 :
add_CorrelatescodeprevnextTop
 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).
remove_CorrelatescodeprevnextTop
 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 :
each_MeasurecodeprevnextTop
 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 :
add_MeasurescodeprevnextTop
 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).
remove_MeasurescodeprevnextTop
 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 :
each_keywordcodeprevnextTop
 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 :
add_keywordscodeprevnextTop
 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).
remove_keywordscodeprevnextTop
 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 :
each_DBLinkcodeprevnextTop
 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 :
add_DBLinkscodeprevnextTop
 Title   : add_DBLinks
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).
remove_DBLinkscodeprevnextTop
 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 :
each_GenotypecodeprevnextTop
 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 :
add_GenotypescodeprevnextTop
 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)".
remove_GenotypescodeprevnextTop
 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 :
_check_ref_typecodeprevnextTop
 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
newdescriptionprevnextTop
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;

} # new
}
initdescriptionprevnextTop
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();

} # init
}
namedescriptionprevnextTop
sub name {
    my ( $self, $value ) = @_;

    if ( defined $value ) {
        $self->{ "_name" } = $value;
    }

    return $self->{ "_name" };

} # name
}
descriptiondescriptionprevnextTop
sub description {
    my $self = shift;
    return $self->{ "_description" } = shift if(@_);
    return $self->{ "_description" };
}
speciesdescriptionprevnextTop
sub species {
    my ( $self, $value ) = @_;

    if ( defined $value ) {
        $self->_check_ref_type( $value, "Bio::Species" );
        $self->{ "_species" } = $value;
    }

    return $self->{ "_species" };

} # species
}
commentdescriptionprevnextTop
sub comment {
    my $self = shift;
    return $self->{ "_comment" } = shift if(@_);
    return $self->{ "_comment" };
} # comment
}
each_gene_symboldescriptionprevnextTop
sub each_gene_symbol {
    my ( $self ) = @_;

    return @{$self->{"_gene_symbols"}} if exists($self->{"_gene_symbols"});
    return ();
} # each_gene_symbol
}
add_gene_symbolsdescriptionprevnextTop
sub add_gene_symbols {
    my ( $self, @values ) = @_;

    return unless( @values );

    push( @{ $self->{ "_gene_symbols" } }, @values );

} # add_gene_symbols
}
remove_gene_symbolsdescriptionprevnextTop
sub remove_gene_symbols {
    my ( $self ) = @_;

    my @a = $self->each_gene_symbol();
    $self->{ "_gene_symbols" } = [];
    return @a;

} # remove_gene_symbols
}
each_VariantdescriptionprevnextTop
sub each_Variant {
     my ( $self ) = @_;

     return @{ $self->{ "_variants" } } if exists($self->{ "_variants" });
     return ();
} # each_Variant
}
add_VariantsdescriptionprevnextTop
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 );

} # add_Variants
}
remove_VariantsdescriptionprevnextTop
sub remove_Variants {
    my ( $self ) = @_;
  
    my @a = $self->each_Variant();
    $self->{ "_variants" } = [];
    return @a;

} # remove_Variants
}
each_ReferencedescriptionprevnextTop
sub each_Reference {
    my ( $self ) = @_;
    
    return @{ $self->{ "_references" } } if exists($self->{ "_references" });
    return ();
} # each_Reference
}
add_ReferencesdescriptionprevnextTop
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 );
    
} # add_References
}
remove_ReferencesdescriptionprevnextTop
sub remove_References {
    my ( $self ) = @_;
     
    my @a = $self->each_Reference();
    $self->{ "_references" } = [];
    return @a;

} # remove_References
}
each_CytoPositiondescriptionprevnextTop
sub each_CytoPosition {
    my ( $self ) = @_;
    
    return @{$self->{"_cyto_positions"}} if exists($self->{"_cyto_positions"});
    return ();
} # each_CytoPosition
}
add_CytoPositionsdescriptionprevnextTop
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 );
    
} # add_CytoPositions
}
remove_CytoPositionsdescriptionprevnextTop
sub remove_CytoPositions {
    my ( $self ) = @_;
     
    my @a = $self->each_CytoPosition();
    $self->{ "_cyto_positions" } = [];
    return @a;

} # remove_CytoPositions
}
each_CorrelatedescriptionprevnextTop
sub each_Correlate {
    my ( $self ) = @_;

    return @{ $self->{ "_correlates" } } if exists($self->{ "_correlates" });
    return (); 
} # each_Correlate
}
add_CorrelatesdescriptionprevnextTop
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 );
    
} # add_Correlates
}
remove_CorrelatesdescriptionprevnextTop
sub remove_Correlates {
    my ( $self ) = @_;
  
    my @a = $self->each_Correlate();
    $self->{ "_correlates" } = [];
    return @a;

} # remove_Correlates
}
each_MeasuredescriptionprevnextTop
sub each_Measure {
    my ( $self ) = @_;
    
    return @{ $self->{ "_measures" } } if exists($self->{ "_measures" });
    return ();
} # each_Measure
}
add_MeasuresdescriptionprevnextTop
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 );
    
} # add_Measures
}
remove_MeasuresdescriptionprevnextTop
sub remove_Measures {
    my ( $self ) = @_;
   
    my @a = $self->each_Measure();
    $self->{ "_measures" } = [];
    return @a;

} # remove_Measures
}
each_keyworddescriptionprevnextTop
sub each_keyword {
    my ( $self ) = @_;
    
    return @{ $self->{ "_keywords" } } if exists($self->{ "_keywords" });
    return ();
} # each_keyword
}
add_keywordsdescriptionprevnextTop
sub add_keywords {
    my ( $self, @values ) = @_;

    return unless( @values );

    push( @{ $self->{ "_keywords" } }, @values );
    
} # add_keywords
}
remove_keywordsdescriptionprevnextTop
sub remove_keywords {
    my ( $self ) = @_;
    
    my @a = $self->each_keyword();
    $self->{ "_keywords" } = [];
    return @a;

} # remove_keywords
}
each_DBLinkdescriptionprevnextTop
sub each_DBLink {
    my ( $self ) = @_;
   
    return @{ $self->{ "_db_links" } } if exists($self->{ "_db_links" });
    return ();
}
add_DBLinksdescriptionprevnextTop
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 );
  
} # add_DBLinks
}
remove_DBLinksdescriptionprevnextTop
sub remove_DBLinks {
    my ( $self ) = @_;
  
    my @a = $self->each_DBLink();
    $self->{ "_db_links" } = [];
    return @a;

} # remove_DBLinks
}
each_GenotypedescriptionprevnextTop
sub each_Genotype {
    my ( $self ) = @_;
   
    return @{ $self->{ "_genotypes" } } if exists($self->{ "_genotypes" });
    return ();
} # each_Genotype
}
add_GenotypesdescriptionprevnextTop
sub add_Genotypes {
    my ( $self, @values ) = @_;
    
    return unless( @values );

    #foreach my $value ( @values ) {  
# $self->_check_ref_type( $value, "Bio::GenotypeI" );
#}
push( @{ $self->{ "_genotypes" } }, @values ); } # add_Genotypes
}
remove_GenotypesdescriptionprevnextTop
sub remove_Genotypes {
    my ( $self ) = @_;

    my @a = $self->each_Genotype();
    $self->{ "_genotypes" } = [];
    return @a;

} # remove_Genotypes
}
_check_ref_typedescriptionprevnextTop
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" );
    }    
} # _check_ref_type
1;
}
General documentation
FEEDBACKTop
Mailing ListsTop
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
Support Top
Please direct usage questions or support issues to the mailing list:
bioperl-l@bioperl.org
rather than to the module maintainer directly. Many experienced and
reponsive experts will be able look at the problem and quickly
address it. Please include a thorough description of the problem
with code and data examples if at all possible.
Reporting BugsTop
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:
  https://redmine.open-bio.org/projects/bioperl/
AUTHORTop
Christian M. Zmasek
Email: czmasek-at-burnham.org or cmzmasek@yahoo.com
WWW: http://monochrome-effect.net/
Address:
  Genomics Institute of the Novartis Research Foundation
10675 John Jay Hopkins Drive
San Diego, CA 92121
APPENDIXTop
The rest of the documentation details each of the object
methods. Internal methods are usually preceded with a _