P4 is a Python package for maximum likelihood and Bayesian analysis of molecular sequences. Its specialty is that it can use heterogeneous models, where the characteristics of the model can differ over the data or over the tree.

P4 is also a phylogenetic toolkit. The interface for p4 is the Python programming language, so p4 comes with all the abilities of a high-level object oriented programming language. This is a Good Thing, but it means that you need to know some Python in order to use it. It can be useful for things like programmatic manipulation of trees or data.

It is hosted at https://github.com/pgfoster/p4-phylogenetics