fitMCMC_bdK | R Documentation |
Fits the birth-death k model (a constant-time homogeneous birth-death model under k-sampling) to a rooted ultrametric phylogeny using Bayesian inference. The birth-death process is conditioned on the starting time of the process tot_time
and the survival of the process at present time as well as having k extant sampled tips at present. This function can fit the birth-death k model on a stem or crown phylogeny. This function is specifically adapted for diversification analysis on phylogenies on which the sampling probability is unknown.
fitMCMC_bdK( phylo, tot_time, cond = "crown", YULE = FALSE, dt = 0, rel.tol = 1e-10, tuned_dichotomy = TRUE, brk = 2000, savedBayesianSetup = NULL, mcmcSettings = NULL, prior = NULL, parallel = FALSE, save_inter = NULL, index_saving = NULL )
phylo |
Object of class |
tot_time |
Numeric. The stem or crown age (also called MRCA) of the phylogeny depending on the conditioning of the process specified (see |
cond |
Character. Specifying the conditioning of the birth-death process. Two conditioning are available, either |
YULE |
Logical. If |
dt |
Numeric. If |
rel.tol |
Numeric. This argument is only used if |
tuned_dichotomy |
Logical. If |
brk |
Numeric. This argument is only used if |
savedBayesianSetup |
BayesianOutput. A BayesianOutput created by |
mcmcSettings |
List. A list of settings for the Bayesian inference using the sampler |
prior |
Prior or function. Either a prior class (see |
parallel |
Numeric or logical. If |
save_inter |
Numeric vector. A vector specifying the timings at which the MCMC chains should be saved for checkpointing. This can be computed using the following example : |
index_saving |
Factor. A factor specifying the name of the MCMC chains saved during the checkpointing. The MCMC chains will be saved as a RDS file in your working directory and will have the following syntax |
This function will fit the birth-death k-sampling model and the function will infer the net diversification rate r and the turnover rate ε. Note that the prior
and the mcmcSettings
should be adapted to the number of parameters (here 2, r and ε). This function is specifically intended to be used on phylogenies with unknown or highly uncertain global diversity estimates (the sampling probability is not known with accuracy). Note that the sampling probability is never estimated and that this function is not able to evaluate negative rates.
Returns an object of class MCMC_bdK
. This MCMC_bdK
object is a list containing the name of the birth-death model performed and an object of class "mcmcSampler" "bayesianOutput"
(see the output of BayesianTools::runMCMC()
). This second object contains the MCMC chains and the information about the MCMC run. For analysis of the chains, it can be converted to a coda
object (BayesianTools::getSample()
) or used in line with the appropriate functions e.g. BayesianTools::MAP()
.
Sophia Lambert
likelihood_bdK
and fitMCMC_bdRho
# Creating a phylogeny with 0.05 net diversification rate and 0.5 turnover rate. set.seed(1234) tree1 <- TESS::tess.sim.age(1, 100, lambda = 0.1, mu = 0.05, MRCA = TRUE, samplingProbability = 0.5)[[1]] plot(tree1, root.edge = TRUE) # Creating variables to give to arguments tot_time <- max(TreeSim::getx(tree1)) Ntips <- ape::Ntip(tree1) lamb_moments <- log(Ntips)/tot_time # Creating setting for MCMC densityTest4 = function(x) { sum(dunif(x[1], min = 0, max = 1, log =TRUE)) + sum(dunif(x[2], min = 0, max = 1, log =TRUE)) } samplerTest4 = function(n=1){ s1 = runif(n, min = 0, max = 1) s2 = runif(n, min = 0, max = 1) return(cbind(s1,s2)) } priorTest4 <- BayesianTools::createPrior(density = densityTest4, sampler = samplerTest4, lower = c(0,0), upper = c(1,1), best = NULL) StartValueDTest4 = c(lamb_moments, runif(2, min = 0, max = 0.1)) StartValueEpsiTest4 = runif(3, min = 0, max = 1) startValueTest4 = matrix(data = c(StartValueDTest4, StartValueEpsiTest4), nrow = 3, ncol = 2) # Parameters for the checkpointing nbIter <- 20000 maxTime <- 60*60*19.3 # 20 hours max (tiny less because of some processing issues) stopTime <- 60*60*20 freqTime <- 60*60*3.21 # save every 3 hours previousMCMC = NULL # Fitting the birth-death k-sampling model res_fitMCMC_M2 <- fitMCMC_bdK(phylo = tree1, tot_time = tot_time, cond = "crown", YULE = FALSE, dt = 0, rel.tol = 1e-10, tuned_dichotomy = TRUE, brk = 2000, savedBayesianSetup = previousMCMC, mcmcSettings = list(iterations = 3*nbIter, startValue = startValueTest4), prior = priorTest4, parallel = FALSE, save_inter = c(seq(from = proc.time()[3], to = maxTime, by = freqTime),stopTime), index_saving = as.factor("M2_tree1")) plot(res_fitMCMC_M2$mcmc)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.