Matpopmod is a state-of-the-art Python library for the study of matrix population models. It can be used to:

  • Compute a wide variety of demographic descriptors. This includes all of the classic statistics (reproductive values, net reproductive rate, generation time, etc) as well as recently introduced ones (e.g, measures of kinship and relatedness).

  • Study and plot trajectories, both deterministic from the matrix population model and stochastic from individual-based simulations.

  • Access the COMPADRE / COMADRE databases which, together, contain more than 12000 ready-to-use projection matrices.

  • Perform advanced operations such as redefining the classes of a model, sampling random models with prescribed descriptors, etc.

Matpopmod focuses on ease of use and reliability: its implementation is based on rigorous mathematics and thoroughly tested, and its interface ensures that the user knows exactly what they are computing without having to worry about technical details.

Each functionality is carefully documented with precise references to the literature and examples of use.


Matpopmod requires Python ≥3.6 with NumPy ≥1.10 and Matplotlib. On Windows, we recommend using the Anaconda distribution.

Once you have a working installation of Python, you can install matpopmod by running the following command in your terminal (or in Anaconda Prompt on Windows):

python3 -m pip install matpopmod

This will take care of installing suitable versions of NumPy and Matplotlib. In case of problems, see the Python tutorial on package installation.

To upgrade an existing version of matpopmod to the latest release, use:

python3 -m pip install --upgrade matpopmod

If you want to browse the source code or install the current development version, visit our GitLab repository.

Getting started

After you have installed matpopmod, we suggest reading our quickstart guide. This will give you an overview of the main functionalities of the library.

Once you have done this and want to know more about a specific topic, you can read the documentation of the corresponding module. The complete list of modules, along with a brief description of what each of them contains, can be found here.

In case of problem or question, you can check our FAQ. If that does not help, do not hesitate to contact us, either through GitLab or by email using the addresses below.


François Bienvenu orcid FB
francois.bienvenu \(\texttt{@}\)
Personal webpage

Guilhem Doulcier orcid GD
guilhem.doulcier \(\texttt{@}\)
Personal webpage


Matpopmod was written while F. Bienvenu was funded by a Transilvania Fellowship from the Transilvania University of Brașov.