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
flag
sim.simulate(max_t=150, max_iter=1000, chem_flag=True, n_rep=10, algorithm="tau_leaping")
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
pyssa-0.7.0.tar.gz
(77.1 kB
view hashes)