Skip to content

MEmilio v1.0.0

Compare
Choose a tag to compare
@mknaranja mknaranja released this 20 Dec 16:27
· 113 commits to main since this release
0368ad2

MEmilio implements various models for infectious disease dynamics, from simple compartmental (ODE) models through Integro-Differential equation-based (IDE) models (sometimes also denoted "age of infection models") to agent- or individual-based models (ABMs). Its modular design allows the combination of different models with different mobility patterns. Through efficient implementation and parallelization, MEmilio brings cutting edge and compute intensive epidemiological models to a large scale, enabling a precise and high-resolution spatiotemporal infectious disease dynamics.

In version 1.0.0, we publish:

Basic models (with local focus or without spatial resolution):

  • four different ODE-based models from simple SIR to extended models with three subpopulations of different immunity levels and eight different compartments from asymptomatic to severe and critical disease states
  • two IDE-based models in which more realistic transmission and compartment stays can be realized
  • one agent-based model (ABM) which, due to its object-oriented implementation, allows for simulation of different immunity levels and multiple virus (variants)
    --> All models can be resolved for demographic features such as age or income.

Inflow and outflow computation for compartmental models
Basic compartmental models inherit from either a parental CompartmentalModel or a FlowModel so that new ODE-based models with standard analyses tools can be implemented time-efficient. In contrast to classical implementations of ODE-based models, FlowModels ensure a continuous computation of inflows and outflows of the compartments such that, e.g., new hospitalizations can be tracked easily.

Mobility concepts which leverage basic models to spatially resolved models

  • A deterministic mobility concept with predefined round-trip trajectories.
  • A stochastic mobility concept which allows for non-deterministic mobility.

Parameters and demography
Parameters and demography are implemented by generic concepts such that they can be easily extended to more general lists of parameters or additional stratifications like age or income.

Ensemble run concepts
Via standardized implementations, parameter sampling and ensemble run simulations can be conducted to assess uncertainty of the particular model outcomes.

Optimizations

  • MPI-parallel implementation of ensemble runs for parameter sampling for ODE-based models
  • OpenMP-parallel implementation of agent-based models
  • Optimizations towards compile-time evaluation of software parts.

Helpers, utilities, math, ...
MEmilio also provides a lot of mathematical algorithms, helper tools, and utilities and to simulate or analyze results.

Tests and benchmarks
The MEmilio C++ backend is largely covered by software and unit tests (>95%) and benchmarks for some models are already available. A continuous integration pipeline ensures functionality of the software.

Python frontend to efficient C++ backend
To open MEmilio to python developers, a variety of implemented C++ models can already be called from python via the memilio-simulation package.

Python scripts for Sars-CoV-2 and demographic data
In order to run simulations for Sars-CoV-2 in Germany, several official data sources can be downloaded and postprocessed uniformly by the memilio-epidata package.

Model code generation
Due to the standardized structure of compartmental models, a part of new model code can be automatically created via the memilio-generation package.

Surrogate modeling
With the memilio-surrogatemodel package, expert models will be considered to be replaced by artificial intelligence and neural networks.

Visualization
MEmilio also already provides certain tools for visualization of simulation results.

In order to understand MEmilio, a lot of examples have already been implemented.

MEmilio quality control via detailed review processes ensures validation of implemented code concepts by independent developers.

For more details, see the readmes on https://github.com/SciCompMod/memilio in the particular (sub)directories.