[Bioperl-l] Bio::*Taxonomy* changes

Chris Fields cjfields at uiuc.edu
Thu Jul 20 17:23:14 UTC 2006


Just thought of something...

You had mentioned using a stripped-down version of Bio::Taxonomy::Node
previously, which led to a bit of contention.  One way to make everybody
happy would be to create an interface class that contains the basic shared
methods (Bio::Taxonomy::NodeI), then have the currently-named
Bio::Taxonomy::Node (which could be renamed to Bio::Taxonomy::Species or
something similar) implement those methods along with the current methods.
Another class (your stripped down version, which could then be
Bio::Taxonomy::Node) would also implement whatever base class methods were
needed.  They would both be Bio::Taxonomy::NodeI-implementing, so you could
use either object type where required.  

         |------Node
NodeI----|
         |------Species

Another option would be to have Bio::Taxonomy::Node itself stripped down,
then have another class (Bio::Taxonomy::Species) inherit methods from it and
also implement additional methods (genus(), species(), etc).

Node----Species

Would something like that be feasible?  I favor the interface version as it
sticks with the interface-implementation design that Bioperl has been
migrating towards:

http://www.bioperl.org/wiki/Advanced_BioPerl#Bioperl_Interface_design

This would also help out with the whole Bio::Species issue; just have
Bio::Taxonomy::Species replace it.  

Chris

> -----Original Message-----
> From: bioperl-l-bounces at lists.open-bio.org [mailto:bioperl-l-
> bounces at lists.open-bio.org] On Behalf Of Sendu Bala
> Sent: Thursday, July 20, 2006 8:49 AM
> To: bioperl-l at lists.open-bio.org
> Subject: Re: [Bioperl-l] Bio::*Taxonomy* changes
> 
> Sendu Bala wrote:
> >
> > Bio::DB::Taxonomy::flatfile
>  >
> > BEHAVIOUR-CHANGE: The scientific name field isn't touched in any way,
> > always being sent directly to Bio::Taxonomy::Node->new(-name =>
> > $untouched) or the $node->classification() array. Previously, a species
> > node would have its name converted from 'Homo sapiens' to 'sapiens', but
> > the conversion mangled very badly certain other species names.
> [...]
>  > Bio::DB::Taxonomy::entrez
>  >
> > BEHAVIOUR-CHANGE: the ScientificName field isn't touched except for s/
> > \(class\)$//, being sent directly to Bio::Taxonomy::Node->new(-name =>
> > $untouched) or the $node->classification() array. Previously, a species
> > node would have its name converted from 'Homo sapiens' to 'sapiens', but
> > the conversion mangled very badly certain other species names.
> 
> Oops. In both cases the scientific name has ' (class)' removed from it,
> but the original name (with ' (class)') is stored as one of the common
> names.
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l




More information about the Bioperl-l mailing list