sackin {apTreeshape} | R Documentation |
sackin
computes the Sackin's index on tree and normalizes it.
sackin(tree, norm = NULL)
tree |
An object of class "treeshape" on which the Sackin's index is computed. |
norm |
A character string equals to "null" (default) for no normalization, "pda" for the PDA normalization or "yule" for the Yule normalization. |
The Sackin's index is computed as the sum of the number of ancestors for each tips of the tree. The less balanced a tree is and the larger its Sackin's index. It can be normalized in order to obtain a statistic that does not depend on the tree size, and so compare trees with different sizes. The normalization depends on the reference model (Yule or PDA). Under the Yule model, the normalized index is
Iyule = (Is-2*n*sum1/j,j=2..n))/n
where Is is the non-normalized Sackin's index for a n-tips tree. Under the PDA model, the normalized index is
Ipda = Is/ n^(3/2)
See details on the Colless index.
An object of class numeric
which contains the Sackin's index of the tree.
Michael Blum <michael.blum@imag.fr>
Nicolas Bortolussi <nicolas.bortolussi@imag.fr>
Eric Durand <eric.durand@imag.fr>
Olivier François <olivier.francois@imag.fr>
Mooers, A. O., Heard, S. B. (Mar., 1997) Inferring Evolutionnary Process from Phylogenetic Tree Shape. The Quarterly Review of Biology, 72, 31 – 54, for more details about the Sackin'index and its signification about the balance of phylogenetic trees.
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.
## Index of Sackin of a PDA tree : tpda<-rtreeshape(1,tip.number=70,model="pda") tpda<-tpda[[1]] sackin(tpda,norm="pda") ## Histogram of the Sackin's indices for randomly generated Yule trees, ## with no normalization main="Histogram of Sackin's indices for randomly generated Yule trees" xlab="Sackin's index" hist(sapply(rtreeshape(300,tip.number=50,model="yule"),FUN=sackin,norm="yule"), freq=FALSE, main=main, xlab=xlab) ## Change the size of the trees: hist(sapply(rtreeshape(300,tip.number=100,model="yule"),FUN=sackin,norm="yule"), freq=FALSE, main=main, xlab=xlab)