Skip to main content

Pure Python implementation of the Gillespie algorithm for stochastic simulations.

Project description

gillespie

Gilles... what?

The Gillespie algorithm is commonly used to simulate stochastic processes. Even though it was developed in the context of chemical reactions, this algorithm can be applied to many fields of research, e.g. chemistry, biology, epidemiology, ...

Installation

Available on pypi.org, install via pip:

pip install gillespie

Usage

First you must define in what states the populations of your system can be. Then you model your system using three domains:

1. Initial values

A list of initial values for your states:

initials = [290, 10, 0]

Here we have three states in our population.

2. Propensities

A list of functions that, given the values of your current states, compute the transition rate of a reaction:

propensities = [lambda s, i, r: 2 * s * i / 300,
                lambda s, i, r: 0.5 * i]

Here we have two reactions that each take the three current states as input.

3. Stoichiometry

A list of incremental/decremental values for each reaction for each state:

stoichiometry = [[-1, 1, 0],
                 [0, -1, 1]]

Here the first reaction would decrement the first state and increment the second one. The second reaction would decrement the second state and increment the third.

4. Run simulation

import gillespie

times, measurements = gillespie.simulate(initials, propensities, stoichiometry, duration=15)

Times contains all the time steps where a reaction occured. And measurements is a list of triplets with the SIR measurements in this case.

Examples

See examples.

To run the examples yourself the gillespie package is not needed to be installed. However, you will need to install matplotlib:

pip install matplotlib

Then, clone the repo and run an example from the project root directory e.g. via:

python examples/epidemics/sir.py

The output plot will then be created in your working directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gillespie-0.0.3.tar.gz (3.6 kB view hashes)

Uploaded Source

Built Distribution

gillespie-0.0.3-py3-none-any.whl (4.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page