Skip to main content

Python package for stochastic simulations

Project description

pyssa : Python package for stochastic simulations

Build Status Build Status codecov Updates Documentation Status pypi License Code style: black

Introduction

pyssa is a Python package for stochastic simulations. It offers a simple api to define models, perform stochastic simulations on them and visualize the results in a convenient manner.

Install

Install with pip:

$ pip install pyssa

Documentation

Usage

from pyssa.simulation import Simulation
V_r = np.array([[1, 0], [0, 1], [0, 0]])  # Reactant matrix
V_p = np.array([[0, 0], [1, 0], [0, 1]])  # Product matrix
X0 = np.array([100, 0, 0])  # Initial state
k = np.array([1.0, 1.0])  # Rate constants
sim = Simulation(V_r, V_p, X0, k)  # Declare the simulation object
# Run the simulation
sim.simulate(max_t=150, max_iter=1000, chem_flag=True, n_rep=10)

You can change the algorithm used to perform the simulation by changing the algorithm parameter

sim.simulate(max_t=150, max_iter=1000, chem_flag=True, n_rep=10, algorithm="tau_adaptive")

You can run the simulations on multiple cores by specifying the n_procs parameter

sim.simulate(max_t=150, max_iter=1000, chem_flag=True, n_rep=10, n_procs=4)

Plotting

sim.plot()

Plot of species A, B and C

Accessing the results

results = sim.results

You can also access the final states of all the simulation runs by

final_times, final_states = results.final

Benchmarks

We chose numba after extensive testing and benchmarking against python and cython implementations.

Name (time in ms) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
test_numba_benchmark 314.1758 (1.0) 342.9915 (1.0) 322.9318 (1.0) 11.4590 (1.0) 318.7983 (1.0) 9.1533 (1.0) 1;1 3.0966 (1.0) 5 1
test_cy_benchmark 17,345.7698 (55.21) 19,628.3931 (57.23) 18,255.3931 (56.53) 862.4711 (75.27) 18,148.9358 (56.93) 1,030.3676 (112.57) 2;0 0.0548 (0.02) 5 1
test_py_benchmark 27,366.3681 (87.11) 28,417.8333 (82.85) 27,782.2482 (86.03) 387.2758 (33.80) 27,728.4224 (86.98) 347.3891 (37.95) 2;0 0.0360 (0.01) 5 1

License

Copyright (c) 2018-2019, Dileep Kishore, Srikiran Chandrasekaran. Released under: Apache Software License 2.0

Credits

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

pyssa-0.8.1.tar.gz (76.3 kB view details)

Uploaded Source

File details

Details for the file pyssa-0.8.1.tar.gz.

File metadata

  • Download URL: pyssa-0.8.1.tar.gz
  • Upload date:
  • Size: 76.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for pyssa-0.8.1.tar.gz
Algorithm Hash digest
SHA256 e6bbeb35b213a3fd7046adea46011019be3aad8f122e6fd34ec0e79c644ab9c9
MD5 fd8c48352d922923db7d19f9eef7dc39
BLAKE2b-256 49b5b221dcecf3838186c81d833d8ea760d073ef92d9347109e018508b2ba1f1

See more details on using hashes here.

Supported by

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