PathDist {TreeDist} | R Documentation |
Path distance
Description
Calculate the path distance between rooted or unrooted trees.
Usage
PathDist(tree1, tree2 = NULL)
Arguments
tree1 , tree2 |
Trees of class |
Details
This function is a wrapper for the function
path.dist()
in the phangorn package.
It pre-processes trees to ensure that their internal representation does
not cause the path.dist()
function to crash R.
The path distance is calculated by tabulating the cladistic difference (= topological distance) between each pair of tips in each tree. A precursor to the path distance (Farris 1969) took the mean squared difference between the elements of each tree's tabulation (Farris, 1973); the method used here is that proposed by Steel and Penny (1993), which takes the square root of this sum. Other precursor measures are described in Williams and Clifford (1971) and Phipps (1971).
If a root node is present, trees are treated as rooted.
To avoid counting the root edge twice, use UnrootTree(tree)
before
calculating the path distance.
Use of the path distance is discouraged as it emphasizes shallow relationships at the expense of deeper (and arguably more fundamental) relationships (Farris 1973).
Value
PathDist()
returns a vector or distance matrix of distances
between trees.
Author(s)
Martin R. Smith (martin.smith@durham.ac.uk)
References
Farris JS (1969).
“A successive approximations approach to character weighting.”
Systematic Biology, 18(4), 374–385.
doi:10.2307/2412182.
Farris JS (1973).
“On comparing the shapes of taxonomic trees.”
Systematic Zoology, 22(1), 50–54.
doi:10.2307/2412378.
Phipps JB (1971).
“Dendrogram topology.”
Systematic Zoology, 20(3), 306.
doi:10.2307/2412343.
Steel MA, Penny D (1993).
“Distributions of tree comparison metrics—some new results.”
Systematic Biology, 42(2), 126–141.
doi:10.1093/sysbio/42.2.126.
Williams WT, Clifford HT (1971).
“On the comparison of two classifications of the same set of elements.”
Taxon, 20(4), 519–522.
doi:10.2307/1218253.
See Also
Other tree distances:
JaccardRobinsonFoulds()
,
KendallColijn()
,
MASTSize()
,
MatchingSplitDistance()
,
NNIDist()
,
NyeSimilarity()
,
Robinson-Foulds
,
SPRDist()
,
TreeDistance()
Examples
library("TreeTools")
# Treating the two edges to the root node as distinct
PathDist(BalancedTree(7), PectinateTree(7))
# Counting those two edges once
PathDist(UnrootTree(BalancedTree(7)), UnrootTree(PectinateTree(7)))
PathDist(BalancedTree(7), as.phylo(0:2, 7))
PathDist(as.phylo(0:2, 7), PectinateTree(7))
PathDist(list(bal = BalancedTree(7), pec = PectinateTree(7)),
as.phylo(0:2, 7))
CompareAll(as.phylo(30:33, 8), PathDist)