Skip to main content

A Python Framework for Modeling and Analysis of Signaling Systems

Project description

BioMASS

License: MIT Actions Status Language grade: Python PyPI version PyPI pyversions

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

  1. Parameter Estimation of ODE Models
  2. 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 in out/.

  • 'best' : The best simulation result in out/, simulation with best_fit_param.

  • 'original' : Simulation with the default parameters and initial values defined in set_model.py.

  • 'n(=1,2,...)' : Use the parameter set in out/n/.

  • 'experiment' : Draw the experimental data written in observable.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').

simulation_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'

sensitivity_PcFos

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

biomass-0.2.3.tar.gz (64.3 kB view details)

Uploaded Source

Built Distribution

biomass-0.2.3-py3-none-any.whl (83.5 kB view details)

Uploaded Python 3

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

Hashes for biomass-0.2.3.tar.gz
Algorithm Hash digest
SHA256 4b0bbe7eb88e692091b76887bf965fe244947e8a259a618ff931cb806180f3a5
MD5 4ca292bd6a0bea1354236ad2b7fff0c5
BLAKE2b-256 6486dc39e11b0286108e5232c77e520f5ca2eff4a3c234579abe4af5bc7a43da

See more details on using hashes here.

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

Hashes for biomass-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6ca96917241404d6e75f399156cd10b7b017d401a09b6c6085dcf8ecd0bcf515
MD5 5cfe5ef179b2984998d46771b2df3baf
BLAKE2b-256 55897dbbdd7a0b0d89b0d0ac01ebb209ad0ffa55fa28628ee70024747a4203dd

See more details on using hashes here.

Supported by

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