Build Status PyPi version Number of downloads JOSS paper

Please take a look at the features to see what MetaWards can do. Follow the quick start guide to see how to quickly get up and running using MetaWards to model your own custom disease or metapopulation model.


Please cite use of this software following the instructions in the “Cite this repository” link in the GitHub repository, and also please cite our [Journal of Open Source Software paper](

Scientific Background

MetaWards implements a stochastic metapopulation model of disease transmission. It can scale from modelling local transmission up to full national- or international-scale metapopulation models.

This is a Python port of the MetaWards package originally written by Leon Danon. This port has been performed with Leon’s support by the Bristol Research Software Engineering Group.

It is was originally developed to support modelling of disease transmission in Great Britain. The complete model description and the original C code are described here;

  • “The role of routine versus random movements on the spread of disease in Great Britain”, Leon Danon, Thomas House, Matt J. Keeling, Epidemics, December 2009, 1 (4), 250-258; DOI: 10.1016/j.epidem.2009.11.002

  • “Individual identity and movement networks for disease metapopulations”, Matt J. Keeling, Leon Danon, Matthew C. Vernon, Thomas A. House Proceedings of the National Academy of Sciences, May 2010, 107 (19) 8866-8870; DOI: 10.1073/pnas.1000416107

In this model, the population is divided into electoral wards. Disease transmission between wards occurs via the daily movement of individuals. For each ward, individuals contribute to the force of infection (FOI) in their home ward during the night, and their work ward during the day.

This model was recently adapted to model CoVID-19 transmission in England and Wales, with result of the original C code published here;

  • “A spatial model of CoVID-19 transmission in England and Wales: early spread and peak timing”, Leon Danon, Ellen Brooks-Pollock, Mick Bailey, Matt J Keeling, Philosophical Transactions of the Royal Society B, 376(1829); DOI: 10.1098/rstb.2020.0272

This Python code is a port which can identically reproduce the outputs from the original C code as used in that work. This Python code has been optimised and parallelised, with additional testing added to ensure that development and scale-up of MetaWards has been robustly and efficiently conducted.



Model Data

Quick Start Guide




Getting help





Indices and tables