This function uses Bayesian MCMC to estimate ancestral states and thresholds for a discrete character under the threshold model from quantitative genetics (Felsenstein 2012).
ancThresh(tree, x, ngen=100000, sequence=NULL, method="mcmc",
model=c("BM","OU","lambda"), control=list(), ...)
This function returns an object of class "ancThresh"
containing the posterior sample from our analysis, along with other components.
phylogenetic tree.
a named vector containing discrete character states; or a matrix containing the tip species, in rows, and probabilities of being in each state, in columns.
number of generations to run the MCMC.
assumed ordering of the discrete character state. If not supplied and x
is a vector then numerical/alphabetical order is assumed; if not supplied and x
is a matrix, then the column order of x
is used.
only method currently available is "mcmc"
.
model for the evolution of the liability. Options are "BM"
(Brownian motion, the default), "OU"
(Ornstein-Uhlenbeck), or "lambda"
(the \(\lambda\) model).
list containing the following elements: sample
, the sampling interval; propliab
variance of the proposal distribution for liabilities; propthresh
variance on the proposal distribution for the thresholds; propalpha
variance on the proposal distribution for alpha
(for model="OU"
); pr.anc
prior probability distribution on the ancestral states for each node, in a matrix - not all nodes need to be supplied; pr.th
prior density on the thresholds; burnin
number of generations to exclude for burn-in when plotting posterior probabilities on the tree; plot
logical value indicating whether or not to plot the posterior probabilities; print
logical value indicating whether or not to print the state of the MCMC; piecol
colors for the posterior probabilities plotted as pie charts at internal nodes; and tipcol
which indicates whether the tip colors should be based on the input data ("input"
) or sampled tip liabilities ("estimated"
). These will only differ if there is uncertainty in the tip states.
additional arguments to be passed to plotThresh
(called internally).
Liam Revell liam.revell@umb.edu
According to the threshold model from evolutionary quantitative genetics, values for our observed discrete character are determined by an unseen continuous trait, normally referred to as liability. Every time the value for liability crosses a threshold, the observed discrete character changes in state.
Felsenstein (2012) first had the insight that this model could be used to study the evolution of discrete character traits on a reconstructed phylogenetic tree.
This function uses Bayesian MCMC to sample ancestral liabilities and thresholds for a discrete character evolution under the threshold model.
print
and plot
S3 methods are now available for the object class "ancThresh"
.
Felsenstein, J. (2012) A comparative method for both discrete and continuous characters using the threshold model. American Naturalist, 179, 145-156.
Revell, L. J. (2014) Ancestral character estimation under the threshold model from quantitative genetics. Evolution, 68, 743-759.
Revell, L. J. (2024) phytools 2.0: an updated R ecosystem for phylogenetic comparative methods (and other things). PeerJ, 12, e16505.
anc.Bayes
, threshBayes
if (FALSE) {
## load data from Revell & Collar (2009)
data(sunfish.tree)
data(sunfish.data)
## extract character of interest
fmode<-setNames(sunfish.data$feeding.mode,
rownames(sunfish.data))
## run MCMC
mcmc<-ancThresh(sunfish.tree,fmode,ngen=1000000)
## plot results
plot(mcmc,mar=c(0.1,0.1,4.1,0.1))
title(main="Posterior probabilities for node states",
font.main=3)}
Run the code above in your browser using DataLab