A Python Framework for Modeling and Analysis of Signaling Systems
Project description
BioMASS
Modeling and Analysis of Signaling Systems
Mathematical modeling is a powerful method for the analysis of complex biological systems. Although there are many researches devoted on producing models to describe dynamical cellular signaling systems, most of these models are limited and do not cover multiple pathways. Therefore, there is a challenge to combine these models to enable understanding at a larger scale. Nevertheless, larger network means that it gets more difficult to estimate parameters to reproduce dynamic experimental data needed for deeper understanding of a system.
To overcome this problem, we developed BioMASS, a modeling platform tailored to optimizing mathematical models of biological processes. By using BioMASS, users can efficiently optimize kinetic parameters to fit user-defined models to experimental data, while performing analysis on reaction networks to predict critical components affecting cellular output.
Description
BioMASS is a biological modeling environment tailored to
- Parameter Estimation of ODE Models
- Sensitivity Analysis
currently implimented for modeling immediate-early gene response (Nakakuki et al., Cell, 2010).
Installation
The BioMASS library is available on PyPI.
$ pip install biomass
BioMASS supports Python 3.7 or newer.
Import model
from biomass.models import Nakakuki_Cell_2010
Parameter Estimation of ODE Models (n = 1, 2, 3, · · ·)
Parameters are adjusted to minimize the distance between model simulation and experimental data.
from biomass import optimize
optimize(
model=Nakakuki_Cell_2010, start=1, options={
"popsize": 3,
"max_generation": 1000,
"allowable_error": 0.5,
"local_search_method": "DE",
}
)
The temporary result will be saved in out/n/
after each iteration.
Progress list: out/n/optimization.log
Generation1: Best Fitness = 1.726069e+00
Generation2: Best Fitness = 1.726069e+00
Generation3: Best Fitness = 1.726069e+00
Generation4: Best Fitness = 1.645414e+00
Generation5: Best Fitness = 1.645414e+00
Generation6: Best Fitness = 1.645414e+00
Generation7: Best Fitness = 1.645414e+00
Generation8: Best Fitness = 1.645414e+00
Generation9: Best Fitness = 1.645414e+00
Generation10: Best Fitness = 1.645414e+00
Generation11: Best Fitness = 1.645414e+00
Generation12: Best Fitness = 1.645414e+00
Generation13: Best Fitness = 1.645414e+00
Generation14: Best Fitness = 1.645414e+00
Generation15: Best Fitness = 1.645414e+00
Generation16: Best Fitness = 1.249036e+00
Generation17: Best Fitness = 1.171606e+00
Generation18: Best Fitness = 1.171606e+00
Generation19: Best Fitness = 1.171606e+00
Generation20: Best Fitness = 1.171606e+00
- If you want to continue from where you stopped in the last parameter search,
from biomass import optimize_continue
optimize_continue(
model=Nakakuki_Cell_2010, start=1, options={
"popsize": 3,
"max_generation": 1000,
"allowable_error": 0.5,
"local_search_method": "DE",
}
)
- If you want to search multiple parameter sets (e.g., from 1 to 10) simultaneously,
from biomass import optimize
optimize(
model=Nakakuki_Cell_2010, start=1, end=10, options={
"popsize": 5,
"max_generation": 2000,
"allowable_error": 0.5,
"local_search_method": "mutation",
"n_children": 50
}
)
- Exporting optimized parameters in CSV format
from biomass.result import OptimizationResults
res = OptimizationResults(Nakakuki_Cell_2010)
res.to_csv()
Visualization of Simulation Results
from biomass import run_simulation
run_simulation(Nakakuki_Cell_2010, viz_type='average', show_all=False, stdev=True)
viz_type : str
-
'average'
: The average of simulation results with parameter sets inout/
. -
'best'
: The best simulation result inout/
, simulation withbest_fit_param
. -
'original'
: Simulation with the default parameters and initial values defined inset_model.py
. -
'n(=1,2,...)'
: Use the parameter set inout/n/
. -
'experiment'
: Draw the experimental data written inobservable.py
without simulation results.
show_all : bool
- Whether to show all simulation results.
stdev : bool
- If True, the standard deviation of simulated values will be shown (only when
viz_type == 'average'
).
Points (blue diamonds, EGF; red squares, HRG) denote experimental data, solid lines denote simulations
Sensitivity Analysis
The single parameter sensitivity of each reaction is defined by
si(q(v),vi) = ∂ ln(q(v)) / ∂ ln(vi) = ∂ q(v) / ∂ vi · vi / q(v)
where vi is the ith reaction rate, v is reaction vector v = (v1, v2, ...) and q(v) is a target function, e.g., time-integrated response, duration. Sensitivity coefficients were calculated using finite difference approximations with 1% changes in the reaction rates.
from biomass import run_analysis
run_analysis(Nakakuki_Cell_2010, target='reaction', metric='integral', style='barplot')
target : str
'reaction'
'initial_condition'
'parameter'
metric : str
'maximum'
: The maximum value.'minimum'
: The minimum value.'duration'
: The time it takes to decline below 10% of its maximum.'integral'
: The integral of concentration over the observation time.
style : str
'barplot'
'heatmap'
Control coefficients for integrated pc-Fos are shown by bars (blue, EGF; red, HRG). Numbers above bars indicate the reaction indices, and error bars correspond to simulation standard deviation.
Citation
When using BioMASS, please cite:
- Imoto, H., Zhang, S. & Okada, M. A Computational Framework for Prediction and Analysis of Cancer Signaling Dynamics from RNA Sequencing Data—Application to the ErbB Receptor Signaling Pathway. Cancers (Basel). 12, 2878 (2020). https://doi.org/10.3390/cancers12102878
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 biomass-0.2.3.tar.gz
.
File metadata
- Download URL: biomass-0.2.3.tar.gz
- Upload date:
- Size: 64.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b0bbe7eb88e692091b76887bf965fe244947e8a259a618ff931cb806180f3a5 |
|
MD5 | 4ca292bd6a0bea1354236ad2b7fff0c5 |
|
BLAKE2b-256 | 6486dc39e11b0286108e5232c77e520f5ca2eff4a3c234579abe4af5bc7a43da |
File details
Details for the file biomass-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: biomass-0.2.3-py3-none-any.whl
- Upload date:
- Size: 83.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ca96917241404d6e75f399156cd10b7b017d401a09b6c6085dcf8ecd0bcf515 |
|
MD5 | 5cfe5ef179b2984998d46771b2df3baf |
|
BLAKE2b-256 | 55897dbbdd7a0b0d89b0d0ac01ebb209ad0ffa55fa28628ee70024747a4203dd |