# summer2: compartmental disease modelling in Python
[![Automated Tests](https://github.com/monash-emu/summer2/actions/workflows/tests.yml/badge.svg)](https://github.com/monash-emu/summer2/actions/workflows/tests.yml)
summer2 is a Python-based framework for the creation and execution of [compartmental](https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology) (or "state-based") epidemiological models of infectious disease transmission.
It provides a range of structures for easily implementing compartmental models, including structure for some of the most common features added to basic compartmental frameworks, including:
- A variety of inter-compartmental flows (infections, transitions, births, deaths, imports)
- Force of infection multipliers (frequency, density)
- Post-processing of compartment sizes into derived outputs
- Stratification of compartments, including:
- Adjustments to flow rates based on strata
- Adjustments to infectiousness based on strata
- Heterogeneous mixing between strata
- Multiple disease strains
Some helpful links to learn more:
- **[Documentation](https://summer2.readthedocs.io/)** with [code examples](https://summer2.readthedocs.io/en/latest/examples/index.html)
- [Available on PyPi](https://pypi.org/project/summerepi2/) as `summerepi2`.
## Installation and Quickstart
This project requires at least Python 3.10
Set up and activate an appropriate virtual environment, then install the `summerepi2` package from PyPI
```bash
pip install summerepi2
```
You can now use the library to build and run models. See [here](https://summer2.readthedocs.io/en/latest/examples/index.html) for some code examples.
## Optional (recommended) extras
Summer has advanced interactive plotting tools built in - but they are greatly improved with the
addition of the pygraphviz library.
If you are using conda, the simplest method of installation is as follows:
```bash
conda install --channel conda-forge pygraphviz
```
For other install methods, see
https://pygraphviz.github.io/documentation/stable/install.html
## Development
[Poetry](https://python-poetry.org/) is used for packaging and dependency management.
## Releases
Releases are numbered using [Semantic Versioning](https://semver.org/)
- 1.0.0/1:
- Initial release
- 1.2.1
- Dropped support for Python 3.7. Variety of bugfixes and expanded features, see documentation
- 1.2.2
- Added capture utils
- Removed inner jit in model building to improve debugging
- 1.2.4
- CompartmentValues not functioning previously; include more comprehensive check in graph split
- 1.2.5
- Previous issue was not resolved correctly; bugfix-bugfix release
- 1.2.6
- Make full (comparment) outputs optional for jax runners
- 1.2.8
- Improve time varying functions (allow GraphObjects in x values)
- 1.2.9
- Derived output functions matching pandas.Series functionality (rolling, diff)
- 1.3.0
- Support initializing whole population via GraphObject
- 1.3.1
- Enforce jax minimum version in requirements
- 1.3.2
- Fix parameter bug in test models
- 1.3.3
- Fix issue with binary search for piecewise functions
- 1.3.4
- Update import in ode.py for changed jax API
- 1.3.5
- Force specific jax (0.4.24) to stop breaking changes
Raw data
{
"_id": null,
"home_page": "https://github.com/monash-emu/summer2",
"name": "summerepi2",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10.0",
"maintainer_email": null,
"keywords": "epidemiology, disease, compartmental, infectious",
"author": "David Shipman",
"author_email": "dshipman@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/37/1b/385e2504c69d0001a9561d0625e2eecf2fdfe3e313a573bcdbcc4ccca983/summerepi2-1.3.6.tar.gz",
"platform": null,
"description": "# summer2: compartmental disease modelling in Python\n\n[![Automated Tests](https://github.com/monash-emu/summer2/actions/workflows/tests.yml/badge.svg)](https://github.com/monash-emu/summer2/actions/workflows/tests.yml)\n\nsummer2 is a Python-based framework for the creation and execution of [compartmental](https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology) (or \"state-based\") epidemiological models of infectious disease transmission.\n\nIt provides a range of structures for easily implementing compartmental models, including structure for some of the most common features added to basic compartmental frameworks, including:\n\n- A variety of inter-compartmental flows (infections, transitions, births, deaths, imports)\n- Force of infection multipliers (frequency, density)\n- Post-processing of compartment sizes into derived outputs\n- Stratification of compartments, including:\n - Adjustments to flow rates based on strata\n - Adjustments to infectiousness based on strata\n - Heterogeneous mixing between strata\n - Multiple disease strains\n\nSome helpful links to learn more:\n\n- **[Documentation](https://summer2.readthedocs.io/)** with [code examples](https://summer2.readthedocs.io/en/latest/examples/index.html)\n- [Available on PyPi](https://pypi.org/project/summerepi2/) as `summerepi2`.\n\n## Installation and Quickstart\n\nThis project requires at least Python 3.10\n\nSet up and activate an appropriate virtual environment, then install the `summerepi2` package from PyPI\n\n```bash\npip install summerepi2\n```\n\nYou can now use the library to build and run models. See [here](https://summer2.readthedocs.io/en/latest/examples/index.html) for some code examples.\n\n## Optional (recommended) extras\n\nSummer has advanced interactive plotting tools built in - but they are greatly improved with the\naddition of the pygraphviz library.\n\nIf you are using conda, the simplest method of installation is as follows:\n\n```bash\nconda install --channel conda-forge pygraphviz\n```\n\nFor other install methods, see\nhttps://pygraphviz.github.io/documentation/stable/install.html\n\n## Development\n\n[Poetry](https://python-poetry.org/) is used for packaging and dependency management.\n\n## Releases\n\nReleases are numbered using [Semantic Versioning](https://semver.org/)\n\n- 1.0.0/1:\n - Initial release\n- 1.2.1\n - Dropped support for Python 3.7. Variety of bugfixes and expanded features, see documentation\n- 1.2.2\n - Added capture utils\n - Removed inner jit in model building to improve debugging\n- 1.2.4\n - CompartmentValues not functioning previously; include more comprehensive check in graph split\n- 1.2.5\n - Previous issue was not resolved correctly; bugfix-bugfix release\n- 1.2.6\n - Make full (comparment) outputs optional for jax runners\n- 1.2.8\n - Improve time varying functions (allow GraphObjects in x values)\n- 1.2.9\n - Derived output functions matching pandas.Series functionality (rolling, diff)\n- 1.3.0\n - Support initializing whole population via GraphObject\n- 1.3.1\n - Enforce jax minimum version in requirements\n- 1.3.2\n - Fix parameter bug in test models\n- 1.3.3\n - Fix issue with binary search for piecewise functions\n- 1.3.4\n - Update import in ode.py for changed jax API\n- 1.3.5\n - Force specific jax (0.4.24) to stop breaking changes\n",
"bugtrack_url": null,
"license": "BSD-2-Clause",
"summary": "Summer is a compartmental disease modelling framework, written in Python. It provides a high-level API to build and run models.",
"version": "1.3.6",
"project_urls": {
"Documentation": "https://summer2.readthedocs.io/en/latest/",
"Homepage": "https://github.com/monash-emu/summer2",
"Repository": "https://github.com/monash-emu/summer2"
},
"split_keywords": [
"epidemiology",
" disease",
" compartmental",
" infectious"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "25952301570ad169f173a42ba38729a7b83e20f68f935e1f8a1d658e1c1cd0ef",
"md5": "faa591f3fca183d00a1e1aa945530b2f",
"sha256": "2803e9d5c8478297c99bd9576cb45545e3f4ff15412034f4dfeabd724654e9ee"
},
"downloads": -1,
"filename": "summerepi2-1.3.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "faa591f3fca183d00a1e1aa945530b2f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10.0",
"size": 79732,
"upload_time": "2024-05-29T04:16:08",
"upload_time_iso_8601": "2024-05-29T04:16:08.087104Z",
"url": "https://files.pythonhosted.org/packages/25/95/2301570ad169f173a42ba38729a7b83e20f68f935e1f8a1d658e1c1cd0ef/summerepi2-1.3.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "371b385e2504c69d0001a9561d0625e2eecf2fdfe3e313a573bcdbcc4ccca983",
"md5": "07786ebf4473db9d892cc2f36f6d9e2f",
"sha256": "de1bbb68b63655477b3a6f9ad4458afe07ce4d89d6a12ca37d9c3e35ad20f9e3"
},
"downloads": -1,
"filename": "summerepi2-1.3.6.tar.gz",
"has_sig": false,
"md5_digest": "07786ebf4473db9d892cc2f36f6d9e2f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10.0",
"size": 66002,
"upload_time": "2024-05-29T04:16:10",
"upload_time_iso_8601": "2024-05-29T04:16:10.972088Z",
"url": "https://files.pythonhosted.org/packages/37/1b/385e2504c69d0001a9561d0625e2eecf2fdfe3e313a573bcdbcc4ccca983/summerepi2-1.3.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-29 04:16:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "monash-emu",
"github_project": "summer2",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "summerepi2"
}