Affiliations
AffiliationsItem in Clipboard
Implementation and applications of EMOD, an individual-based multi-disease modeling platformAnna Bershteyn et al. Pathog Dis. 2018.
. 2018 Jul 1;76(5):fty059. doi: 10.1093/femspd/fty059. Authors Anna Bershteyn 1 , Jaline Gerardin 1 , Daniel Bridenbecker 1 , Christopher W Lorton 1 , Jonathan Bloedow 1 , Robert S Baker 1 , Guillaume Chabot-Couture 1 , Ye Chen 1 , Thomas Fischle 1 , Kurt Frey 1 , Jillian S Gauld 1 , Hao Hu 1 , Amanda S Izzo 1 , Daniel J Klein 1 , Dejan Lukacevic 1 , Kevin A McCarthy 1 , Joel C Miller 1 , Andre Lin Ouedraogo 1 , T Alex Perkins 2 , Jeffrey Steinkraus 1 , Quirine A Ten Bosch 2 3 , Hung-Fu Ting 1 , Svetlana Titova 1 , Bradley G Wagner 1 , Philip A Welkhoff 1 , Edward A Wenger 1 , Christian N Wiswell 1 ; Institute for Disease Modeling AffiliationsItem in Clipboard
AbstractIndividual-based models provide modularity and structural flexibility necessary for modeling of infectious diseases at the within-host and population levels, but are challenging to implement. Levels of complexity can exceed the capacity and timescales for students and trainees in most academic institutions. Here we describe the process and advantages of a multi-disease framework approach developed with formal software support. The epidemiological modeling software, EMOD, has undergone a decade of software development. It is structured so that a majority of code is shared across disease modeling including malaria, HIV, tuberculosis, dengue, polio and typhoid. In additional to implementation efficiency, the sharing increases code usage and testing. The freely available codebase also includes hundreds of regression tests, scientific feature tests and component tests to help verify functionality and avoid inadvertent changes to functionality during future development. Here we describe the levels of detail, flexible configurability and modularity enabled by EMOD and the role of software development principles and processes in its development.
Keywords: epidemiological modeling; mathematical modeling; software.
© FEMS 2018.
FiguresFigure 1.
Diagram of the Generic transmission…
Figure 1.
Diagram of the Generic transmission model in EMOD, in which the within-host disease…
Figure 1.Diagram of the Generic transmission model in EMOD, in which the within-host disease process is represented as progression through the states of susceptible (S), Exposed (E), Infected (I) and Recovered (R). The dynamics of a compartmental SEIRS model can be produced when infected individuals shed infectiousness into a shared contagion pool (red circle) and susceptible individuals acquire from this pool. The Generic model allows for multiple contagion pools to be created based on geographic location (node) and modified based on the properties of the node. EMOD allows for individuals to have differential shedding and exposure according to demographic strata, including user-defined strata called individual properties. By representing SEIRS as internal states of the individual rather than compartments of the population, EMOD allows the transmission mode to be modified—for example, to a relationship network for sexual transmission—while the individual disease progression continues to follow the same SEIRS states.
Figure 2.
To illustrate how systems can…
Figure 2.
To illustrate how systems can have multiple points of interaction with interventions, this…
Figure 2.To illustrate how systems can have multiple points of interaction with interventions, this diagram shows a decision tree representing possible outcomes for an insect vector such as a mosquito in the EMOD vector model. This branching tree of conditional probabilities is used to determine the proportion of vectors that die, survive, feed and reproduce each day. Multiple simultaneous interventions can target various branches in the vector feeding tree, and the deterrent and toxic effects of multiple interventions can be represented simultaneously. For example, both indoor residual spraying (IRS) and insecticide-treated nets (ITN) can be applied against indoor host-seeking mosquitoes. IRS can discourage mosquitoes from entering the house and also kill mosquitoes before feeding. The fraction of mosquitoes that survive can be blocked by the ITN, which may also kill a subset of the blocked fraction. Those mosquitoes who survive the feeding attempt may be killed by IRS post-feed. Vector behavior parameters (blue) can be configured independently for each vector species being modeled, and the interventions (green) can be configured with multiple parameters such as the distributions of their blocking and killing abilities, duration of effect, duration of use and cost.
Figure 3.
Network diagram describing how the…
Figure 3.
Network diagram describing how the components of the malaria model are organized into…
Figure 3.Network diagram describing how the components of the malaria model are organized into modules. Modularity ensures that specialists in a particular field, such as antimalarial drug pharmacokinetics or malaria infection and immunity, can add detail or develop new modules in their area of specialty while reducing the risk of inadvertently changing other components of the model. Even with modularity, software testing is required to formally show that a change was isolated to one feature of the model and did not inadvertently change other features. Similarly, it is necessary to check that a change to the common framework made by one disease specialist did not cause undesirable changes for other diseases supported by the common framework. For this reason, EMOD comes with (as of March 2018) over 600 regression tests and over 140 SFTs. The tests are run daily with the latest build of the EMOD codebase to automatically flag which model components have been modified.
Figure 4.
Inheritance structure of EMOD, illustrated…
Figure 4.
Inheritance structure of EMOD, illustrated for four disease types. Simulations can be run…
Figure 4.Inheritance structure of EMOD, illustrated for four disease types. Simulations can be run at each layer of specificity. In Generic SEIRS, individuals have generic disease states of susceptible, exposed, infected and recovered (SEIRS) and have properties such as date of birth, current age, sex, location, rates of fertility and mortality and socio-demographic strata, which are inherited by more specific disease models. Transmission mode models, such as airborne, vector or sexual transmission, retain the generic SEIRS disease states, but modify how individuals interact to give rise to transmission events. For example, sexual transmission adds types of sexual relationships and demographically-specific propensities to enter and break them. The HIV model inherits the sexual behavior logic, but over-writes the generic SEIRS disease and interventions with HIV-specific states and interventions.
Figure 5.
Number of lines of code…
Figure 5.
Number of lines of code available to different disease models, stratified by level…
Figure 5.Number of lines of code available to different disease models, stratified by level of the inheritance hierarchy. Code was analyzed in February 2018 using Code surveyor by Construx Software, omitting lines that were blank or contained only comments. The common framework, sufficient to implement Generic SEIRS transmission and inherited by all other disease types, occupies 34 512 lines of code (dark blue bars). Cross-hatched areas indicate code that specifies transmission modality. Colored regions show disease specific code, which over-writes SEIRS with disease-specific states and interventions. As of this writing, no disease exceeds 50 000 lines of code. The vast majority of model code is devoted to the common framework, allowing for sharing of features and test cases across disease research.
Figure 6.
Conceptual illustration of how the…
Figure 6.
Conceptual illustration of how the EMOD campaign framework links together building blocks to…
Figure 6.Conceptual illustration of how the EMOD campaign framework links together building blocks to enable a user-defined health care system and health-seeking behaviors. Individual building blocks specify the time that the intervention becomes available; the target population based on socio-demographic strata such as age, sex, location and user-defined characteristics such as risk group or accessibility; and the triggering condition for the intervention to be applied, if any. The building blocks are specified in JSON format read in by EMOD. The blocks are connected through broadcasts and triggers to build up series of events such as decisions, delays, diagnostics and interventions. The campaign framework can also be used to initialize new infections and to define the dynamics of co-factors for transmission, such as acquisition and treatment of STI co-infections that influence HIV transmissibility and susceptibility. Image credit for photograph in (a): ‘ Brand new bricks ’ by fdecomite, CC BY 2.0.
Figure 7.
Example of a typical user-defined…
Figure 7.
Example of a typical user-defined set of health-seeking and health care patterns. These…
Figure 7.Example of a typical user-defined set of health-seeking and health care patterns. These components, sequences of flow between them, and parameters governing their effects are provided by the user and fully configurable. Panel (a) shows a schematic of the HIV interventions related to HIV testing and treatment, which are provided as input into the EMOD model for HIV in South Africa. It is composed of many individual building blocks, diagramed here as purple boxes in (b) and encoded as JSON objects as in (c). The sub-section of (a) that is expanded in (b) and (c) is HIV testing of children. The building blocks specify the time that the intervention becomes available (Start_Year); the target population based on socio-demographic strata such as age, sex, location and user-defined characteristics such as risk group or accessibility (‘Accessibility’: ‘Yes’); and the triggering condition for the intervention to be applied, if any. The triggering condition can be one arising from the internal dynamics of the model (such as becoming six weeks of age, as in the example above, ‘SixWeeksOld’) or can be a user-defined event arising from another building block (such as the output of the example above, ‘ARTStagingDiagnostic Test,’ which will trigger the next event to happen as shown by the red arrow in (b)). Building blocks may act as probabilistic decisions, delays, diagnostics and interventions. Some building blocks allow for additional user input, for example, the probabilistic decision of whether to be tested for HIV in (b) and (c) allows user to input a time-series for the probability of HIV testing. EMOD will linearly interpolate the time-series to assign a probability at each simulation time step, as shown in the orange graph in (b).
Similar articlesBowness R. Bowness R. Methods Mol Biol. 2016;1386:107-18. doi: 10.1007/978-1-4939-3283-2_7. Methods Mol Biol. 2016. PMID: 26677182 Review.
Kaftan D, Sharma M, Resar D, Milali M, Mudimu E, Wu L, Arrouzet C, Platais I, Kim HY, Jenkins S, Bershteyn A. Kaftan D, et al. J Int AIDS Soc. 2025 Feb;28(2):e26427. doi: 10.1002/jia2.26427. J Int AIDS Soc. 2025. PMID: 39995017 Free PMC article.
Wu L, Kaftan D, Wittenauer R, Arrouzet C, Patel N, Saravis AL, Pfau B, Mudimu E, Bershteyn A, Sharma M. Wu L, et al. Lancet HIV. 2024 Nov;11(11):e765-e773. doi: 10.1016/S2352-3018(24)00239-X. Epub 2024 Sep 20. Lancet HIV. 2024. PMID: 39312933 Free PMC article.
Mwalili SM, Gathungu DK, Chemutai J, Musyoka E, Bridenbecker D, Kirkman C 4th, Kaftan D, Kim HY, Platais I, Bershteyn A. Mwalili SM, et al. BMC Med. 2025 Feb 12;23(1):85. doi: 10.1186/s12916-025-03907-4. BMC Med. 2025. PMID: 39939974 Free PMC article.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3