Introduction
The construction of large phylogenies is of increasing interest, and the size of these datasets can be enormous. For example, the insect portion of the Tree of Life already contains “nearly a million described species,” and the evolutionary relationships between these species is far from resolved (Maddison, 2016). Yet methods for constructing large trees are typically based on approaches that were designed for much smaller datasets, and very few available software packages have adequate accuracy on large datasets. Thus, there is a gap in terms of basic algorithmic strategies and in terms of software development for large-scale phylogeny estimation.
In this chapter, we investigate techniques for constructing phylogenetic trees for large datasets.We explore algorithm design, including standard heuristics used in many software packages, and also divide-and-conquer techniques used to scale computationally intensive methods to large datasets. Some of the initial parts of this chapter appear in earlier chapters, and are repeated here for the sake of completeness.
Standard Approaches
Many phylogeny estimation methods fall into the following categories: distance-based methods, subtree assembly-based methods, heuristics for NP-hard optimizationmethods, or Bayesian methods. Understanding each of these types of methods is helpful in developing methods for large datasets.
Distance-based methods. Generally the fastest phylogeny estimation methods operate by computing a matrix of pairwise “distances” between every pair of taxa, and then using that distance matrix to compute a tree. Distance-based methods (described in Chapter 5) typically run in O(n3) time, but some even run in O(n2) time, and many are fast enough to be used on even very large datasets.
Subtree assembly-based methods. Some methods operate by computing trees on a collection of small subsets of the taxon set, and then combine the subset trees together into a tree. We call these “subtree assembly-based methods” since they operate by estimating subtrees and then assembling them into a larger tree. Many subtree assembly-based methods compute quartet trees using maximum likelihood, and then combine the quartet trees using some quartet amalgamation method, such as Quartet Puzzling (Strimmer and von Haeseler, 1996), Weight Optimization (Ranwez and Gascuel, 2001), Quartet Joining (Xin et al., 2007), Quartets MaxCut (Snir and Rao, 2010), and Quartet FM (Reaz et al., 2014).