Calculating the Unrooted Subtree Prune-and-Regraft Distance

Chris Whidden, Frederick A. Matsen
11/24/2015
cs.DSq-bio.PE

Official code: cwhidden/uspr (4 stars, last commit 2020-07-06).

Abstract

The subtree prune-and-regraft (SPR) distance metric is a fundamental way of comparing evolutionary trees. It has wide-ranging applications, such as to study lateral genetic transfer, viral recombination, and Markov chain Monte Carlo phylogenetic inference. Although the rooted version of SPR distance can be computed relatively efficiently between rooted trees using fixed-parameter-tractable maximum agreement forest (MAF) algorithms, no MAF formulation is known for the unrooted case. Correspondingly, previous algorithms are unable to compute unrooted SPR distances larger than 7. In this paper, we substantially advance understanding of and computational algorithms for the unrooted SPR distance. First we identify four properties of optimal SPR paths, each of which suggests that no MAF formulation exists in the unrooted case. Then we introduce the replug distance, a new lower bound on the unrooted SPR distance that is amenable to MAF methods, and give an efficient fixed-parameter algorithm for calculating it. Finally, we develop a "progressive A*" search algorithm using multiple heuristics, including the TBR and replug distances, to exactly compute the unrooted SPR distance. Our algorithm is nearly two orders of magnitude faster than previous methods on small trees, and allows computation of unrooted SPR distances as large as 14 on trees with 50 leaves.

View on arXivView PDF

Code Implementations(1)

cwhidden/usprOfficial100%

Software for computing the unrooted subtree prune-and-regraft distance between topologies

43C++, MakefileOct 28, 20146 years agoNOASSERTION

Cite this paper

@article{whidden2015calculating,
  title  = {Calculating the Unrooted Subtree Prune-and-Regraft Distance},
  author = {Chris Whidden and Frederick A. Matsen},
  year   = {2015},
  eprint = {1511.07529},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1511.07529}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1511.07529.svg)](https://codeofpaper.com/paper/1511.07529)

Discussion