Estimates the likeliest states for both internal nodes and tips of a phylogeny using the marginal reconstruction algorithm.

MarginRecon.old(phy, data, f, pars, hidden.states=TRUE, four.state.null=FALSE, 
timeslice=NULL, condition.on.survival=TRUE, root.type="madfitz", root.p=NULL, 
AIC=NULL, verbose=TRUE, n.cores=NULL)



a phylogenetic tree, in ape “phylo” format and with internal nodes labeled denoting the ancestral selective regimes.


a data matrix containing species information (see Details).


vector of length 2 with the estimated proportion of extant species in state 0 and 1 that are included in the phylogeny. A value of c(0.25, 0.5) means that 25 percent of species in state 0 and 50 percent of species in state 1 are included in the phylogeny. By default all species are assumed to be known.


vector containing the MLE of the parameters.


a logical indicating whether the model includes a hidden state. The default is FALSE.


a logical indicating whether the model is the null-four model. The default is FALSE.


a user-supplied time to split the tree.


a logical indicating whether the likelihood should be conditioned on the survival of two lineages and the speciation event subtending them (Nee et al. 1994). The default is TRUE.


indicates whether root prior assumption should based the procedure described by FitzJohn et al. 2009, “madfitz”, assumed equal, “equal”, or set to user, “user”.


a vector indicating fixed root state probabilities. The default is NULL.


the AIC for the model being used for the reconstruction. This is used by the plotting function. The default is NULL.


a logical indicating whether progress should be printed to screen. The default is TRUE.


specifies the number of independent processors to conduct the analysis.. The default is NULL.


Conducts ancestral state reconstruction on the original hisse.old and hisseNull4.old functions. In this implementation the marginal probability of state i for a focal node is simply the overall likelihood of the tree and data when the state of the focal node is fixed in state i. Note that the likeliest tip states can also be estimated: we observe state 1, but the underlying state could either be state 1A or 1B. Thus, for any given node or tip we traverse the entire tree as many times as there are states in the model. As the size of the tree grows, however, these repeated tree traversals can slow the calculation down considerably. For this reason, we allow the marginal calculation to be conducted in parallel across any number of independent computer processors.

For user-specified “root.p”, you should specify the probability for each state. If you are doing a hidden model, there will be four states: 0A, 1A, 0B, 1B. So if you wanted to say the root had to be state 0, you would specify “root.p = c(0.5, 0, 0.5, 0)”.

See help for “hisse.old” for more on other parameters for this function.


MarginRecon returns an object of class hisse.states. This is a list with elements:


the marginal probabilities calculated for each node. They are ordered based on the elements in the edge matrix in “phylo” format.


the marginal probabilities calculated for each tip. They are ordered based on the order of tip labels in the tree.


a matrix that details the rates for each state combination. This is used by the plotting function.


a phylogenetic tree in the “phylo” format that contains the states with the highest marginal probability at each internal node.


Beaulieu, J.M, and B.C. O'Meara. 2016. Detecting hidden diversification shifts in models of trait-dependent speciation and extinction. Syst. Biol. 65:583-601.

FitzJohn R.G., Maddison W.P., and Otto S.P. 2009. Estimating trait-dependent speciation and extinction rates from incompletely resolved phylogenies. Syst. Biol. 58:595-611.

Maddison W.P., Midford P.E., and Otto S.P. 2007. Estimating a binary characters' effect on speciation and extinction. Syst. Biol. 56:701-710.

Nee S., May R.M., and Harvey P.H. 1994. The reconstructed evolutionary process. Philos. Trans. R. Soc. Lond. B Biol. Sci. 344:305-311.


Jeremy M. Beaulieu