Learn R Programming

phytools (version 0.7-20)

force.ultrametric: Forces a phylogenetic tree to be ultrametric

Description

This function forces an object of class "phylo" to be ultrametric. This is achieved either by using nnls.tree from the phangorn package to compute the set of edge lengths that result in a minimized sum-of-squares distance between the patristic distance of the output and input trees (method="nnls"); or by simply extending all the external edges of the tree to match the external edge with the greatest total height (method="extend").

Note that neither of these should be treated as formal statistical methods for inferring an ultrametric tree. Rather, this method can be deployed when a genuinely ultrametric tree read from file fails is.ultrametric for reasons of numerical precision.

Usage

force.ultrametric(tree, method=c("nnls","extend"))

Arguments

tree

an object of class "phylo".

method

the method to use to force the tree to be ultrametric. Options are "nnls" (which uses the phangorn function nnls.tree internally), or "extend".

Value

An ultrametric tree in an object of class "phylo".

References

Revell, L. J. (2012) phytools: An R package for phylogenetic comparative biology (and other things). Methods Ecol. Evol., 3, 217-223.

See Also

is.ultrametric, nnls.tree