Learn R Programming

ape (version 5.8)

compute.brlen: Branch Lengths Computation

Description

This function computes branch lengths of a tree using different methods.

Usage

compute.brlen(phy, method = "Grafen", power = 1, ...)

Value

An object of class phylo with branch lengths.

Arguments

phy

an object of class phylo representing the tree.

method

the method to be used to compute the branch lengths; this must be one of the followings: (i) "Grafen" (the default), (ii) a numeric vector, or (iii) a function.

power

The power at which heights must be raised (see below).

...

further argument(s) to be passed to method if it is a function.

Author

Julien Dutheil dutheil@evolbio.mpg.de and Emmanuel Paradis

Details

Grafen's (1989) computation of branch lengths: each node is given a `height', namely the number of leaves of the subtree minus one, 0 for leaves. Each height is scaled so that root height is 1, and then raised at power 'rho' (> 0). Branch lengths are then computed as the difference between height of lower node and height of upper node.

If one or several numeric values are provided as method, they are recycled if necessary. If a function is given instead, further arguments are given in place of ... (they must be named, see examples).

Zero-length branches are not treated as multichotomies, and thus may need to be collapsed (see di2multi).

References

Grafen, A. (1989) The phylogenetic regression. Philosophical Transactions of the Royal society of London. Series B. Biological Sciences, 326, 119--157.

See Also

read.tree for a description of phylo objects, di2multi, multi2di

Examples

Run this code
data(bird.orders)
plot(compute.brlen(bird.orders, 1))
plot(compute.brlen(bird.orders, runif, min = 0, max = 5))
layout(matrix(1:4, 2, 2))
plot(compute.brlen(bird.orders, power=1), main=expression(rho==1))
plot(compute.brlen(bird.orders, power=3), main=expression(rho==3))
plot(compute.brlen(bird.orders, power=0.5), main=expression(rho==0.5))
plot(compute.brlen(bird.orders, power=0.1), main=expression(rho==0.1))
layout(1)

Run the code above in your browser using DataLab