Abstract
We introduce the Phylogenetic Likelihood Library (PLL), a highly optimized application programming interface for developing likelihood-based phylogenetic inference and postanalysis software. The PLL implements appropriate data structures and functions that allow users to quickly implement common, error-prone, and labor-intensive tasks, such as likelihood calculations, model parameter as well as branch length optimization, and tree space exploration. The highly optimized and parallelized implementation of the phylogenetic likelihood function and a thorough documentation provide a framework for rapid development of scalable parallel phylogenetic software. By example of two likelihood-based phylogenetic codes we show that the PLL improves the sequential performance of current software by a factor of 2–10 while requiring only 1 month of programming time for integration. We show that, when numerical scaling for preventing floating point underflow is enabled, the double precision likelihood calculations in the PLL are up to 1.9 times faster than those in BEAGLE. On an empirical DNA dataset with 2000 taxa the AVX version of PLL is 4 times faster than BEAGLE (scaling enabled and required). The PLL is available at http://www.libpll.org under the GNU General Public License (GPL).
Highlights
In phylogenetics, the implementation of likelihood calculations on trees often represents the major obstacle for testing new ideas
To bridge the gap between speed and ease of use, we developed the Phylogenetic Likelihood Library (PLL), a software library that offers an application programming interface for fast prototyping and deployment of high-performance likelihood-based phylogenetic software
The PLL has successfully been integrated with two phylogenetic software packages: DPPDiv (Heath et al 2012), a Bayesian tool for estimating divergence times on a fixed tree topology; and IQ-TREE (Minh et al 2013), a tool for reconstructing maximum-likelihood trees and assessing branch support with an ultra-fast bootstrap approximation
Summary
The implementation of likelihood calculations on trees often represents the major obstacle for testing new ideas. BEAGLE only implements the “pure” likelihood calculations and does not incorporate a tree data structure.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.