Learn R Programming

ape (version 5.8-1)

reconstruct: Continuous Ancestral Character Estimation

Description

This function estimates ancestral character states, and the associated uncertainty, for continuous characters. It mainly works as the ace function, from which it differs, first, in the fact that computations are not performed by numerical optimisation but through matrix calculus. Second, besides classical Brownian-based reconstruction methods, it reconstructs ancestral states under Arithmetic Brownian Motion (ABM, i.e. Brownian with linear trend) and Ornstein-Uhlenbeck process (OU, i.e. Brownian with an attractive optimum).

Usage

reconstruct(x, phyInit, method = "ML", alpha = NULL,
            low_alpha = 0.0001, up_alpha = 1, CI = TRUE)

Value

an object of class "ace" with the following elements:

ace

the estimates of the ancestral character values.

CI95

the estimated 95% confidence intervals.

sigma2

if method = "ML", the maximum likelihood estimate of the Brownian parameter.

loglik

if method = "ML", the maximum log-likelihood.

Arguments

x

a numerical vector.

phyInit

an object of class "phylo".

method

a character specifying the method used for estimation. Six choices are possible: "ML", "REML", "GLS", "GLS_ABM", "GLS_OU" or "GLS_OUS".

alpha

a numerical value which accounts for the attractive strength parameter of "GLS_OU" or "GLS_OUS" (used only in these cases). If alpha = NULL (the default), then it is estimated by maximum likelihood using optim, with low_alpha (resp. up_alpha) as lower value (resp. upper value), which may lead to convergence issue.

low_alpha

a lower bound for alpha, used only with methods "GLS_OU" or "GLS_OUS". It has to be positive.

up_alpha

an upper bound for alpha, used only with methods "GLS_OU" or "GLS_OUS". It has to be positive.

CI

a logical specifying whether to return the 95% confidence intervals of the ancestral state estimates.

Author

Manuela Royer-Carenzi, Gilles Didier

Details

For "ML", "REML" and "GLS", the default model is Brownian motion. This model can be fitted by maximum likelihood (method = "ML", Felsenstein 1973, Schluter et al. 1997) - the default, residual maximum likelihood (method = "REML"), or generalized least squares (method = "GLS", Martins and Hansen 1997, Garland T and Ives AR 2000). "GLS_ABM" is based on Brownian motion with trend model. Both "GLS_OU" and "GLS_OUS" are based on Ornstein-Uhlenbeck model. "GLS_OU" and "GLS_OUS" differs in the fact that "GLS_OUS" assume that the process starts from the optimum, while the root state has to be estimated for "GLS_OU", which may rise some issues (see Royer-Carenzi and Didier, 2016). Users may provide the attractive strength parameter alpha, for these two models. "GLS_ABM", "GLS_OU" and "GLS_OUS" are all fitted by generalized least squares (Royer-Carenzi and Didier, 2016).

References

Felsenstein, J. (1973) Maximum likelihood estimation of evolutionary trees from continuous characters. American Journal of Human Genetics, 25, 471--492.

Garland T. and Ives A.R. (2000) Using the past to predict the present: confidence intervals for regression equations in phylogenetic comparative methods. American Naturalist, 155, 346--364.

Martins, E. P. and Hansen, T. F. (1997) Phylogenies and the comparative method: a general approach to incorporating phylogenetic information into the analysis of interspecific data. American Naturalist, 149, 646--667.

Royer-Carenzi, M. and Didier, G. (2016) A comparison of ancestral state reconstruction methods for quantitative characters. Journal of Theoretical Biology, 404, 126--142.

Schluter, D., Price, T., Mooers, A. O. and Ludwig, D. (1997) Likelihood of ancestor states in adaptive radiation. Evolution, 51, 1699--1711.

Yang, Z. (2006) Computational Molecular Evolution. Oxford: Oxford University Press.

See Also

MPR, corBrownian, compar.ou

Reconstruction of ancestral sequences can be done with the package phangorn (see function ?ancestral.pml).

Examples

Run this code
### Some random data...
data(bird.orders)
x <- rnorm(23, m=100)
### Reconstruct ancestral quantitative characters:
reconstruct(x, bird.orders)
reconstruct(x, bird.orders, method = "GLS_OUS", alpha=NULL)

Run the code above in your browser using DataLab