Rev Language Reference


The fossilized birth death range process (FBDRP) describes the distribution of a matrix of species origination and extinction times under a model of asymmetric speciation and sampling of extinct species.


  • dnFBDRP


dnFossilizedBirthDeathRange(Bool BDS, RealPos lambda, RealPos mu, RealPos psi, Probability rho, RealPos[] timeline, String condition, Taxon[] taxa, Bool complete)


BDS : Bool (pass by value)
Assume complete lineage sampling? (BDS model of Silvestro et al. 2019)
Default : FALSE
lambda : RealPos (pass by const reference)
The speciation rate(s).
mu : RealPos (pass by const reference)
The extinction rate(s).
Default : 0
psi : RealPos (pass by const reference)
The fossil sampling rate(s).
Default : 0
rho : Probability (pass by const reference)
The extant sampling fraction.
Default : 1
timeline : RealPos[] (pass by const reference)
The rate interval change times of the piecewise constant process.
Default : NULL
condition : String (pass by value)
The condition of the process.
Default : time
Options : time|sampling|survival
taxa : Taxon[] (pass by const reference)
The taxa with fossil occurrence information.
complete : Bool (pass by value)
Assume complete fossil sampling?
Default : FALSE

Domain Type


Fossil species are represented by a collection of fossil occurrences with uncertainty. Speciation, extinction and sampling rates may be time-homogeneous or piecewise time-heterogeneous. If time-heterogeneous rates are provided, then a vector of rate change time-points musts also be provided. If only a subset of fossil occurrences is provided for each species (e.g. only first and last occurrencces), then the remaining number of fossil samples may be marginalized by specifying `complete=FALSE`. Under the hood, the fossil data is augmented with oldest occurrence ages for each species, which must be sampled during MCMC using `mvResampleFBD`. Setting `BDS` to true causes the model to assume complete lineage sampling i.e. using the Birth-Death with Rateshifts (BDS) model of Silvestro et al. (2019).


lambda ~ dnExp(10)
mu ~ dnExp(10)
psi ~ dnExp(10)

bd ~ dnFBDRP(lambda=lambda, mu=mu, psi=psi, rho=1, taxa=taxa)

moves.append( mvMatrixElementScale(bd, weight=taxa.size()) )
moves.append( mvMatrixElementSlide(bd, weight=taxa.size()) )

See Also