[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