Bio::NEXUS: a Perl API for the NEXUS format for comparative biological data.
BACKGROUND
Evolutionary analysis provides a formal framework for comparative analysis of genomic and other data. In evolutionary analysis, observed data are treated as the terminal states of characters that have evolved (via transitions between states) along the branches of a tree. The NEXUS standard of Maddison, et al. (1997; Syst. Biol. 46: 590-621) provides a portable, expressive and flexible text format for representing character-state data and trees. However, due to its complexity, NEXUS is not well supported by software and is not easily accessible to bioinformatics users and developers.


RESULTS
Bio::NEXUS is an application programming interface (API) implemented in Perl, available from CPAN and SourceForge. The 22 Bio::NEXUS modules define 351 methods in 4229 lines of code, with 2706 lines of POD (Plain Old Documentation). Bio::NEXUS provides an object-oriented interface to reading, writing and manipulating the contents of NEXUS files. It closely follows the extensive explanation of the NEXUS format provided by Maddison et al., supplemented with a few extensions such as support for the NHX (New Hampshire Extended) tree format.


CONCLUSIONS
In spite of some limitations owing to the complexity of NEXUS files and the lack of a formal grammar, NEXUS will continue to be useful for years to come. Bio::NEXUS provides a user-friendly API for NEXUS supplemented with an extensive set of methods for manipulations such as re-rooting trees and selecting subsets of data. Bio::NEXUS can be used as glue code for connecting existing software that uses NEXUS, or as a framework for new applications.
Hladish
Thomas
T
Center for Advanced Research in Biotechnology, Rockville, MD 20850, USA. tjhladish@mail.utexas.edu <tjhladish@mail.utexas.edu>
Gopalan
Vivek
V
Liang
Chengzhi
C
Qiu
Weigang
W
Yang
Peter
P
Stoltzfus
Arlin
A
D002874:Chromosome Mapping / Q000379:methods*; D019295:Computational Biology / Q000379:methods*; D030541:Databases, Genetic; D019143:Evolution, Molecular; D016247:Information Storage and Retrieval / Q000379:methods*; D011381:Programming Languages; D012984:Software; D014584:User-Computer Interface