[Biopython] Bug in Phylo.write('phyloxml')?

Eric Talevich eric.talevich at gmail.com
Mon Dec 19 05:31:48 UTC 2011


Alrighty,

I think the main problem in your case is that the Newick parser creates
trees with the 'name' attribute set to the empty string "" instead of None.
When converting to PhyloXML, that value stays in place and gets serialized
as an empty element. The author of the phyloXML spec is the author of
Archaeopteryx, so all of that makes sense.

For your case, Jon, and others having this problem: before writing a tree
as phyloXML, set the tree name to None if it's not already named.

if tree.name == "":
    tree.name = None
Phylo.write(tree, 'example.xml', 'newick')


For the future, I guess the best approach is to change the Newick parser to
set the tree name to None instead of "" by default. Any issues with that
solution?

-Eric


On Sat, Dec 17, 2011 at 9:08 PM, Jon Sanders <jsanders at oeb.harvard.edu>wrote:

> Archaeopteryx is the one program that read the trees fine. I also tried
> HyperTree, TreeGraph2, and Treevolution, which failed.
>
> -j
>
>
> On Sun, Dec 18, 2011 at 12:03 AM, Eric Talevich <eric.talevich at gmail.com>wrote:
>
>> On Fri, Dec 16, 2011 at 1:44 PM, Jon Sanders <jsanders at oeb.harvard.edu>wrote:
>>
>>> My XML trees exported in biopython (with confidence values, thanks Eric!)
>>> don't open in most XML tree viewing programs.
>>>
>>> The problem seems to be a spurious <name /> tag at the beginning of the
>>> tree.
>>>
>>> <phy:phyloxml xmlns:phy="http://www.phyloxml.org">
>>>  <phy:phylogeny rooted="false">
>>>    <phy:name />
>>>    <phy:clade>
>>>
>>> If I delete this tag they open fine.
>>>
>>>
>> Hi Jon,
>>
>> Thanks for reporting this. I'll check the spec to see if an empty 'name'
>> tag is even valid. Can you give me the name of one or two programs that are
>> supposed to handle phyloXML, but don't like this input? Is Archaeopteryx
>> one of them?
>>
>> -Eric
>>
>
>
>
> --
> "If you hold a cat by the tail you learn things you cannot learn any other
> way."
>                          --Mark Twain
>
>



More information about the Biopython mailing list