MINTverse is two machine learning packages, estiMINT and stateMINT. They estimate how intense transmission is in a setting, and predict how prevalence and clinical cases respond to a change in nets, spraying, or larviciding. It does both with trained models that stand in for a full individual-based simulation.
Package
What it does
estiMINT
Maps a measured prevalence to the entomological inoculation rate (EIR), relates EIR to the human biting rate (HBR), and estimates how EIR shifts when mosquito density changes.
stateMINT
Emulates the individual-based model. Given a setting and an intervention package, it returns the prevalence and case trajectories over the campaign.
You can simply call the built-in function run_scenarios to chain the functionality of these packages.
pip install "estimint[scenarios]" installs both packages. The distribution you install is called mintstate and the module you import is stateMINT.
Why an emulator
The trajectories stateMINT returns are those of an individual-based malaria transmission model, the same lineage as the departmental malariasimulation package, where a single scenario takes minutes and exploring an intervention space, or fitting to a survey, means running it thousands of times.
stateMINT is trained on a large library of those simulation runs, and reproduces their output in about 6 ms per scenario on a CPU or about 1 ms on a GPU, parallelised across cores or within the GPU.
A held-out, strongly seasonal parameter set under a net campaign. The white line is malariasimulation, averaged over the individual stochastic runs drawn in grey. The red line is MINTverse, starting from a measured prevalence.
Across 1,954 parameter sets held out of training, the emulator tracks the simulator to a mean absolute error of 0.0044 in prevalence, at an R² of 0.999 and with no systematic bias. Please see Accuracy and speed for the trajectory-by-trajectory comparison.
Outside its training range the emulator is not reliable. estiMINT clamps out-of-range covariates and raises nothing, so a setting far beyond it still returns an answer.
What you need to run it
A Scenario is built from the inputs below, and run_scenarios derives the emulator’s twelve covariates from them. Seven fields are required and the rest default to zero or None.
Transmission enters through one measure wrapped in an EirTarget, almost always a measured prevalence. The mode decides how much estiMINT does before the emulator, and the value it returns is an equilibrium at the campaign rather than a trajectory.
Field
Meaning
Source
eir_target
EirTarget(0.45, "prevalence")
Cross-sectional survey (DHS, MIS)
EirTarget(20, "eir")
A previous calibration
The setting is six required fields describing the district and its mosquitoes.
Field
Meaning
Source
Q0
Human blood index, 0 to 1
The local vector species
phi
Proportion of bites taken while people are in bed
Vector species and human behaviour
seasonal
0 for perennial transmission, 1 for strongly seasonal
Known for the setting
res_use
Pyrethroid resistance, 0 to 1
Bioassay data on the local vector population
irs
IRS coverage in place now, 0 to 1
Known for the setting
name
A label carried into the results
Yours
The nets in place now are usage shares by net type, each defaulting to zero, so leave them all out if there are no nets. calculate_dn0 turns the mix and res_use into the dn0 the model reads, and the killing effect is not supplied directly.
Field
Meaning
Default
py_only
Pyrethroid-only coverage
0.0
py_pbo
Pyrethroid-PBO coverage
0.0
py_pyrrole
Pyrethroid-pyrrole coverage
0.0
py_ppf
Pyrethroid-PPF coverage
0.0
The campaign is what changes from day 3285 onwards, each field defaulting to nothing, which withdraws the nets. Please see the callout below.
Field
Meaning
Default
net_type_future
Net product from the campaign
None
itn_future
Net coverage from the campaign
0.0
irs_future
IRS coverage from the campaign
0.0
lsm
Larval source management coverage
0.0
routine
Continuous net distribution
0.0
mosquito_delta
Proportional change in mosquito density (prevalence input only)
0.0
Running it needs no GPU, no malariasimulation installation, no R, and no training data.
Future coverage must be set explicitly
itn_future, net_type_future and irs_future describe what happens from the campaign, not what is already there. Left unset, they model the existing nets and spraying being withdrawn at the campaign. To hold an intervention steady, restate it in the future fields. Please see Covariates and the time grid.
MINTweb
MINTweb is the same modelling behind a web front end, aimed at National Malaria Control Programmes rather than at researchers. It exists so that a programme can work out the most cost-effective way to deploy the mosquito net and IRS products the WHO currently recommends, without writing any Python.
Work there is organised into projects, each a collection of regions, where a region is whatever unit the programme plans in, an administrative division, a province or a village. Each region carries its own population and its own choice of nets and spraying, and MINTweb returns the impact and the cost effectiveness of each package. Note that IRS is deployed focally, so a region that is only partly sprayed is better split into a sprayed region and an unsprayed one.
MINTweb is the right tool for scenario planning on the day. These packages are the right tool when you want the trajectories themselves, a sweep larger than a form can carry, or a step in the pipeline the front end does not expose.