{"id":19289897,"url":"https://github.com/KarrLab/de_sim","last_synced_at":"2025-04-22T05:32:02.942Z","repository":{"id":56573634,"uuid":"166682430","full_name":"KarrLab/de_sim","owner":"KarrLab","description":"Python-based object-oriented discrete-event simulation tool for complex, data-driven modeling","archived":false,"fork":false,"pushed_at":"2020-12-17T14:35:16.000Z","size":8193,"stargazers_count":32,"open_issues_count":16,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-14T16:26:12.737Z","etag":null,"topics":["computational-modelling","data-driven-model","discrete-event-simulation","object-oriented-programming","python","simulation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KarrLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2019-01-20T16:22:01.000Z","updated_at":"2024-09-13T14:23:28.000Z","dependencies_parsed_at":"2022-08-15T21:10:44.869Z","dependency_job_id":null,"html_url":"https://github.com/KarrLab/de_sim","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarrLab%2Fde_sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarrLab%2Fde_sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarrLab%2Fde_sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KarrLab%2Fde_sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KarrLab","download_url":"https://codeload.github.com/KarrLab/de_sim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250175076,"owners_count":21387133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computational-modelling","data-driven-model","discrete-event-simulation","object-oriented-programming","python","simulation"],"created_at":"2024-11-09T22:17:24.284Z","updated_at":"2025-04-22T05:32:02.390Z","avatar_url":"https://github.com/KarrLab.png","language":"Python","readme":"[![PyPI package](https://img.shields.io/pypi/v/de_sim.svg)](https://pypi.python.org/pypi/de_sim)\n[![Documentation](https://readthedocs.org/projects/de-sim/badge/?version=latest)](https://docs.karrlab.org/de_sim)\n[![Test results](https://circleci.com/gh/KarrLab/de_sim.svg?style=shield)](https://circleci.com/gh/KarrLab/de_sim)\n[![Test coverage](https://coveralls.io/repos/github/KarrLab/de_sim/badge.svg)](https://coveralls.io/github/KarrLab/de_sim)\n[![Code analysis](https://api.codeclimate.com/v1/badges/2fa3ece22f571fd36b12/maintainability)](https://codeclimate.com/github/KarrLab/de_sim)\n[![License](https://img.shields.io/github/license/KarrLab/de_sim.svg)](LICENSE)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.02685/status.svg)](https://doi.org/10.21105/joss.02685)\n![Analytics](https://ga-beacon.appspot.com/UA-86759801-1/de_sim/README.md?pixel)\n\n# *DE-Sim*: a Python-based object-oriented discrete-event simulator for modeling complex systems\n\n*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](https://numpy.org/), [Scipy](https://scipy.org/scipylib/index.html), [pandas](https://pandas.pydata.org/), and [SQLAlchemy](https://www.sqlalchemy.org/) to build and simulate complex computational models. Similar to [Simula](http://www.simula67.info/), *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.\n\nTo help users build and simulate complex, data-driven models, *DE-Sim* provides the following features:\n\n* **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.\n* **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.\n* **Results checkpointing:** DE-Sim makes it easy to record the results of simulations by using a configurable checkpointing module.\n* **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.\n* **Space-time visualizations:** DE-Sim generates space-time visualizations of simulation trajectories. These diagrams can help researchers understand and debug simulations.\n\n## Projects that use *DE-Sim*\n*DE-Sim* has been used to develop [WC-Sim](https://github.com/KarrLab/wc_sim), a multi-algorithmic simulator for [whole-cell models](https://www.wholecell.org).\n\n## Examples\n* [Minimal simulation](de_sim/examples/minimal_simulation.py): a minimal example of a simulation\n* [Random walk](de_sim/examples/random_walk.py): a random one-dimensional walk which increments or decrements a variable with equal probability at each event\n* [Parallel hold (PHOLD)](de_sim/examples/phold.py): model developed by Richard Fujimoto for benchmarking parallel DES simulators\n* [Epidemic](https://github.com/KarrLab/de_sim/blob/master/de_sim/examples/sirs.py): an SIR model of an epidemic of an infectious disease\n\n## Tutorial\nPlease see [sandbox.karrlab.org](https://sandbox.karrlab.org/tree/de_sim) for interactive tutorials on creating and executing models with *DE-Sim*.\n\n## Template for models and simulations\n[`de_sim/examples/minimal_simulation.py`](de_sim/examples/minimal_simulation.py) contains a template for implementing and simulating a model with *DE-Sim*.\n\n## Installation\n1. Install dependencies\n    \n    * Python \u003e= 3.7\n    * pip \u003e= 19\n\n2. Install this package using one of these methods\n\n    * Install the latest release from PyPI\n      ```\n      pip install de_sim\n      ```\n\n    * Install a Docker image with the latest release from DockerHub\n      ```\n      docker pull karrlab/de_sim\n      ```\n\n    * Install the latest version from GitHub\n      ```\n      pip install git+https://github.com/KarrLab/de_sim.git#egg=de_sim\n      ```\n\n## API documentation\nPlease see the [API documentation](https://docs.karrlab.org/de_sim/source/de_sim.html).\n\n## Performance\nPlease see the [*DE-Sim* article](joss_paper/paper.md) for information about the performance of *DE-Sim*.\n\n## Strengths and weaknesses compared to other DES tools\nPlease see the [*DE-Sim* article](joss_paper/paper.md) for a comparison of *DE-Sim* with other DES tools.\n\n## License\nThe package is released under the [MIT license](LICENSE).\n\n## Citing *DE-Sim*\nPlease use the following reference to cite *DE-Sim*:\n\nArthur P. Goldberg \u0026 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.](https://doi.org/10.21105/joss.02685)\n\n## Contributing to *DE-Sim*\nWe enthusiastically welcome contributions to *DE-Sim*! Please see the [guide to contributing](CONTRIBUTING.md) and the [developer's code of conduct](CODE_OF_CONDUCT.md).\n\n## Development team\nThis package was developed by the [Karr Lab](https://www.karrlab.org) at the Icahn School of Medicine at Mount Sinai in New York, USA by the following individuals:\n\n* [Arthur Goldberg](https://www.mountsinai.org/profiles/arthur-p-goldberg)\n* [Jonathan Karr](https://www.karrlab.org)\n\n## Acknowledgements\nThis 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.\n\n## Questions and comments\nPlease submit questions and issues to [GitHub](https://github.com/KarrLab/de_sim/issues) or contact the [Karr Lab](mailto:info@karrlab.org).\n","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKarrLab%2Fde_sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKarrLab%2Fde_sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKarrLab%2Fde_sim/lists"}