Infectious disease compartmental models (SIR/SEIR/SEIRD) for epidemic modelling (Mali/West Africa context)
# Infectious Disease Compartmental Models (SIR/SEIR)
**Real-world mathematical modelling of infectious disease transmission (Mali/West Africa context)**
This repository provides a complete, professional toolkit for modelling the transmission dynamics
of infectious diseases using classical compartmental models (SIR, SEIR, SEIRD). The models are
implemented in Python with `scipy.integrate.solve_ivp`, and the repository includes model fitting
to case data, parameter sensitivity analysis, and vaccination impact scenario modelling.
Realistic West African context is used throughout — measles is treated as a worked example because
of its well-characterised basic reproduction number and the relevance of high birth rates and
vaccination coverage in the region.
---
## Overview of Contents
```
sir-seir-models/
├── README.md # This document
├── requirements.txt # Python dependencies
├── models/
│ ├── sir_model.py # SIR compartmental model (core)
│ ├── seir_model.py # SEIR model (adds exposed/latent compartment)
│ └── seird_model.py # SEIRD model (adds death compartment & CFR)
├── scripts/
│ ├── 01_basic_sir.py # Baseline measles-like epidemic simulation
│ ├── 02_parameter_sensitivity.py # Sweep R0, build heatmaps & final size curves
│ ├── 03_vaccination_impact.py # Vaccination coverage, Re, herd immunity
│ └── 04_fit_to_case_data.py # Fit model parameters to (synthetic) case data
└── output/ # Generated publication-quality figures (PNG)
```
## Theory
### Basic reproduction number, R₀
The **basic reproduction number** R₀ is the expected number of secondary infections produced by
a single infectious individual in a fully susceptible population. It is the single most important
summary parameter in infectious disease epidemiology:
- R₀ > 1 : an outbreak can occur; the infection spreads
- R₀ e accounts for the proportion of the population
that is no longer susceptible. If a …