[Bioperl-l] suggestions for suitable 'taxon' object

Sendu Bala bix at sendu.me.uk
Wed Dec 20 09:51:33 EST 2006

Chris Fields wrote:
> On Dec 19, 2006, at 10:23 PM, Rutger Vos wrote:
>> Hi all,
>> I am looking for a bioperl object that can be abused to function as
>> a suitable 'taxon' object, where I mean 'taxon' as understood by
>> the NEXUS file format (i.e. not strictly an entity from a taxonomy,
>> but more loosely an OTU).
>> The object would primarily function as a way to relate nodes in 
>> trees to sequences in an alignment (a foreign key that both nodes
>> and sequences refer to), and secondarily as the keeper of the
>> canonical name of the OTU, such that a sequence named
>> 'Homo_sapiens|EF177447.1/12-56' and a node named 'Homo sapiens
>> (constrained monophyly)' can still be understood to refer to the 
>> same thing - the OTU 'Homo sapiens sapiens' (for example).

I haven't had time to give your suggestions consideration, but I can say 
that I'm having to do the same thing for a bioperl-run module and my 
work-around is simply to set a custom name on my Bio::Taxon objects. To 
explain, I have the benefit that my tree is made up of Bio::Taxon 
objects, so I call $taxon->name('seq_id', $seq->id). Then when I want to 
know which of my sequences corresponds to a particular taxon, I work out 
which of them has the id given by shift @{$taxon->name('seq_id')}.

Hardly ideal, but it works for now.

>> I was thinking that a (possibly expanded) Bio::Species might work
>>  if there was some sensible way of appending references to node and
>> sequence objects to it (or otherwise associate them with each
>> other), but I am writing *to solicit any and all suggestions*. I am
>> looking for something similar to Bio::Phylo::Taxa::Taxon.
> Sendu would be the best one to speak about Bio::Taxon and 
> Bio::Species and may have some ideas on the above.  The current plan
> was to deprecate Bio::Species, but who knows?

Given that we do plan to deprecate Bio::Species, I'd resist the 
temptation to expand on it. Use Bio::Taxon as a base if it has stuff you 
need, or base straight from Bio::Tree::Node if not.

More information about the Bioperl-l mailing list