This function computes the topological distance between two
phylogenetic trees or among trees in a list (if y = NULL
using
different methods.
dist.topo(x, y = NULL, method = "PH85")
an object of class "phylo"
or of class
"multiPhylo"
.
an (optional) object of class "phylo"
.
a character string giving the method to be used: either
"PH85"
, or "score"
.
a single numeric value if both x
and y
are used, an
object of class "dist"
otherwise.
Two methods are available: the one by Penny and Hendy (1985, originally from Robinson and Foulds 1981), and the branch length score by Kuhner and Felsenstein (1994). The trees are always considered as unrooted.
The topological distance is defined as twice the number of internal branches defining different bipartitions of the tips (Robinson and Foulds 1981; Penny and Hendy 1985). Rzhetsky and Nei (1992) proposed a modification of the original formula to take multifurcations into account.
The branch length score may be seen as similar to the previous distance but taking branch lengths into account. Kuhner and Felsenstein (1994) proposed to calculate the square root of the sum of the squared differences of the (internal) branch lengths defining similar bipartitions (or splits) in both trees.
Billera, L. J., Holmes, S. P. and Vogtmann, K. (2001) Geometry of the space of phylogenetic trees. Advances in Applied Mathematics, 27, 733--767.
Kuhner, M. K. and Felsenstein, J. (1994) Simulation comparison of phylogeny algorithms under equal and unequal evolutionary rates. Molecular Biology and Evolution, 11, 459--468.
Nei, M. and Kumar, S. (2000) Molecular Evolution and Phylogenetics. Oxford: Oxford University Press.
Penny, D. and Hendy, M. D. (1985) The use of tree comparison metrics. Systemetic Zoology, 34, 75--82.
Robinson, D. F. and Foulds, L. R. (1981) Comparison of phylogenetic trees. Mathematical Biosciences, 53, 131--147.
Rzhetsky, A. and Nei, M. (1992) A simple method for estimating and testing minimum-evolution trees. Molecular Biology and Evolution, 9, 945--967.
# NOT RUN {
ta <- rtree(30)
tb <- rtree(30)
dist.topo(ta, ta) # 0
dist.topo(ta, tb) # unlikely to be 0
# }
Run the code above in your browser using DataLab