distRoot {adephylo} | R Documentation |
The function distRoot
computes the distance of a set of tips to the
root. Several distances can be used, defaulting to the sum of branch lengths.
distRoot(x, tips, method=c("patristic","nNodes","Abouheif","sumDD"))
x |
a tree of class phylo ,
phylo4 or phylo4d. |
tips |
A vector of integers identifying tips by their numbers, or a vector of characters identifying tips by their names. |
method |
a character string (full or abbreviated without
ambiguity) specifying the method used to compute distances ;
possible values are: - patristic : patristic distance, i.e. sum of branch lengths - nNodes : number of nodes on the path between the nodes - Abouheif : Abouheif's distance (see details) - sumDD : sum of direct descendants of all nodes on the path
(see details) |
Abouheif
distance refers to the phylogenetic distance
underlying the test of Abouheif (see references). Let P be the set of
all the nodes in the path going from node1
to node2
. Let
DDP be the number of direct descendants from each node in P. Then, the
so-called 'Abouheif' distance is the product of all terms in DDP.
sumDD
refers to a phylogenetic distance quite similar to that
of Abouheif. We consider the same sets P and DDP. But instead of
computing the product of all terms in DDP, this distance computes the
sum of all terms in DDP.
A numeric vector containing one distance value for each tip.
Thibaut Jombart tjombart@imperial.ac.uk
Pavoine, S.; Ollier, S.; Pontier, D. & Chessel, D. (2008) Testing for phylogenetic signal in life history variable: Abouheif's test revisited. Theoretical Population Biology: 73, 79-91.
distTips
which computes the same phylogenetic
distances, but between tips.
if(require(ape) & require(phylobase)){ ## make a tree x <- as(rtree(50),"phylo4") ## compute 4 different distances met <- c("patristic","nNodes","Abouheif","sumDD") D <- lapply(met, function(e) distRoot(x, method=e) ) names(D) <- met D <- as.data.frame(D) ## plot these distances along with the tree temp <- phylo4d(x, D) table.phylo4d(temp, show.node=FALSE, cex.lab=.6) }