Root a Tree by Root-to-Tip Regression

This function roots a phylogenetic tree with dated tips in the location most compatible with the assumption of a strict molecular clock.

rtt(t, tip.dates, ncpu = 1, objective = correlation,
    opt.tol = .Machine$double.eps^0.25)
an object of class "phylo".
a vector of sampling times associated to the tips of t, in the same order as t$tip.label.
number of cores to use.
one of "correlation", "rms", or "rsquared".
tolerance for optimization precision.

This function duplicates one part the functionality of the program Path-O-Gen (see references). The root position is chosen to produce the best linear regression of root-to-tip distances against sampling times.

t must have branch lengths in units of expected substitutions per site.

tip.dates should be a vector of sampling times, in any time unit, with time increasing toward the present. For example, this may be in units of ``days since study start'' or ``years since 10,000 BCE'', but not ``millions of yearsago''.

Setting ncpu to a value larger than 1 requires the parallel library.

objective is the measure which will be used to define the ``goodness'' of a regression fit. It may be one of "correlation" (strongest correlation between tip date and distance from root), "rms" (lowest root-mean-squared error), or "rsquared" (highest R-squared value).

opt.tol is used to optimize the location of the root along the best branch. By default, R's optimize function uses a precision of .Machine$double.eps^0.25, which is about 0.0001 on a 64-bit system. This should be set to a smaller value if the branch lengths of t are very short.


  • an object of class "phylo".


This function only chooses the best root. It does not rescale the branch lengths to time, or perform a statistical test of the molecular clock hypothesis.


Rambaut, A. (2009). Path-O-Gen: temporal signal investigation tool. http://tree.bio.ed.ac.uk/software/pathogen/

Rambaut, A. (2000). Estimating the rate of molecular evolution: incorporating non-contemporaneous sequences into maximum likelihood phylogenies. Bioinformatics, 16, 395-399.

  • rtt
t <- rtree(100)
tip.date <- rnorm(t$tip.label)^2
rtt(t, tip.date)
Documentation reproduced from package ape, version 3.2, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.