Abstract

Summary. Pylogeny is a cross-platform library for the Python programming language that provides an object-oriented application programming interface for phylogenetic heuristic searches. Its primary function is to permit both heuristic search and analysis of the phylogenetic tree search space, as well as to enable the design of novel algorithms to search this space. To this end, the framework supports the structural manipulation of phylogenetic trees, in particular using rearrangement operators such as NNI, SPR, and TBR, the scoring of trees using parsimony and likelihood methods, the construction of a tree search space graph, and the programmatic execution of a few existing heuristic programs. The library supports a range of common phylogenetic file formats and can be used for both nucleotide and protein data. Furthermore, it is also capable of supporting GPU likelihood calculation on nucleotide character data through the BEAGLE library. Availability. Existing development and source code is available for contribution and for download by the public from GitHub (http://github.com/AlexSafatli/Pylogeny). A stable release of this framework is available for download through PyPi (Python Package Index) at http://pypi.python.org/pypi/pylogeny. Subjects Bioinformatics, Computational Biology

Highlights

  • There is a need for tree manipulation, scoring, and flexible heuristic designs as part of larger bioinformatics pipelines

  • Introduced here is a cross-platform library called Pylogeny intended for heuristic search and analysis of the phylogenetic tree search space, as well as the design of novel algorithms to search this space

  • This framework is written in the Python programming language, yet it uses efficient auxiliary libraries to perform computationally expensive steps such as scoring

Read more

Summary

INTRODUCTION

There is a need for tree manipulation, scoring, and flexible heuristic designs as part of larger bioinformatics pipelines. Operators include Nearest Neighbor Interchange (NNI), Subtree Prune and Regraft (SPR), and Tree Bisection and Reconnection (TBR), most of which are implemented presently in Pylogeny (Felsenstein, 2004) These nodes can be evaluated for fitness against sequence data. The functionality to maintain a phylogenetic landscape is implemented in the landscape class defined in the landscape module of this library This object interacts with a large number of other classes and supports tree scoring using standard phylogenetic methods. Persistence and management of character data is performed by an alignment module, while trees are stored by their representative string in a tree module They can be instantiated into a richer topology object in order to manipulate and rearrange them. Support is present for splits or bipartitions (as in the bipartition object) of these trees, required by many phylogenetic applications such as consensus tree generation (Margush & McMorris, 1981)

Class name alignment
OTHER LIBRARIES
ADDITIONAL INFORMATION AND DECLARATIONS
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call