Ancestral character state reconstruction¶
I think that ancestral state reconstruction should be done in a probabilistic way. I can’t see that it would be good enough to simply ask for the most probable ancestral state; it would be better to make draws from the posterior probability, and that is the way that p4
does it.
Ziheng Yang has a very good description of ancestral state reconstruction in his “Molecular Evolution — A statistical approach” (2014)
The user interface method is p4.tree.Tree.ancestralStateDraw()
, which needs a tree with attached model and data. It returns a string, which is a single draw from the inferred ancestral states.
There are examples on how to use it included in the share/Examples
directory. The first example uses an ML optimized model, and the second example makes draws from the posterior distribution of a Bayesian analysis.