The Robinson–Foulds or symmetric difference metric, often abbreviated as the RF distance, is a simple way to calculate the distance between phylogenetic trees.[1]
It is defined as (+) where is the number of partitions of data implied by the first tree but not the second tree and is the number of partitions of data implied by the second tree but not the first tree (although some software implementations divide the RF metric by 2[2] and others scale the RF distance to have a maximum value of 1). The partitions are calculated for each tree by removing each branch. Thus, the number of eligible partitions for each tree is equal to the number of branches in that tree.
RF distances have been criticized as biased,[3] but they represent a relatively intuitive measure of the distances between phylogenetic trees and therefore remain widely used (the original 1981 paper describing Robinson-Foulds distances was cited more than 2700 times by 2023 based on Google Scholar). Nevertheless, the biases inherent to the RF distances suggest that researches should consider using "Generalized" Robinson–Foulds metrics that may have better theoretical and practical performance and avoid the biases and misleading attributes of the original metric.
Given two unrooted trees of nodes and a set of labels (i.e., taxa) for each node (which could be empty, but only nodes with degree greater than or equal to three can be labeled by an empty set) the Robinson–Foulds metric finds the number of
\alpha
\alpha-1
The authors define two trees to be the same if they are isomorphic and the isomorphism preserves the labeling. The construction of the proof is based on a function called
\alpha
\alpha-1
The
\alpha
T1
T2
T1\wedgeT2
\alpha-1
T2
T1\wedgeT2
T2
T1
T2
T2
T1
T1
T2
The RF distance corresponds to an equivalent similarity metric that reflects the resolution of the strict consensus of two trees, first used to compare trees in 1980.[4]
In their 1981 paper Robinson and Foulds proved that the distance is in fact a metric.
In 1985 Day gave an algorithm based on perfect hashing that computes this distance that has only a linear complexity in the number of nodes in the trees. A randomized algorithm that uses hash tables that are not necessarily perfect has been shown to approximate the Robinson-Foulds distance with a bounded error in sublinear time.
In phylogenetics, the metric is often used to compute a distance between two trees. The treedist program in the PHYLIP suite offers this function, as does the RAxML_standard package, the DendroPy Python library (under the name "symmetric difference metric"), and R packages TreeDist (`RobinsonFoulds` function) and phangorn (`treedist` function). For comparing groups of trees, the fastest implementations include HashRF and MrsRF.
The Robinson–Foulds metric has also been used in quantitative comparative linguistics to compute distances between trees that represent how languages are related to each other.
The RF metric remains widely used because the idea of using the number of splits that differ between a pair of trees is a relatively intuitive way to assess the differences among trees for many systematists. This is the primary strength of the RF distance and the reason for its continued use in phylogenetics. Of course, the number of splits that differ between a pair of trees depends on the number of taxa in the trees so one might argue that this unit is not meaningful. However, it is straightforward to normalize RF distances so they range between zero and one.
However, the RF metric also suffers a number of theoretical and practical shortcomings:[5] [6]
Another issue to consider when using RF distances is that differences in one clade may be trivial (perhaps if the clade resolves three species within a genus differently) or may be fundamental (if the clade is deep in the tree and defines two fundamental subgroups, such as mammals and birds). However, this issue is not a problem with RF distances per se, it is a more general criticism of tree distances. Regardless of the behaviour of any specific tree distance a practicing evolutionary biologist might view some tree rearrangements as "important" and other rearrangements as "trivial". Tree distances are tools; they are most useful in the context of other information about the organisms in the trees.
These issues can be addressed by using less conservative metrics. "Generalized RF distances" recognize similarity between similar, but non-identical, splits; the original Robinson Foulds distance doesn't care how similar two groupings are, if they aren't identical they are discarded.[7]
The best-performing generalized Robinson-Foulds distances have a basis in information theory, and measure the distance between trees in terms of the quantity of information that the trees' splits hold in common (measured in bits).[6] The Clustering Information Distance (implemented in R package TreeDist) is recommended as the most suitable alternative to the Robinson-Foulds distance.[6]
An alternative approach to tree distance calculation is to use Quartet distance, rather than splits, as the basis for tree comparison.[5]
Language/Program | Function | Notes | |
---|---|---|---|
dist.dendlist(dendlist(x,y)) from dendextend | See http://talgalili.github.io/dendextend/reference/dist.dendlist.html | ||
RobinsonFoulds(x, y) from TreeDist | Faster than phangorn implementation; see https://ms609.github.io/TreeDist/reference/Robinson-Foulds.html | ||
tree_1.robinson_foulds(tree_2) from ete3 | See http://etetoolkit.org/docs/latest/tutorial/tutorial_trees.html#comparing-trees | ||
hardwiredClusterDistance(tree1, tree2, true) from PhyloNetworks | See https://crsl4.github.io/PhyloNetworks.jl/latest/lib/public/#PhyloNetworks.hardwiredClusterDistance |