This function performs phylogeny inference using least-squares.
optim.phylo.ls(D, stree=NULL, set.neg.to.zero=TRUE, fixed=FALSE,
tol=1e-10, collapse=TRUE)
a distance matrix.
an optional starting tree for the optimization.
a logical value indicating whether to set negative branch lengths to zero (default TRUE
).
a logical value indicating whether to estimate the topology - if TRUE
only the branch lengths will be computed.
a tolerance value used to assess whether the optimization has converged.
a logical indicating whether to collapse branches with zero length.
An object of class "phylo"
that (may be) the least-squares tree with branch lengths; also returns the sum of squares in attr(tree,"Q-score")
.
Function uses nni
from the phangorn package (Schliep 2011) to conduct NNIs for topology estimation. Since topology optimization is performed using NNIs, convergence to the true least-squares topology is not guaranteed. It is consequently probably wise to start with a very good tree - such as a NJ tree.
Cavalli-Sforza, L. L., and A. W. F. Edwards. (1967) Phylogenetic analysis: Modesl and estimation procedures. American Journal of Human Genetics, 19, 233-257.
Felsenstein, J. (2004) Inferring Phylogenies. Sinauer.
Paradis, E., J. Claude, and K. Strimmer. (2004) APE: Analyses of phylogenetics and evolution in R language. Bioinformatics, 20, 289-290.
Revell, L. J. (2012) phytools: An R package for phylogenetic comparative biology (and other things). Methods Ecol. Evol., 3, 217-223.
Schliep, K. P. (2011) phangorn: phylogenetic analysis in R. Bioinformatics, 27, 592-593.