A simple algorithm to infer gene duplication and speciation events on a gene tree

Abstract
Motivation: When analyzing protein sequences using sequence similarity searches, orthologous sequences (that diverged by speciation) are more reliable predictors of a new protein’s function than paralogous sequences (that diverged by gene duplication), because duplication enables functional diversification. The utility of phylogenetic information in high-throughput genome annotation (‘phylogenomics’) is widely recognized, but existing approaches are either manual or indirect (e.g. not based on phylogenetic trees). Our goal is to automate phylogenomics using explicit phylogenetic inference. A necessary component is an algorithm to infer speciation and duplication events in a given gene tree. Results: We give an algorithm to infer speciation and duplication events on a gene tree by comparison to a trusted species tree. This algorithm has a worst-case running time of O(⁠ \(n^{2}\) ⁠) which is inferior to two previous algorithms that are \({\sim}\) O(⁠ \(n\) ⁠) for a gene tree of \(n\) sequences. However, our algorithm is extremely simple, and its asymptotic worst case behavior is only realized on pathological data sets. We show empirically, using 1750 gene trees constructed from the Pfam protein family database, that it appears to be a practical (and often superior) algorithm for analyzing real gene trees. Availability: http://www.genetics.wustl.edu/eddy/forester Contact: zmasek@genetics.wustl.edu; eddy@genetics.wustl.edu