IDM documentation¶
All IDM documentation sets, including those for private code repositories, are listed below. The links below will take you to documentation for the latest version of the tools. You can select a different version using the drop-down menu in the lower left. The latest version may not be publicly available, so you may need to select the most recent tagged version of the documentation.
Models¶
IDM builds and uses many different software tools to simulate disease transmission. Selecting the right tool for a given use case will depend on the disease in question and the particular research questions being asked.
Starsim¶
The Starsim (or *sim) suite of agent-based models is built in Python and prioritizes usability. Starsim aims to make common tasks easy, while ensuring uncommon tasks are still doable. Starsim leverages the scientific Python ecosystem to keep the code as clear and concise as possible, while still being computationally efficient.
As the Unix wildcard character * implies, this framework can be applied to a variety of different diseases or epidemiological models. All models are open source and we encourage code contributions from those outside of IDM.
Disease/focus |
Code repository |
Model documentation |
Description |
---|---|---|---|
COVID-19 |
Covasim is a stochastic agent-based simulator for performing COVID-19 analyses. These include projections of indicators such as numbers of infections and peak hospital demand. Covasim can also be used to explore the potential impact of different interventions, including social distancing, school closures, testing, contact tracing, quarantine, and vaccination. |
||
Family planning |
FPsim is designed as an open-source tool for family planning research. Its strength stems from a life-course approach, which allows researchers to examine how compounding and temporal effects unfold over women’s lives, and how these individual-level changes lead to macro-level outcomes. |
||
Human papillomavirus (HPV) |
HPVsim is a flexible agent-based model that can be parameterized with country-specific vital dynamics, structured sexual networks, co-transmitting HPV genotypes, B- and T-cell mediated immunity, and high-resolution disease natural history. |
||
General disease framework |
Starsim is an agent-based disease modeling framework in which users can design and configure simulations of pathogens that progress over time within each agent and pass from one agent to the next along dynamic transmission networks. The framework explicitly supports co-transmission of multiple pathogens, allowing users to concurrently simulate several diseases while capturing behavioral and biological interactions. |
||
Demographics |
Creates synthetic populations for use with the Starsim models. SynthPops can create generic populations with different network characteristics, as well as synthetic populations that interact in different layers of a multilayer contact network. |
EMOD¶
EMOD, an agent-based stochastic model built in C++, is a feature-rich model that utilizes the power of C++ to track the movement, development, health, or other traits of interest of individuals over the course of lifetimes. EMOD uses a layered hierarchy of code features to support simulating different diseases with different modes of transmission.
For example, the generic model (or simulation type) contains base functionality that all other models inherit; the vector model layers on logic for modeling disease transmitted via mosquito; and the malaria model adds functionality specific to the malaria parasite.

One key strength of EMOD is the ability to incorporate interventions aimed at controlling or eradicating disease. You can layer multiple interventions, such as bednets, insecticides, and medications, to analyze which combination is most effective at reducing malaria burden.
The private code repository for all EMOD disease models is at https://github.com/InstituteforDiseaseModeling/DtkTrunk. The latest public release, 2.20, is available at https://github.com/InstituteforDiseaseModeling/EMOD.
Disease/transmission mode |
Model documentation |
Description |
---|---|---|
Contact transmission |
The generic model provides the base model functionality and transmission based on contact. |
|
HIV |
The HIV model adds human immunity, within-host viral dynamics, the effects of antiretroviral drugs, and other aspects of HIV virology to simulate HIV disease progression, testing, and treatment. |
|
Malaria |
The malaria model inherits the functionality of the vector model and introduces human immunity, within-host parasite dynamics, effects of antimalarial drugs, and other aspects of malaria biology to simulate malaria transmission. |
|
Tuberculosis (TBHIV) |
The TB model represents the progression of TB disease using a series of state changes as individuals progress from susceptible to latent, to active infection, and then to recovery or death. You can simulate TB transmission with or without including co-infection with HIV. |
|
Typhoid |
The typhoid model adds the progression of typhoid, starting from susceptible then moving through the disease stages of prepatent, subclinical, acute, and chronic, with pathways for recovery and death. The duration of each stage as well as the dosage of contagion exposure can be specified. |
Other models¶
Focus |
Code repository |
Model documentation |
Description |
---|---|---|---|
Stochastic compartmental model |
Compartmental Modeling Software (CMS) is a stochastic compartmental model that is simpler to configure and faster to run than an agent-based model like EMOD, while more suitable to modeling low probability events than a deterministic compartmental model. |
||
Human resources for health |
The PACE-HRH model simulates the healthcare needs of a given population so you can more effectively plan what healthcare worker resources will be necessary to provide a wide range of healthcare services. The model is configured via Excel sheets and run via an R script. |
||
Phylogenetic data |
phyloModels is a Python-based library with utilities for modeling and calibration, with emphasis on exploiting phylogenetic data. |
Workflow and calibration tools¶
IDM also makes several tools available to simplify user interactions with disease models. These tools help with configuration of the model, commissioning and running simulations, calibration, and analysis of modeling results. Several of these tools are specific to the EMOD model, which provides several different simtypes for simulating the transmission dynamics of different diseases.
Model |
Tool |
Code repository |
Tool documentation |
Description |
---|---|---|---|---|
Model agnostic |
idmtools |
idmtools is a collection of Python scripts and utilities created to streamline user interactions with disease models, from the creation of input files (if required), to commissioning and running simulations, through the analysis of results. It can be used to interact with a variety of models, such as custom models written in R or Python, Starsim, or EMOD. |
||
Model agnostic |
idmtools-local |
https://github.com/InstituteforDiseaseModeling/idmtools_local |
idmtools_local is a collection of Python scripts and utilities for running idmtools workflows locally. |
|
Model agnostic |
idmtools_calibra |
https://github.com/InstituteforDiseaseModeling/idmtools-calibra |
idmtools_calibra is a collection of Python scripts and utilities to aid in model calibration. |
|
EMOD (all simtypes) |
emod-api |
emod-api is a Python library for interacting with EMOD input and output files. |
||
EMOD (all simtypes) |
emodpy |
emodpy is a collection of Python scripts and utilities created to streamline user interactions with EMOD and idmtools, agnostic of the disease being simulated. |
||
EMOD (generic simtype) |
emodpy-generic |
https://github.com/InstituteforDiseaseModeling/emodpy-generic |
emodpy-generic is a Python library with scripts and tooling to use the EMOD generic model. |
|
EMOD (generic simtype configured for measles) |
emodpy-measles |
https://github.com/InstituteforDiseaseModeling/emodpy-measles |
emodpy-measles is a Python library with scripts and tooling to model measles with the EMOD generic model. |
|
EMOD (HIV simtype) |
emodpy-hiv |
emodpy-hiv is a Python library with scripts and tooling to use the EMOD HIV model. |
||
EMOD (HIV simtype) |
hiv_workflow |
hiv_workflow is a collection of Python scripts and libraries utilizing idmtools, idmtools-calibra, and emodpy-hiv for calibration and running of the EMOD HIV model. |
||
EMOD (malaria simtype) |
emodpy-malaria |
https://github.com/InstituteforDiseaseModeling/emodpy-malaria |
emodpy-malaria is a Python library with scripts and tooling to use the EMOD malaria model. |
|
EMOD (TBHIV simtype for tuberculosis) |
emodpy-tbhiv |
emodpy-tbhiv is a Python library with scripts and tooling to use the EMOD tuberculosis (TBHIV) model. |
Utilities and visualization tools¶
IDM makes utilities and visualization tools to facilitate the creation of maps, diagrams, and other visualizations of model output.
Model |
Code repository |
Tool documentation |
Description |
---|---|---|---|
EMOD |
Vis-Tools is a collection of software tools that aids in the visualization of geospatial simulation data from EMOD. |
||
EMOD |
pyCOMPS is an interoperability layer from Python to the COMPS REST API. The docs include information on how to run EMOD simulations and use visualization features on the COMPS platform. |
Documentation guidance¶
Guidance about how to add documentation to a new or existing project, IDM style guidelines, and the IDM documentation toolchain is available in Documentation guidance.