{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,12]],"date-time":"2026-03-12T01:04:23Z","timestamp":1773277463836,"version":"3.50.1"},"reference-count":37,"publisher":"Oxford University Press (OUP)","issue":"8","license":[{"start":{"date-parts":[[2016,10,2]],"date-time":"2016-10-02T00:00:00Z","timestamp":1475366400000},"content-version":"vor","delay-in-days":1004,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2014,4,15]]},"abstract":"<jats:title>Abstract<\/jats:title>\n               <jats:p>Motivation: The detection of positive selection is widely used to study gene and genome evolution, but its application remains limited by the high computational cost of existing implementations. We present a series of computational optimizations for more efficient estimation of the likelihood function on large-scale phylogenetic problems. We illustrate our approach using the branch-site model of codon evolution.<\/jats:p>\n               <jats:p>Results: We introduce novel optimization techniques that substantially outperform both CodeML from the PAML package and our previously optimized sequential version SlimCodeML. These techniques can also be applied to other likelihood-based phylogeny software. Our implementation scales well for large numbers of codons and\/or species. It can therefore analyse substantially larger datasets than CodeML. We evaluated FastCodeML on different platforms and measured average sequential speedups of FastCodeML (single-threaded) versus CodeML of up to 5.8, average speedups of FastCodeML (multi-threaded) versus CodeML on a single node (shared memory) of up to 36.9 for 12 CPU cores, and average speedups of the distributed FastCodeML versus CodeML of up to 170.9 on eight nodes (96 CPU cores in total).<\/jats:p>\n               <jats:p>Availability and implementation: \u00a0ftp:\/\/ftp.vital-it.ch\/tools\/FastCodeML\/.<\/jats:p>\n               <jats:p>Contact: \u00a0selectome@unil.ch or nicolas.salamin@unil.ch<\/jats:p>","DOI":"10.1093\/bioinformatics\/btt760","type":"journal-article","created":{"date-parts":[[2014,1,4]],"date-time":"2014-01-04T02:03:14Z","timestamp":1388800994000},"page":"1129-1137","source":"Crossref","is-referenced-by-count":21,"title":["Optimization strategies for fast detection of positive selection on phylogenetic trees"],"prefix":"10.1093","volume":"30","author":[{"given":"Mario","family":"Valle","sequence":"first","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hannes","family":"Schabauer","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"},{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christoph","family":"Pacher","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Heinz","family":"Stockinger","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alexandros","family":"Stamatakis","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"},{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marc","family":"Robinson-Rechavi","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"},{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nicolas","family":"Salamin","sequence":"additional","affiliation":[{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"},{"name":"1 Swiss National Supercomputing Centre, Scientific Computing Group, Lugano, Switzerland, 2Department of Ecology and Evolution, University of Lausanne, Lausanne, Switzerland, 3SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 4AIT Austrian Institute of Technology, Safety & Security Department, Vienna, Austria, 5Vital-IT Group, SIB Swiss Institute of Bioinformatics, Lausanne, Switzerland, 6Heidelberg Institute for Theoretical Studies, Scientific Computing Group and 7Karlsruhe Institute of Technology, Institute for Theoretical Informatics, Karlsruhe, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"286","published-online":{"date-parts":[[2014,1,2]]},"reference":[{"key":"2023012710464638600_btt760-B1","doi-asserted-by":"crossref","first-page":"255","DOI":"10.1093\/molbev\/msn232","article-title":"Investigating protein-coding sequence evolution with probabilistic codon substitution models","volume":"26","author":"Anisimova","year":"2009","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B2","doi-asserted-by":"crossref","first-page":"1219","DOI":"10.1093\/molbev\/msm042","article-title":"Multiple hypothesis testing to detect lineages under positive selection that affects only a few sites","volume":"24","author":"Anisimova","year":"2007","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B3","doi-asserted-by":"crossref","DOI":"10.1137\/1.9780898719581","volume-title":"Templates for the Solution of Algebraic Eigenvalue Problems: A Practical Guide","author":"Bai","year":"2000"},{"key":"2023012710464638600_btt760-B4","doi-asserted-by":"crossref","first-page":"3021","DOI":"10.1093\/nar\/13.9.3021","article-title":"Nomenclature for incompletely specified bases in nucleic acid sequences: recommendation 1984","volume":"13","author":"Comnish-Bowden","year":"1985","journal-title":"Nucleic Acids Res."},{"key":"2023012710464638600_btt760-B5","doi-asserted-by":"crossref","first-page":"379","DOI":"10.1017\/S0962492912000050","article-title":"High performance computing systems: status and outlook","volume":"21","author":"Dongarra","year":"2012","journal-title":"Acta Numerica"},{"key":"2023012710464638600_btt760-B6","doi-asserted-by":"crossref","first-page":"1861","DOI":"10.1093\/molbev\/mss059","article-title":"Efficient selection of branch-specific models of sequence evolution","volume":"29","author":"Dutheil","year":"2012","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B7","doi-asserted-by":"crossref","first-page":"368","DOI":"10.1007\/BF01734359","article-title":"Evolutionary trees from DNA sequences: a maximum likelihood approach","volume":"17","author":"Felsenstein","year":"1981","journal-title":"J. Mol. Evol."},{"key":"2023012710464638600_btt760-B8","volume-title":"Designing and Building Parallel Programs","author":"Foster","year":"1995"},{"key":"2023012710464638600_btt760-B9","doi-asserted-by":"crossref","first-page":"1270","DOI":"10.1093\/molbev\/mst034","article-title":"CodonPhyML: fast maximum likelihood phylogeny estimation under codon substitution models","volume":"30","author":"Gil","year":"2013","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B10","doi-asserted-by":"crossref","DOI":"10.56021\/9781421407944","volume-title":"Matrix Computations","author":"Golub","year":"2013","edition":"4th edn"},{"key":"2023012710464638600_btt760-B11","doi-asserted-by":"crossref","first-page":"304","DOI":"10.1111\/j.1469-8137.2011.03972.x","article-title":"New grass phylogeny resolves deep evolutionary relationships and discovers C4 origins","volume":"193","author":"Grass Phylogeny Working Group II","year":"2012","journal-title":"New Phytol."},{"key":"2023012710464638600_btt760-B12","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1186\/1471-2105-12-470","article-title":"Algorithms, data structures, and numerics for likelihood-based phylogenetic inference of huge trees","volume":"12","author":"Izquierdo-Carrasco","year":"2011","journal-title":"BMC Bioinformatics"},{"key":"2023012710464638600_btt760-B13","doi-asserted-by":"crossref","first-page":"685","DOI":"10.1080\/10635150490522269","article-title":"Column sorting: rapid calculation of the phylogenetic likelihood function","volume":"53","author":"Kosakovsky Pond","year":"2004","journal-title":"Syst. Biol."},{"key":"2023012710464638600_btt760-B14","doi-asserted-by":"crossref","first-page":"e1000144","DOI":"10.1371\/journal.pgen.1000144","article-title":"Patterns of positive selection in six mammalian genomes","volume":"4","author":"Kosiol","year":"2008","journal-title":"PLoS Genet."},{"key":"2023012710464638600_btt760-B15","first-page":"55","article-title":"Phylogenetic code in the cloud \u2013 can it meet the expectations?","volume-title":"HealthGrid","author":"Kraut","year":"2010"},{"key":"2023012710464638600_btt760-B16","doi-asserted-by":"crossref","first-page":"1095","DOI":"10.1093\/molbev\/msh112","article-title":"A bayesian mixture model for across-site heterogeneities in the amino-acid replacement process","volume":"21","author":"Lartillot","year":"2004","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B17","doi-asserted-by":"crossref","first-page":"3248","DOI":"10.1093\/bioinformatics\/bts580","article-title":"A counting renaissance: combining stochastic mapping and empirical Bayes to quickly detect amino acid sites under positive selection","volume":"28","author":"Lemey","year":"2012","journal-title":"Bioinformatics"},{"key":"2023012710464638600_btt760-B18","first-page":"3","article-title":"MPI: a message-passing interface standard","volume":"8","author":"Message Passing Interface Forum","year":"1994","journal-title":"Int. J. Supercomput. Appl. High Performance Comput."},{"key":"2023012710464638600_btt760-B19","doi-asserted-by":"crossref","first-page":"e1002764","DOI":"10.1371\/journal.pgen.1002764","article-title":"Detecting individual sites subject to episodic diversifying selection","volume":"8","author":"Murrell","year":"2012","journal-title":"PloS Genet."},{"key":"2023012710464638600_btt760-B20","doi-asserted-by":"crossref","DOI":"10.1007\/0-387-27733-1","volume-title":"Statistical Methods in Molecular Evolution","author":"Nielsen","year":"2005"},{"key":"2023012710464638600_btt760-B21","doi-asserted-by":"crossref","first-page":"404","DOI":"10.1093\/nar\/gkn768","article-title":"Selectome: a database of positive selection","volume":"37","author":"Proux","year":"2009","journal-title":"Nucleic Acids Res."},{"key":"2023012710464638600_btt760-B22","doi-asserted-by":"crossref","first-page":"217","DOI":"10.1146\/annurev.genom.9.081307.164407","article-title":"Phylogenetic inference using whole genomes","volume":"9","author":"Rannala","year":"2008","journal-title":"Annu. Rev. Genomics Hum. Genet."},{"key":"2023012710464638600_btt760-B23","doi-asserted-by":"crossref","first-page":"881","DOI":"10.1093\/sysbio\/syr065","article-title":"Fast bayesian choice of phylogenetic models: prospecting data augmentation-based thermodynamic integration","volume":"60","author":"Rodrigue","year":"2011","journal-title":"Syst. Biol."},{"key":"2023012710464638600_btt760-B24","first-page":"700","article-title":"SlimCodeML: an optimized version of CodeML for the branch-site model","volume-title":"11th International Workshop on High Performance Computational Biology (HiCOMB)","author":"Schabauer","year":"2012"},{"key":"2023012710464638600_btt760-B25","volume-title":"Algorithms","author":"Sedgewick","year":"2011","edition":"4th edn"},{"key":"2023012710464638600_btt760-B26","doi-asserted-by":"crossref","first-page":"367","DOI":"10.1080\/10635150802158670","article-title":"Synonymous substitutions substantially improve evolutionary inference from highly diverged proteins","volume":"57","author":"Seo","year":"2008","journal-title":"Syst. Biol."},{"key":"2023012710464638600_btt760-B27","first-page":"85","article-title":"Orchestrating the phylogenetic likelihood function on emerging parallel architectures","volume-title":"Bioinformatics\u2014High Performance Parallel Computer Architectures","author":"Stamatakis","year":"2011"},{"key":"2023012710464638600_btt760-B28","first-page":"348","article-title":"Load balance in the phylogenetic likelihood kernel","volume-title":"ICPP","author":"Stamatakis","year":"2009"},{"key":"2023012710464638600_btt760-B29","first-page":"21","article-title":"AxML: a fast program for sequential and parallel phylogenetic tree calculations based on the maximum likelihood method","volume-title":"Bioinformatics Conference","author":"Stamatakis","year":"2002"},{"key":"2023012710464638600_btt760-B30","doi-asserted-by":"crossref","first-page":"1393","DOI":"10.1101\/gr.076992.108","article-title":"Pervasive positive selection on duplicated and nonduplicated vertebrate protein coding genes","volume":"18","author":"Studer","year":"2008","journal-title":"Genome Res."},{"key":"2023012710464638600_btt760-B31","doi-asserted-by":"crossref","first-page":"413","DOI":"10.1016\/j.jtbi.2009.09.037","article-title":"Phylogenetic estimation with partial likelihood tensors","volume":"262","author":"Sumner","year":"2010","journal-title":"J. Theor. Biol."},{"key":"2023012710464638600_btt760-B32","volume-title":"Domain Decomposition, Irregular Applications, and Parallel Computers","author":"Tomko","year":"1995"},{"key":"2023012710464638600_btt760-B33","doi-asserted-by":"crossref","first-page":"286","DOI":"10.1080\/10635150802044045","article-title":"Phylogenetic mixture models can reduce node-density artifacts","volume":"57","author":"Venditti","year":"2008","journal-title":"Syst. Biol."},{"key":"2023012710464638600_btt760-B34","doi-asserted-by":"crossref","DOI":"10.1093\/acprof:oso\/9780198567028.001.0001","volume-title":"Computational Molecular Evolution","author":"Yang","year":"2006"},{"key":"2023012710464638600_btt760-B35","doi-asserted-by":"crossref","first-page":"1107","DOI":"10.1093\/molbev\/msi097","article-title":"Bayes empirical bayes inference of amino acid sites under positive selection","volume":"22","author":"Yang","year":"2005","journal-title":"Mol. Biol. Evol."},{"key":"2023012710464638600_btt760-B36","volume-title":"QUARK Users\u2019 Guide: QUeueing and Runtime for Kernels","author":"YarKhan","year":"2011"},{"key":"2023012710464638600_btt760-B37","doi-asserted-by":"crossref","first-page":"2472","DOI":"10.1093\/molbev\/msi237","article-title":"Evaluation of an improved branch-site likelihood method for detecting positive selection at the molecular level","volume":"22","author":"Zhang","year":"2005","journal-title":"Mol. Biol. Evol."}],"container-title":["Bioinformatics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/30\/8\/1129\/48921660\/bioinformatics_30_8_1129.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/30\/8\/1129\/48921660\/bioinformatics_30_8_1129.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,1,27]],"date-time":"2023-01-27T11:21:58Z","timestamp":1674818518000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article\/30\/8\/1129\/256146"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,1,2]]},"references-count":37,"journal-issue":{"issue":"8","published-print":{"date-parts":[[2014,4,15]]}},"URL":"https:\/\/doi.org\/10.1093\/bioinformatics\/btt760","relation":{},"ISSN":["1367-4811","1367-4803"],"issn-type":[{"value":"1367-4811","type":"electronic"},{"value":"1367-4803","type":"print"}],"subject":[],"published-other":{"date-parts":[[2014,4,15]]},"published":{"date-parts":[[2014,1,2]]}}}