Learn R Programming

ape (version 5.5)

rtt: Root a Tree by Root-to-Tip Regression

Description

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

Usage

rtt(t, tip.dates, ncpu = 1, objective = correlation,
    opt.tol = .Machine$double.eps^0.25)

Arguments

t

an object of class "phylo".

tip.dates

a vector of sampling times associated to the tips of t, in the same order as t$tip.label.

ncpu

number of cores to use.

objective

one of "correlation", "rms", or "rsquared".

opt.tol

tolerance for optimization precision.

Value

an object of class "phylo".

Details

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.

References

Rambaut, A. (2009). Path-O-Gen: temporal signal investigation tool.

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

Examples

Run this code
# NOT RUN {
t <- rtree(100)
tip.date <- rnorm(t$tip.label)^2
rtt(t, tip.date)
# }

Run the code above in your browser using DataLab