Simulation of Biological Systems
Project description
SimBio
simbio
is a Python-based package for simulation of Chemical Reaction Networks (CRNs).
It extends poincare
,
a package for modelling dynamical systems,
to add functionality for CRNs.
Usage
To create a system with two species $A$ and $B$ and a reaction converting $2A \rightarrow B$ with rate 1:
>>> from simbio import Compartment, Species, RateLaw, initial
>>> class Model(Compartment):
... A: Species = initial(default=1)
... B: Species = initial(default=0)
... r = RateLaw(
... reactants=[2 * A],
... products=[B],
... rate_law=1,
... )
This corresponds to the following system of equations
$$ \begin{cases} \frac{dA}{dt} = -2 \ \frac{dB}{dt} = +1 \end{cases} $$
with initial conditions
$$ \begin{cases} A(0) = 1 \ B(0) = 0 \end{cases} $$
In CRNs,
we usually deal with mass-action reactions.
Using MassAction
instead of Reaction
automatically adds the reactants to the rate law:
>>> from simbio import MassAction
>>> class MassActionModel(Compartment):
... A: Species = initial(default=1)
... B: Species = initial(default=0)
... r = MassAction(
... reactants=[2 * A],
... products=[B],
... rate=1,
... )
generating the following equations:
$$ \begin{cases} \frac{dA}{dt} = -2 A^2 \ \frac{dB}{dt} = +1 A^2 \end{cases} $$
To simulate the system,
use the Simulator.solve
which outputs a pandas.DataFrame
:
>>> from simbio import Simulator
>>> Simulator(MassActionModel).solve(save_at=range(5))
A B
time
0 1.000000 0.000000
1 0.333266 0.333367
2 0.199937 0.400032
3 0.142798 0.428601
4 0.111061 0.444470
For more details into SimBio's capabilities, we recommend reading poincaré's README.
SBML
SimBio can import models from Systems Biology Markup Language (SBML) files:
>>> from simbio.io import sbml
>>> sbml.load("repressilator.sbml")
Elowitz2000 - Repressilator
-----------------------------------------------------------------------------------
type total names
---------- ------- --------------------------------------------------------------
variables 6 PX, PY, PZ, X, Y, Z
parameters 17 cell, beta, alpha0, alpha, eff, n, KM, tau_mRNA, tau_prot, ...
equations 12 Reaction1, Reaction2, Reaction3, Reaction4, Reaction5, ...
or download them from the BioModels repository:
>>> from simbio.io import biomodels
>>> biomodels.load("BIOMD12")
Elowitz2000 - Repressilator
-----------------------------------------------------------------------------------
type total names
---------- ------- --------------------------------------------------------------
variables 6 PX, PY, PZ, X, Y, Z
parameters 17 cell, beta, alpha0, alpha, eff, n, KM, tau_mRNA, tau_prot, ...
equations 12 Reaction1, Reaction2, Reaction3, Reaction4, Reaction5, ...
Installation
It can be installed from PyPI with pip
:
pip install simbio
Or, to additionally install the SBML importer:
pip install simbio[io]
While poincaré
is installed automatically as a dependency,
if you are using conda/mamba,
you might prefer to install it from conda-forge:
conda install --channel conda-forge poincare
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
Built Distribution
File details
Details for the file simbio-0.4.tar.gz
.
File metadata
- Download URL: simbio-0.4.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231ab510c35760f6a0e9c1e1eea1828c4799bc40fbe5e3794faa992f7e8ee6ca |
|
MD5 | 44bdea84b8aacec089714af01165b27a |
|
BLAKE2b-256 | f4e10699a58f39f10dfa2f2e715ebbfb0d32fe603895ddb557a3db919e195025 |
File details
Details for the file SimBio-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: SimBio-0.4.0-py3-none-any.whl
- Upload date:
- Size: 29.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef6648965917fbb4d7d1093b5dae7ccdfec3be8705bcdd74a0d6f416a0000451 |
|
MD5 | e46652f2d79b856c3a768aec08e48fed |
|
BLAKE2b-256 | 8c6f8702ef324cf2e176949384522005af9d8ba9a2a198e3d0fa7f5c45559fa7 |