This module handles the parsing and generation of files in the phyloXML format.
This code is not yet part of Biopython, and therefore the documentation has not been integrated into the Biopython Tutorial yet either.
(Coming soon: use cases)
The source code for this module currently lives on the phyloxml branch in GitHub.
The XML parser used in this module is ElementTree, new to the Python standard library in Python 2.5. To use this module in Python 2.4, you'll need to install a separate package that provides the ElementTree interface. Two exist:
The module attempts to import each of these compatible ElementTree implementations until it succeeds. The given XML file handle is then parsed incrementally to instantiate an object hierarchy containing the relevant phylogenetic information. Existing Biopython classes will be reused for these objects wherever appropriate.
This parser is meant to be able to handle large files, meaning several thousand external nodes. (Benchmarks of relevant XML parsers for Python are here. To support this, the parser takes an open file handle, and the API will offer wrappers for loading compressed files, and perhaps pulling from a database or web URL, too.
The writer portion of this module hasn't been written yet, but presumably it will be based on ElementTree as well.
At some point this should be merged into the Biopython trunk, and it would be nice to have a common interface with Bio.Nexus and Newick. Should these three modules be reorganized to extract a common Bio.TreeIO interface? Let's discuss it at some point.
Summer of Code project
This module is being developed by Eric as a project for Google Summer of Code 2009, with NESCent as the mentoring organization and Brad as the primary mentor.
Main SoC project page: PhyloSoC:Biopython support for parsing and writing phyloXML
Christian Zmasek, author of the phyloXML specification, has released some software that uses this format:
- Forester -- a collection of Java and Ruby libraries for working with phylogenetic data
- Archaopteryx -- Java application for the visualization of annotated phylogenetic trees (also available in applet form)
Another list is maintained at phylosoft.org.