The Spatiotemporal Epidemiological Modeler (STEM)
An open source tool, the Spatiotemporal Epidemiological Modeler (STEM) allows users to create spatial and temporal models of emerging infectious diseases. Designed to be extensible, flexible and re-usable, STEM provides a set of validation tools researchers and public health officials can use to understand the spread of disease in space and time and to assess the impact of preventive actions in an increasingly global world.
Platform independent, STEM is available in versions for Microsoft, Apple, and Linux operating systems. Users can access all its main components as separate plug-ins to build on existing models and create new ones.
Users can independently deploy the plug-ins - the core representational framework, graphical user interface, simulation engine, disease model computations, and various data sets - and use them with declarative software extension points to develop, run, and analyze sophisticated simulations.
STEM's data sets describe the geography, transportation systems (including airports and roads), and population for the world's 244 countries and dependent areas down to administrative level 2 for most countries (the county level in the United States).
Its disease model computations are based on compartment models Parameters within the models can be modified by the researcher who, for example, may wish to adjust the infectious period or the initial number of infectious individuals. STEM is designed to make it easy for developers and researchers to plug in their choice of models. It comes with a large number of existing compartment models and a new model building framework that allows users to rapidly extend existing models or to create entirely new models. The model building framework provides a simple graphical users interface and automatically generates all of the model code and hot injects the code into STEM at runtime. In many cases, no knowledge of Eclipse or Java is required. The STEM code generator even allows users to build models affected by changes in climate data.
Any STEM model can be run either stochastically or deterministically - simply by switching between solver plugins. Users can choose between many different numerical solvers of ordinary differential equations (including finite difference, Runge-Kutta, 4 solvers from The Apache Commons Mathematics Library, and Stochastic). The stochastic solver computes integer (individual) based transitions picking randomly from a binomial distribution (also from Apach Math). Simulation results can be output with a choice of pluggable loggers, including delimiting files, video loggers, and map loggers. STEM can be used to study quite complex models (for example a model of Dengue Fever with 51 differential equations) and can run global scale simulations. Click here for the complete STEM documentation.
Tools provided by STEM support researchers in a range of functions, as they perform analysis, fitting, and model comparisons across multiple simulations and data sets.
Using the Analysis Perspective, researchers can visualize the results of STEM scenarios from log files and compare two scenarios side-by-side across different dimensions. Utilities in this perspective can estimate disease parameters from imported time series data and integrate historic incidence data to arrive at counts for disease models over time.
Using the Designer Perspective, users can create custom experiments, which express public health policies as a collection of predicates, modifiers, and triggers. Researchers can run a collection of simulations, based on a single scenario, modifying each simulation slightly by varying one or more parameters, and examine how the model is affected.
With the components STEM provides, users can create their own model for a country, a region, or even the entire world. If there is a sub-model for the area under study, it can simply be plugged into simulations by referencing it. For example, a country model can contain a sub-model for its transportation infrastructure and that sub-model itself can contain sub-models for air, rail, and/or roads.
The ability of one STEM model to contain another allows researchers to plug detailed and highly complex subcomponents into a single encompassing model. Because the underlying components are the same, models can be easily shared and their components validated. One researcher can import another researcher's specialized disease model, combine it with an existing country model that includes population demographics, and re-export the new combination for others to use.
By making data (with descriptive metadata) available as plug-ins, STEM makes new avenues of collaboration possible. For example, biologists studying bird migrations can contribute data of use to epidemiologists studying avian influenza. Economists studying workforce productivity contribute data of use to public health officials studying the economic impact of pandemic influenza.
By providing a common collaborative platform and components that are
extensible, flexible and re-usable, STEM makes possible greater
understanding of the phenomena that affect public health and
potentially have social, economic, and environmental impacts as
Videos and presentationsSTEM V2.0 Model Generator (new!!)
STEM Tutorial (English)
5 min. STEM Video (English)
Downloadable ScenariosPlease Read-me first Installation Instructions
Documentation To Learn more about the downloadable scenarios please see the tutorials on the STEM wiki
(new) Advanced SarsCoV2 model with asymptomatic transmission This archive shows how to fit a SarsCoV2 model to case report data (by region).
(new) Another Adv SarsCoV2 model with asymptomatic transmission This archive shows how to fit a second SarsCoV2 model to case report data (by region).
Simple Sars-CoV-2 model This archive contains all components for a global SarsCoV2 global scenario with air travel.
African Swine Fever This single archive contains several models and scenarios for African Swine Fever (ASF).
Importing Shape Files This single archive contains an example of how to import and create a STEM graph from a shape file (.shp) in your workspace. If uses STEM's pajek graph generator.
Ebola Models This single archive contains three different projects with several Ebola scenarios. Requires the latest STEM Integration build on or after Sept 26, 2014.
Ebola Zoonotic (Re)Introduction This archive contains a new model generator example extending the Ebola Model to support re-introduction from Zoonotic Reservoir, and a simple project demonstrating that model. See the readme.txt within the Archive !
Dengue Examples This archive contains three different projects with several dengue fever models and scenarios. Requires any STEM build on or after April 2, 2014.
Upcoming talksJ. H.Kaufman et al.CDC Division of Healthcare Quality Promotion (DHQP) WIP seminar on STEM
Recent PublicationsJudith V Douglas et al.STEM: An Open Source Tool for Disease Modeling
Kezban Yagci Sokat et al.Comparing Direct and Indirect Transmission in a Simple Model of Veterinary Disease
Saskia v. Popescu, PhD, MPH, MA, CICWhy We Need More Open-Source Epidemiological Tools