Email updates

Keep up to date with the latest news and content from BMC Bioinformatics and BioMed Central.

Open Access Software

Bio::NEXUS: a Perl API for the NEXUS format for comparative biological data

Thomas Hladish12, Vivek Gopalan1, Chengzhi Liang13, Weigang Qiu14, Peter Yang1 and Arlin Stoltzfus15*

Author Affiliations

1 Center for Advanced Research in Biotechnology, 9600 Gudelsky Drive, Rockville, MD 20850, USA

2 Section of Integrative Biology, University of Texas at Austin, 1 University Station C0930, Austin, Texas 78712, USA

3 Cold Spring Harbor Laboratory, 1 Bungtown Rd, Cold Spring Harbor, NY 11724, USA

4 Department of Biological Sciences, Hunter College, CUNY, 695 Park Ave., New York, NY 10021, USA

5 Biochemical Science Division, National Institute of Standards and Technology, Gaithersburg, MD 20899-8310, USA

For all author emails, please log on.

BMC Bioinformatics 2007, 8:191  doi:10.1186/1471-2105-8-191

Published: 8 June 2007

Abstract

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.

Conclusion

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.