Python package for stochastic simulations
Project description
pyssa : Python package for stochastic simulations
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
- General: https://pyssa.readthedocs.io.
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()
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyssa-0.8.2.tar.gz.
File metadata
- Download URL: pyssa-0.8.2.tar.gz
- Upload date:
- Size: 80.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c628cac789c92dede8ba6f6285dd7154d0b233fc7288f0be20cd555fe2df592
|
|
| MD5 |
b38c5d32fc5380b3e75b14e6158aaa0b
|
|
| BLAKE2b-256 |
91d235604e2fc272e7d2e6fc074f0ca44dcd5fa8b9918bcc5e17db24316785e7
|