object-oriented, discrete-event simulation tool for data-intensive modeling of complex systems
DE-Sim: a Python-based object-oriented discrete-event simulator for modeling complex systems
DE-Sim is an open-source, Python-based object-oriented discrete-event simulation (DES) tool that makes it easy to use large, heterogeneous datasets and high-level data science tools such as NumPy, Scipy, pandas, and SQLAlchemy to build and simulate complex computational models. Similar to Simula, DE-Sim models are implemented by defining logical process objects which read the values of a set of variables and schedule events to modify their values at discrete instants in time.
To help users build and simulate complex, data-driven models, DE-Sim provides the following features:
- High-level, object-oriented modeling: DE-Sim makes it easy for users to use object-oriented Python programming to build models. This makes it easy to use large, heterogeneous datasets and high-level data science packages such as NumPy, pandas, SciPy, and SQLAlchemy to build complex models.
- Stop conditions: DE-Sim makes it easy to terminate simulations when specific criteria are reached. Researchers can specify stop conditions as functions that return true when a simulation should conclude.
- Results checkpointing: DE-Sim makes it easy to record the results of simulations by using a configurable checkpointing module.
- Reproducible simulations: To help researchers debug simulations, repeated executions of the same simulation with the same configuration and same random number generator seed produce the same results.
- Space-time visualizations: DE-Sim generates space-time visualizations of simulation trajectories. These diagrams can help researchers understand and debug simulations.
Projects that use DE-Sim
- Minimal simulation: a minimal example of a simulation
- Random walk: a random one-dimensional walk which increments or decrements a variable with equal probability at each event
- Parallel hold (PHOLD): model developed by Richard Fujimoto for benchmarking parallel DES simulators
- Epidemic: an SIR model of an epidemic of an infectious disease
Please see sandbox.karrlab.org for interactive tutorials on creating and executing models with DE-Sim.
Template for models and simulations
`de_sim/examples/minimal_simulation.py <de_sim/examples/minimal_simulation.py>`__ contains a template for implementing and simulating a model with DE-Sim.
- Install dependencies
- Python >= 3.7
- pip >= 19
- Install this package using one of these methods
- Install the latest release from PyPI pip install de_sim
- Install a Docker image with the latest release from DockerHub docker pull karrlab/de_sim
- Install the latest version from GitHub pip install git+https://github.com/KarrLab/de_sim.git#egg=de_sim
Please see the API documentation.
Please see the *DE-Sim* article for information about the performance of DE-Sim.
Strengths and weaknesses compared to other DES tools
Please see the *DE-Sim* article for a comparison of DE-Sim with other DES tools.
The package is released under the MIT license.
Please use the following reference to cite DE-Sim:
Arthur P. Goldberg & Jonathan Karr. (2020). DE-Sim: an object-oriented, discrete-event simulation tool for data-intensive modeling of complex systems in Python. Journal of Open Source Software, 5(55), 2685.
Contributing to DE-Sim
This package was developed by the Karr Lab at the Icahn School of Medicine at Mount Sinai in New York, USA by the following individuals:
This work was supported by National Science Foundation award 1649014, National Institutes of Health award R35GM119771, and the Icahn Institute for Data Science and Genomic Technology.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size de_sim-1.0.5-py2.py3-none-any.whl (53.7 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size de_sim-1.0.5.tar.gz (197.8 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for de_sim-1.0.5-py2.py3-none-any.whl