Algorithms for Molecular Biology (Mar 2019)
Reconciling multiple genes trees via segmental duplications and losses
Abstract
Abstract Reconciling gene trees with a species tree is a fundamental problem to understand the evolution of gene families. Many existing approaches reconcile each gene tree independently. However, it is well-known that the evolution of gene families is interconnected. In this paper, we extend a previous approach to reconcile a set of gene trees with a species tree based on segmental macro-evolutionary events, where segmental duplication events and losses are associated with cost $$\delta $$ δ and $$\lambda $$ λ , respectively. We show that the problem is polynomial-time solvable when $$\delta \le \lambda $$ δ≤λ (via LCA-mapping), while if $$\delta > \lambda $$ δ>λ the problem is NP-hard, even when $$\lambda = 0$$ λ=0 and a single gene tree is given, solving a long standing open problem on the complexity of multi-gene reconciliation. On the positive side, we give a fixed-parameter algorithm for the problem, where the parameters are $$\delta /\lambda $$ δ/λ and the number d of segmental duplications, of time complexity $$O\left(\lceil \frac{\delta }{\lambda } \rceil ^{d} \cdot n \cdot \frac{\delta }{\lambda }\right)$$ O⌈δλ⌉d·n·δλ . Finally, we demonstrate the usefulness of this algorithm on two previously studied real datasets: we first show that our method can be used to confirm or raise doubt on hypothetical segmental duplications on a set of 16 eukaryotes, then show how we can detect whole genome duplications in yeast genomes.
Keywords