- 1 STEM Contents
- 2 Introduction
- 3 FAQ - Frequently Asked Questions
- 3.1 What is the STEM project release schedule?
- 3.2 What platforms are supported?
- 3.3 What are the features of release 0.2.0?
- 3.4 What features are planned for future releases?
- 3.5 Can STEM be used for more than just disease modeling?
- 3.6 What is the most novel extension to STEM?
- 3.7 Can STEM be used for "situational awareness"?
What is Spatiotemporal Epidemiological Modeler (STEM)?
The Spatiotemporal Epidemiological Modeler (STEM) tool is designed to help scientists and public health officials create and use spatial and temporal models of emerging infectious diseases. These models could aid in understanding, and potentially preventing, the spread of such diseases.
Policymakers responsible for creating strategies to contain diseases and prevent epidemics need an accurate understanding of disease dynamics and the likely outcomes of preventive actions. In an increasingly connected world with extremely efficient global transportation links, the vectors of infection can be quite complex. STEM facilitates the development of advanced mathematical models, the creation of flexible models involving multiple populations (species) and interactions between diseases, and a better understanding of epidemiology.
How does it work? The STEM application has built in Geographical Information System (GIS) data for almost every country in the world. It comes with data about country borders, populations, shared borders (neighbors), interstate highways, state highways, and airports. This data comes from various public sources.
STEM is designed to make it easy for developers and researchers to plug in their own models. It comes with spatiotemporal Susceptible/Infectious/Recovered (SIR) and Susceptible/Exposed/Infectious/Recovered (SEIR) models pre-coded with both deterministic and stochastic engines.
The parameters in any model are specified in XML configuration files. Users can easily change the weight or significance of various disease vectors (such as the weights of highways, shared borders, airports, etc). Users can also create their own unique vectors for disease. Further details are available in the user manual and design documentation.
The original version of STEM was available for downloading on IBM's Alphaworks. It contained easy to follow instructions and many examples (various diseases and maps of the world).
New developers who want to work on STEM II can find useful tools, conventions, and design information in the Welcome STEM Developers article.
The STEM code repository will be hosted on the Eclipse OHF code repository.
A recent publication on STEM: Ford, D.A., Kaufman, J.H., Eiron, I., "An extensible spatial and temporal epidemiological modeling system", International Journal of Health Geographics 2006, 5:4 http://www.ij-healthgeographics.com/content/5/1/4 (17Jan2006)
- Daniel Ford, Ph.D., is a Research Staff Member in the Healtcare Informatics Department at IBM Almaden and is currently on assignment at the IBM Watson Research Center in New York.
- James H. Kaufman, Ph.D., is manager of the Healthcare Informatics project in the Department of Computer Science at the IBM Almaden Research Center. He is also a fellow of the American Physical Society. During his career at IBM Research, Dr. Kaufman has made contributions to several fields, including simulation science and magnetic device technology. His scientific contributions include work on pattern formation, conducting polymers, superconductivity, experimental studies of the Moon Illusion, as well as contributions to distributed computing and grid middleware.
- John Thomas is a Java developer for IBM. He was previously one of the lead programmers for the IBM Almaden TSpaces project and also a member of the OptimalGrid Project at the Almaden Research Center. Mr. Thomas can be reached by e-mail (jthomas119 @ gmail.com)
- Iris Eiron is a former researcher of the IBM Almaden Research Lab. Iris has recently relocated to the IBM Research Lab in Haifa, Israel where she continues to contribute to the development and implementation of a national health care information infrastructure.
- Ohad Greenshpan is part of the Healthcare and Life Sciences group in IBM Haifa Research Labs. Mr. Greenshpan is an MSc student for Bioinformatics in Ben-Gurion university, concentrating on Protein Folding algorithms and Structural Bioinformatics. Prior to IBM, Mr. Greenshpan was a member of the Genecards team in Weizmann Institute of Science.
- Nelson A. Perez is a software engineer for the Healthcare Informatics Research Group at IBM Almaden. Nowadays, Nelson is mostly interested in software engineering, distributed computing, social computing, and web technologies. He holds an MS degree in computer science from the University of California at Riverside (UCR).
FAQ - Frequently Asked Questions
What is the STEM project release schedule?
Release 0.2.0M1 was being released on June 8th, 2007.
This includes the current STEM source code and down loadable executables for Windows and Linux.
What platforms are supported?
In theory, STEM will run on any platform supported by Eclipse. The current downloads are for RCP versions of Windows and Linux. It has been run on a Mac as well, and a downloadable version for the Mac should be available soon. Note that Java 1.6 is required for MacOS.
If a downloadable RCP version is not available, you must download the STEM source from CVS and run from the source.
What are the features of release 0.2.0?
The first milestone release includes:
- a full implementation of the STEM graph based simulation engine for spatiotemporal modeling.
- Geographic Visualization of the spread of disease using internally implemented graphics.
- Geographic Visualization of the spread of disease using Google Earth
- "Wizards" to create Projects, Graphs, Models, Scenarios, Sequencers, and Diseases
- Visual Editors to edit Graphs, Models, Scenarios, Sequencers, and Diseases
- a complete data set that defines all of the countries specified by the ISO-3166 standard, this includes area land mass and recent human population data.
- a complete Lat/Long data set in Geography Markup Language (GML) format for all countries defined by the ISO-3166 standard
- an extensive set of predefined "Graph" fragments that can be reused in user Models.
- an extensive set of predefined "Models", one for each country, that can be reused in user Models and Scenarios
- a set of predefined "Scenarios" that illustrate disease spread models around the Earth.
- a predefined SEIR disease model for the Spanish Flu
- deterministic implementations of SI, SIR and SEIR disease models.
What features are planned for future releases?
- Business Intelligence and Reporting Tools (BIRT) integration
- History recording and playback
- Stochastic SI, SIR and SEIR disease models
- New experimental disease models
- Enhanced Editor Functionality (better Drag'n Drop)
- Enhanced Visualizations including multiple views, hover and many bug fixes
- Improvements in the interface (menu layout wizards, etc.)
- Improved documentation
- Improved build environment
- Lot's of bug fixes.
Can STEM be used for more than just disease modeling?
Yes. The core components of STEM implement a graph based spatiotemporal simulation engine. The components that extend it to disease modeling are in separate plug-ins and integrate themselves using Eclipse extension points.
What is the most novel extension to STEM?
The idea of creating a "pandemic game" out of STEM has been discussed by its developers for some time. The basic idea would be to have "players" use their copies of STEM to connect to a central server with a single shared model. The players would make (or not make) decisions based upon their geographic assignment and these would be communicated to the server which would then update and propagate the changes to the model to the distributed player machines.
Can STEM be used for "situational awareness"?
Yes. Basically, one can run a simulation in "real-time" with a Decorator that interfaces to the outside world. That Decorator can access data from outside of the simulation (e.g., from a database or a web service) and then "inject" it into the canonical graph that holds the state of the simulation.
It should be possible to extend STEM to use an existing simulation to initialize other simulations so that one could monitor the world and then spawn off different identically initialized Scenarios that simulate different options given the current world state.