[Biopython-dev] Code review request for phyloxml branch

Peter biopython at maubp.freeserve.co.uk
Thu Sep 24 13:59:06 EDT 2009


On Thu, Sep 24, 2009 at 1:08 PM, Brad Chapman <chapmanb at 50mail.com> wrote:
> Eric and Peter;
> Looking forward to seeing the PhyloXML work merged into the main
> branch. Eric, thanks for posting the summary of where things are at.
>
>> > (1) 'phyloxml' uses a different object representation than the other two, so
>> > converting between those formats is not possible until Nexus.Trees is ported
>> > over to Bio.Tree.
>>
>> I think that is a blocker - I wouldn't want to release Bio.TreeIO until it would
>> actually let you do phyloxml -> newick, and phyloxml -> nexus (and assuming
>> that phyloxml allows very minimal trees, the reverse as well). It does look
>> like the best plan is to use the same tree objects for all three (updating
>> Bio.Nexus if possible).
>
> Agreed that this would be nice to have, but I'm not sure why it's
> blocking getting the base TreeIO framework and all of PhyloXML into
> the main branch. That's a major step forward from the format
> specific phylogenetic code we had before and gets us a portion of
> the way there.

If the Newick/Nexus TreeIO parsers return one object type while the
PhyloXML TreeIO parser returns another *incompatible* object type,
then we don't have a unified tree input/output framework. Furthermore,
if you did release this and then later standardise on a single tree object,
you'd break backwards compatibility. All in all, best avoided.

> Next up should be moving over Bio.Nexus to the new framework and
> then conversions, but this is another project. I think we should
> take this one step at a time.

What we could do in the short term is ignore Bio.Nexus.Trees, and
just leave it as is. Instead of having the Newick/Nexus TreeIO code
calling the old Bio.Nexus.Trees code, we just write some new code
(possibly based on old code) which will use Eric's new objects.

We could then (gradually, perhaps by adding a runtime option to
the Nexus parsing API) move Bio.Nexus over from using the old
Bio.Nexus.Trees code to the new TreeIO, and eventually deprecate
and then remove Bio.Nexus.Trees.

Peter


More information about the Biopython-dev mailing list