A Simple Linear-Time Algorithm for the Common Refinement of Rooted Phylogenetic Trees on a Common Leaf Set
Background. The supertree problem, i.e., the task of finding a common refinement of a set of rooted trees is an important topic in mathematical phylogenetics. The special case of a common leaf set L is known to be solvable in linear time. Existing approaches refine one input tree using information of the others and then test whether the results are isomorphic. Results. A linear-time algorithm, LinCR, for constructing the common refinement T of k input trees with a common leaf set is proposed that explicitly computes the parent function of T in a bottom-up approach. Conclusion. LinCR is simpler to implement than other asymptotically optimal algorithms for the problem and outperforms the alternatives in empirical comparisons. Availability. An implementation of LinCR in Python is freely available at https://github.com/david-schaller/tralda.
READ FULL TEXT