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.
force.ultrametric(tree, method=c("nnls","extend"))
an object of class "phylo"
.
the method to use to force the tree to be ultrametric. Options are "nnls"
(which uses the phangorn function nnls.tree
internally), or "extend"
.
An ultrametric tree in an object of class "phylo"
.
Revell, L. J. (2012) phytools: An R package for phylogenetic comparative biology (and other things). Methods Ecol. Evol., 3, 217-223.