DE-Sim documentation

DE-Sim is an open-source, Python-based, object-oriented discrete-event simulation tool that helps modelers model complex systems. First, DE-Sim enables them to use Python’s powerful object-oriented features to manage multiple types of components in a complex system and multiple types of interactions between these components. Second, by building upon Python, DE-Sim makes it easy for modelers to use Python’s powerful data science tools, such as NumPy, Scipy, pandas, and SQLAlchemy, to incorporate large, heterogeneous datasets into comprehensive and detailed models. We anticipate that DE-Sim will enable a new generation of models that capture systems with unprecedented breadth and depth.

DE-Sim provides the following features to help users build and simulate complex, data-intensive models:

  • High-level, object-oriented modeling: DE-Sim facilitates model designs that use classes of simulation objects to encapsulate the complex logic required to represent each model component, and use classes of event messages to encapsulate the logic required to describe the interactions between components.
  • Powerful stop conditions: DE-Sim makes it easy to terminate simulations when specific criteria are reached. Modelers can specify stop conditions as functions that return true when the simulation should conclude.
  • Results checkpointing: Models that use DE-Sim can record the results of simulations, and metadata such as the start and run time of each simulation, by simply configuring a checkpointing module.
  • Space-time visualizations: DE-Sim can generate space-time visualizations of simulation objects and the event messages that they exchange. These diagrams can help modelers understand and debug simulations.
  • Reproducible simulations: To help modelers debug simulations and analyze their results, repeated executions of a simulation with the same configuration and random number generator seed produce the same results.

We have used DE-Sim to develop WC-Sim, a multi-algorithmic simulator for whole-cell models.

For more information, see the interactive DE-Sim Jupyter notebooks that contain a DE-Sim tutorial and several example DE-Sim models.