Coerces an object of class "phylo"
to be ultrametric.
force.ultrametric(tree, method=c("nnls","extend"), ...)
An ultrametric tree in an object of class "phylo"
.
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"
.
optional arguments: principally, message
. This argument (if set to FALSE
) can be used to suppress the default warning message that force.ultrametric
should not be used as a formal statistical method to ultrametricize a tree.
Liam Revell liam.revell@umb.edu
force.ultrametric
coerces a non-ultrametric tree 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.
Revell, L. J. (2024) phytools 2.0: an updated R ecosystem for phylogenetic comparative methods (and other things). PeerJ, 12, e16505.
is.ultrametric
, nnls.tree