colless {apTreeshape} | R Documentation |
colless
computes the Colless' index of a tree and provides standardized values according to the Yule and PDA models.
colless(tree, norm = NULL)
tree |
An object of class |
norm |
A character string equals to |
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 = (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 = 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).
An object of class numeric
which is the Colless' index of the tree.
Michael Blum <michael.blum@imag.fr>
Nicolas Bortolussi <nicolas.bortolussi@imag.fr>
Eric Durand <eric.durand@imag.fr>
Olivier Francois <olivier.francois@imag>
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.
## 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)