distRoot: Compute the distance of tips to the root

View source: R/distances.R

distRootR Documentation

Compute the distance of tips to the root


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.


  tips = "all",
  method = c("patristic", "nNodes", "Abouheif", "sumDD")



a tree of class phylo, phylo4 or phylo4d.


A vector of integers identifying tips by their numbers, or a vector of characters identifying tips by their names.


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.

See Also

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)

adephylo documentation built on Oct. 19, 2022, 5:15 p.m.