Approaches
This section reviews 24 existing disease modeling frameworks, plus brief notes on several more: how each one represents states, transitions, populations, networks, interventions, and time, and what we learned from it. Everything else here builds on this work by others. For help choosing a tool, see What is Starsim? in the Starsim docs, and the comparison with other frameworks.
Key takeaways
- Few frameworks do both model structure and interventions well. Those with the clearest model definitions (camdl, odin, summer2) have few ready-made interventions, and those with the richest interventions (EMOD, EpiHiper, Starsim, Atomica) have looser model definitions.
- Transitions work best as named, declared objects. A transition buried in code cannot easily be diagrammed, checked, or converted. Several frameworks separately arrived at splitting spontaneous transitions from those driven by contact.
- Running one model in several paradigms has been done, but only in part. camdl, epipack, and EMULSION each run one model more than one way. The hard part is writing transmission once so that it works for mass action, contact matrices, and networks.
- Many frameworks have found they need to tell rates, probabilities, and durations apart, since mixing them up is an easy mistake to make.
- Configuration files have a real tradeoff. Models in YAML or JSON are clear about what they contain, but can be hard to write and read at length.
The full comparison has a table of all the frameworks and how they were chosen. Each framework has its own review, and other frameworks has brief entries for the rest. The models page says which frameworks have models translated into Starsim, and why the others don’t.