Divergence dating converts a rooted, branch-length tree into absolute node ages under a molecular-clock model. The central idea: because a branch length is the product rate x time, sequences alone fix only the relative rate-time tree, and calibrations are the one thing that turns it into millions of years. A node-age posterior is therefore dominated by the calibration prior and how the tree prior and neighboring calibrations reshape it, far more than by the sequence data. This guide covers clock-model choice (strict, UCLN, autocorrelated, random local clocks), calibration strategy (node priors, soft bounds, tip-dating, fossilized birth-death), the dating engines (BEAST2, MCMCTree/PAML, TreePL, LSD2), and the two checks that separate a real date from a prior reflected back: the sample-from-prior run and the temporal-signal test.
# BEAST2 (includes BEAUti, LogCombiner, TreeAnnotator); add the SA package for FBD tip-dating
conda install -c bioconda beast2
# MCMCTree (part of PAML) for genome-scale approximate-likelihood dating
conda install -c bioconda paml
# TreePL (penalized likelihood, very large trees)
conda install -c bioconda treepl
# LSD2 ships inside IQ-TREE 2 as --date; TempEst is a separate GUI download (beast.community/tempest)
conda install -c bioconda iqtree
# Python helpers for control files and reading dated trees
pip install biopython dendropy
Conceptual prerequisites: a rooted tree with branch lengths (in substitutions), at least one justified calibration (a fossil minimum or sampling dates), and, for tip-dating, heterochronous samples with verified temporal signal.
Tell your AI agent what you want to do: - "Estimate divergence times for my phylogeny and report HPD intervals, not point ages" - "Run my BEAST2 analysis sampling from the prior first and compare effective priors to the posterior" - "Set up fossil calibrations as minima with soft bounds, not point constraints" - "Prepare an MCMCTree control file for genome-scale dating with approximate likelihood" - "Check whether my virus dataset has temporal signal before I tip-date it" - "Date a 5000-taxon tree with TreePL, cross-validating the smoothing parameter" - "Decide whether to use node calibration or the fossilized birth-death process"
"I have a multi-gene primate alignment. Should I use a strict or relaxed clock, and how do I decide?"
"How do I read the ucld.stdev posterior and the coefficient of variation to tell whether a strict clock suffices?"
"My data span mammals and birds with very different rates. Which clock model fits, and how do I justify it?"
"I have three insect fossil calibrations. Help me set lognormal-offset priors that treat each fossil as a minimum."
"Set up MCMCTree soft-bound calibrations with 2.5% tails for a vertebrate phylogeny."
"I have a rich fossil record and a morphological matrix. Should I use the fossilized birth-death process instead of node priors?"
"I only have secondary calibrations from a previous study. How do I avoid laundering their uncertainty?"
"Run my BEAST2 model from the prior only and tell me whether the posterior on each calibrated node differs from the effective prior."
"My clock-rate ESS is below 200 in Tracer. How do I fix convergence?"
"Two independent MCMCTree runs disagree on a deep node age. How do I diagnose it?"
"Check temporal signal in my viral dataset with a root-to-tip regression and a date-randomization test before dating."
"Set up tip-dating in BEAST2 using collection dates and a coalescent tree prior."
"Run a fast LSD2 dating pass with confidence intervals on my large outbreak tree."
"I have 500 loci. Is BEAST2 or MCMCTree the right engine, and why?"
"My divergence-time credible intervals are very wide on both rates and the root. What is wrong?"
"The posterior on one node looks identical to the prior. Does that mean the data are uninformative there?"
ucld.stdev), not by defaulting, and justify strict-vs-relaxed via marginal-likelihood comparison.sampleFromPrior="true" / usedata=0) and compare specified-vs-effective-vs-posterior on every calibrated node.ucld.stdev: abutting zero means a strict clock suffices; clearly above zero means the relaxed clock is doing necessary work.