PLEX

2013 - 2018

The goal of the Phylogenetics, Likelihood, Evolution and compleXity (PLEX) project is to develop a platform for testing complex models of evolution against large amounts of DNA sequence data. The goal is to make possible fitting to data more realistic models of evolution that were previously computationally impossible to test. This is achieved by using an advanced statistical technique known as Uniformization, which allows avoiding previously computationally expensive methods such as Spectral Decomposition of the evolutionary rate matrix. PLEX compares models in a Bayesian framework using Markov chain Monte Carlo (MCMC) anaylsis.

My goal using PLEX was to implement and test a novel and more realistic model of evolution. When I inherited the codebase of 90,000 lines of C and C++ code, it did not compile or run across Windows and Linux platforms. The internal strcuture of the code had the legacy of many partially developed methods and half removed analytical dead ends. Despite these, I succeeded in implementing a few new models into PLEX.

After digging into the codebase more, I decided that it would be more efficient to new models by completely rewrite PLEX, keeping only the best testing strategies developed. I called this new program SimPLEX because it has a simple and clean API for new models to be built against, while retaining all the computational efficiencies of the old codebase. Using this new structure, I designed and tested several novel models of evolution that would have taken months to implement into the old codebase.

Associated publications:

  • Detecting Amino Acid Propensity Changes Over Time by Stephen T. Pollard, Katerina Kechris, and David D. Pollock. December 2019

  • Pollock D.D., Pollard S.T, (2017) “Parallel and Convergent Molecular Evolution.” Encyclopedia of Evolutionary Biology. 2016. https://doi.org/10.1016/B978-0-12-800049-6.00173-6

  • Richard A. Goldstein, Stephen T. Pollard, Seena D. Shah, David D. Pollock; Nonadaptive Amino Acid Convergence Rates Decrease over Time, Molecular Biology and Evolution, Volume 32, Issue 6, 1 June 2015, Pages 1373–1381, https://doi.org/10.1093/molbev/msv041

Tools: C, C++, Perl, R, Mercurial, Model optimization using Markov chain Monte Carlo (MCMC)

PLEX code repository: Private

SimPLEX repository: https://publichg.stephentpollard.com/SimPLEX