force.ultrametric: Forces a phylogenetic tree to be ultrametric

Description Usage Arguments Value Author(s) References See Also

View source: R/utilities.R


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".


Liam Revell


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

phytools documentation built on July 8, 2020, 5:33 p.m.