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

Chris Fields cjfields at uiuc.edu
Wed Jul 26 16:49:40 UTC 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