BioPerl
view release on metacpan or search on metacpan
Bio/Species.pm view on Meta::CPAN
sub validate_species_name {
my( $self, $string ) = @_;
return 1 if $string eq "sp.";
return 1 if $string =~ /strain/;
return 1 if $string =~ /^[a-z][\w\s-]+$/i;
$self->throw("Invalid species name '$string'");
}
sub validate_name {
return 1;
}
=head2 organelle
Title : organelle
Usage : $self->organelle( $organelle );
$organelle = $self->organelle();
Function: Get or set the organelle name
Example : $self->organelle('Chloroplast')
Returns : The organelle name in a string
Args : String, which is the organelle name
Note : TODO: We currently do not know where the organelle definition will
eventually go. This is stored in the source seqfeature, though,
so the information isn't lost.
=cut
sub organelle {
my($self) = shift;
return $self->{'_organelle'} = shift if @_;
return $self->{'_organelle'};
}
=head2 Delegation
The following methods delegate to the internal Bio::Taxon instance. This is
mainly to allow code continue using older methods, with the mind to migrate to
using Bio::Taxon and related methods when this class is deprecated.
=cut
sub node_name {shift->taxon->node_name(@_)}
sub scientific_name {shift->taxon->node_name(@_)}
sub id {shift->taxon->id(@_)}
sub object_id {shift->taxon->id(@_)}
sub ncbi_taxid {shift->taxon->ncbi_taxid(@_)}
sub rank {shift->taxon->rank(@_)}
sub division {shift->taxon->division(@_)}
sub common_names {shift->taxon->common_names(@_)}
sub common_name {shift->taxon->common_names(@_)}
sub genetic_code {shift->taxon->genetic_code(@_)}
sub mitochondrial_genetic_code {shift->taxon->mitochondrial_genetic_code(@_)}
sub create_date { shift->taxon->create_date(@_)}
sub pub_date { shift->taxon->pub_date(@_)}
sub update_date { shift->taxon->update_date(@_)}
sub db_handle { shift->taxon->db_handle(@_)}
sub parent_id { shift->taxon->parent_id(@_)}
sub parent_taxon_id { shift->taxon->parent_id(@_)}
sub version { shift->taxon->version(@_)}
sub authority { shift->taxon->authority(@_)}
sub namespace { shift->taxon->namespace(@_)}
sub ancestor { shift->taxon->ancestor(@_)}
sub get_Parent_Node { shift->taxon->get_Parent_Node(@_)}
sub each_Descendent { shift->taxon->each_Descendent(@_)}
sub get_Children_Nodes { shift->taxon->get_Children_Nodes(@_)}
sub remove_Descendant { shift->taxon->remove_Descendant(@_)}
sub name { shift->taxon->name(@_)}
=head2 taxon
Title : taxon
Usage : $obj->taxon
Function : retrieve the internal Bio::Taxon instance
Returns : A Bio::Taxon. If one is not previously set,
an instance is created lazily
Args : Bio::Taxon (optional)
=cut
sub taxon {
my ($self, $taxon) = @_;
if (!$self->{taxon} || $taxon) {
$taxon ||= Bio::Taxon->new();
$self->{taxon} = $taxon;
}
$self->{taxon};
}
=head2 tree
Title : tree
Usage : $obj->tree
Function : Returns a Bio::Tree::Tree object
Returns : A Bio::Tree::Tree. If one is not previously set,
an instance is created lazily
Args : Bio::Tree::Tree (optional)
=cut
sub tree {
my ($self, $tree) = @_;
if (!$self->{tree} || $tree) {
$tree ||= Bio::Tree::Tree->new();
delete $tree->{_root_cleanup_methods};
$self->{tree} = $tree;
}
$self->{tree};
}
sub DESTROY {
( run in 1.296 second using v1.01-cache-2.11-cpan-39bf76dae61 )