Tree Simulation Under the Time-Dependent Birth--Death Models

These two functions simulate phylogenies under any time-dependent birth--death model. lineage generates a complete tree including the species that go extinct; rbdtree generates a tree with only the species until present; drop.fossil is a utility function to remove the extinct species.

rlineage(birth, death, Tmax = 50, BIRTH = NULL,
         DEATH = NULL, eps = 1e-6)
rbdtree(birth, death, Tmax = 50, BIRTH = NULL,
        DEATH = NULL, eps = 1e-6)
drop.fossil(phy, tol = 1e-8)

Both functions use continuous-time algorithms described in the references. The models are time-dependent birth--death models as described in Kendall (1948). Speciation (birth) and extinction (death) rates may be constant or vary through time according to an Rfunction specified by the user. In the latter case, BIRTH and/or DEATH may be used of the primitives of birth and death are known. In these functions time is the formal argument and must be named t.


An object of class "phylo".


Kendall, D. G. (1948) On the generalized ``birth-and-death'' process. Annals of Mathematical Statistics, 19, 1--15.

Paradis, E. (2011) Time-dependent speciation and extinction from phylogenies: a least squares approach. Evolution, 65, 661--672.

See Also

yule, yule.time, birthdeath, rtree, stree

plot(rlineage(0.1, 0)) # Yule process with lambda = 0.1
plot(rlineage(0.1, 0.05)) # simple birth-death process
b <- function(t) 1/(1 + exp(0.2*t - 1)) # logistic
layout(matrix(0:3, 2, byrow = TRUE))
curve(b, 0, 50, xlab = "Time", ylab = "")
mu <- 0.07
segments(0, mu, 50, mu, lty = 2)
legend("topright", c(expression(lambda), expression(mu)),
       lty = 1:2, bty = "n")
plot(rlineage(b, mu), show.tip.label = FALSE)
title("Simulated with 'rlineage'")
plot(rbdtree(b, mu), show.tip.label = FALSE)
title("Simulated with 'rbdtree'")
Documentation reproduced from package ape, version 3.0-2, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.