Learn R Programming

apTreeshape (version 1.5-0.1)

colless: Compute the Colless' shape statistic on tree data

Description

colless computes the Colless' index of a tree and provides standardized values according to the Yule and PDA models.

Usage

colless(tree, norm = NULL)

Arguments

tree

An object of class "treeshape" on which the Colless' index is computed.

norm

A character string equals to NULL (default) for no normalization or one of "pda" or "yule".

Value

An object of class numeric which is the Colless' index of the tree.

Details

The Colless' index \(Ic\) computes the sum of absolute values \(|L-R|\) at each node of the tree where L (resp. R) is the size of the left (resp. right) daughter clade at the node.

The mean and standard deviation of the Colless's statistic \(Ic\) have been computed by Blum et al (2005). Under the Yule model the standardized index $$Iyule = \frac{Ic-n*\log(n)-n(\gamma-1-\log(2))}{n}$$ converges in distribution (\(\gamma\) is the Euler constant). The limiting distribution is non Gaussian and is characterized as a functional fixed-point equation solution. Under the PDA model, the standardization is different $$Ipda = \frac{Ic}{n^{3/2}}$$ and converges in distribution to the Airy distribution (See Flajolet and Louchard (2001)). Standardized indices are useful when one wishes to compare trees with different sizes. The colless function returns the value of the unnormalized index (default) or one of the standardized statistics (Yule or PDA).

References

Mooers, A. O. and Heard, S. B. (1997) Inferring Evolutionnary Process from Phylogenetic Tree Shape. The Quarterly Review of Biology, 72, 31 -- 54.

Blum, M., Francois, O. and Janson, S. The mean, variance and limiting distribution of two statistics sensitive to phylogenetic tree balance; manuscript available from http://www-timc.imag.fr/Olivier.Francois/bfj.pdf.

Flajolet, P. and Louchard, O. (2001) Analytic Variations on the Airy Distribution. Algorithmica, 31, 361 -- 377.

See Also

sackin

Examples

Run this code
# NOT RUN {
## Colless' index for a randomly generated PDA tree (unnormalized value)
tpda<-rtreeshape(1,tip.number=70,model="pda")
colless(tpda[[1]],norm="pda")
  
## Histogram of Colless' indices for randomly generated Yule trees
main="Colless' indices for randomly generated Yule trees"
xlab="Colless' indices"
hist(sapply(rtreeshape(50,tip.number=50,model="yule"),FUN=colless,norm="yule"),
      freq=FALSE,main=main,xlab=xlab)
  
## Change the number of tips
hist(sapply(rtreeshape(50,tip.number=25,model="yule"),FUN=colless,norm="yule"),
      freq=FALSE,main=main,xlab=xlab)

# }

Run the code above in your browser using DataLab