[Bioperl-l] Bio::*Taxonomy* changes
Chris Fields
cjfields at uiuc.edu
Wed Jul 26 12:49:40 EDT 2006
Hilmar, apologies ahead of time for not being too concise! It's my last
hurrah on this thread. No, really!
...
> > Yes, but $seq->species() would also
>
> $seq->species() would return a Bio::Species object which may not be
> more than a thin shell anymore around an implementation that
> delegates almost everything to a lineage object (Bio::Taxonomy).
>
> $seq->taxon() in contrast need not return such a backwards-compatible
> construct.
In genbank.pm _read_GenBank_Species (initial implementation, to switch out
Bio::Species with Taxonomy/Node object):
1) Assign data to both Bio::Species (as currently implemented) and
Bio::Taxonomy::Node (new way).
2) Assign organelle to Bio::Species and the Seq object get/set organelle().
3) Assign lineage information to Bio::Species and as an array to the Seq
object get/set lineage().
Replace the get/set above with your method of choice, just no Bio::Species.
In genbank.pm write_seq()
1) if DB_lookup flag is defined, use $seq->taxon() to build lineage
2) If not, use $seq->lineage().
The fine details (how do you build the lineage?!?) can be worked out along
the way. The wonders of CVS!
The Taxonomy class used here could be returned using Hilmar's $seq->taxon()
and Bio::Species can be returned via $seq->species(). Makes perfect sense!
Separated! Nothing complicated about it. Nice and clean. And Bio::Species
can eventually be shown the exit door. Elvis has left the building...
Organelle-specific sequence TaxIDs, as they refer to the organism and not
the organelle, could be placed elsewhere, preferably somewhere more
accessible such as $seq->organelle(). And lineage, similarly, could be
placed in $seq->lineage(), which would store it as a raw string or as an
array. There are many other ways I had pointed out (SimpleValue, Node,
etc); I don't care, as long as we eventually sever the Bio::Species tumor
from SeqIO.
...
> ...And I'd rather see some code or API examples than
> extensive elaborations.
>
> -hilmar
Hilmar's right; working code does speaks louder than words. The energy
spent in writing up full expositions is better spent elsewhere, hence: I
need to get back to work! Wish I could contribute more.
Chris
More information about the Bioperl-l
mailing list