Skip to main content

A Python Framework for Modeling and Analysis of Signaling Systems

Project description

BioMASS

Actions Status PyPI version License Downloads PyPI pyversions Language grade: Python Code style: black

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 Python framework for Modeling and Analysis of Signaling Systems. The BioMASS framework allows efficient optimization of multiple parameter sets simultaneously and generates the multiple parameter candidates that explain the signaling dynamics of interest. These parameter candidates can be further evaluated by their distribution and sensitivity analysis as a part of alternative information about the hidden regulatory mechanism of the system.

Features

  • Parameter estimation of ODE models
  • Local sensitivity analysis
  • Effective visualization of simulation results

Installation

The BioMASS library is available on PyPI.

$ pip install biomass

BioMASS supports Python 3.7 or newer.

Usage

We will use the model of immediate-early gene response (Nakakuki_Cell_2010) for parameter estimation, visualization of simulation results and sensitivity analysis.

Model Preparation

A brief description of each file/folder is below:

Name Content
name2idx/ Names of model parameters and species
set_model.py Differential equation, parameters and initial condition
observalbe.py Observables, simulations and experimental data
viz.py Plotting parameters for customizing figure properties
set_search_param.py Model parameters to optimize and search region
fitness.py An objective function to be minimized, i.e., the distance between model simulation and experimental data
reaction_network.py Reaction indices grouped according to biological processes
from biomass import Model
from biomass.models import Nakakuki_Cell_2010

model = Model(Nakakuki_Cell_2010.__package__).create(show_info=True)

Nakakuki_Cell_2010 information
------------------------------
36 species
115 parameters, of which 75 to be estimated

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=model, start=1, options={
        "popsize": 3,
        "max_generation": 100,
        "allowable_error": 0.5,
        "local_search_method": "DE",
        "maxiter": 50,
    }
)

The temporary result will be saved in out/n/ after each iteration.

Progress list: out/n/optimization.log

Generation1: Best Fitness = 5.864228e+00
Generation2: Best Fitness = 5.864228e+00
Generation3: Best Fitness = 4.488934e+00
Generation4: Best Fitness = 3.793744e+00
Generation5: Best Fitness = 3.652047e+00
Generation6: Best Fitness = 3.652047e+00
Generation7: Best Fitness = 3.652047e+00
Generation8: Best Fitness = 3.452999e+00
Generation9: Best Fitness = 3.180878e+00
Generation10: Best Fitness = 1.392501e+00
Generation11: Best Fitness = 1.392501e+00
Generation12: Best Fitness = 1.392501e+00
Generation13: Best Fitness = 1.392501e+00
Generation14: Best Fitness = 7.018051e-01
Generation15: Best Fitness = 7.018051e-01
Generation16: Best Fitness = 7.018051e-01
Generation17: Best Fitness = 7.018051e-01
Generation18: Best Fitness = 7.018051e-01
Generation19: Best Fitness = 6.862063e-01
Generation20: Best Fitness = 6.862063e-01
  • If you want to continue from where you stopped in the last parameter search,
from biomass import optimize_continue

optimize_continue(
    model=model, start=1, options={
        "popsize": 3,
        "max_generation": 200,
        "allowable_error": 0.5,
        "local_search_method": "DE",
        "maxiter": 50,
    }
)
  • If you want to search multiple parameter sets (e.g., from 1 to 10) simultaneously,
from biomass import optimize

optimize(
    model=model, start=1, end=10, options={
        "popsize": 5,
        "max_generation": 100,
        "allowable_error": 0.5,
        "local_search_method": "DE",
        "maxiter": 50,
    }
)
  • Data Export and Visualization
from biomass.result import OptimizationResults

res = OptimizationResults(model)
# Export optimized parameters in CSV format
res.to_csv()
# Visualize objective function traces for different optimization runs
res.trace_obj()

Visualization of Simulation Results

from biomass import run_simulation

run_simulation(model, viz_type='average', show_all=False, stdev=True)

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(model, target='reaction', metric='integral', style='barplot')

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. 12, 2878 (2020). https://doi.org/10.3390/cancers12102878

    @article{imoto2020computational,
      title={A Computational Framework for Prediction and Analysis of Cancer Signaling Dynamics from RNA Sequencing Data—Application to the ErbB Receptor Signaling Pathway},
      author={Imoto, Hiroaki and Zhang, Suxiang and Okada, Mariko},
      journal={Cancers},
      volume={12},
      number={10},
      pages={2878},
      year={2020},
      publisher={Multidisciplinary Digital Publishing Institute}
    }
    

Author

Hiroaki Imoto

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.4.0.tar.gz (75.8 kB view details)

Uploaded Source

Built Distribution

biomass-0.4.0-py3-none-any.whl (98.2 kB view details)

Uploaded Python 3

File details

Details for the file biomass-0.4.0.tar.gz.

File metadata

  • Download URL: biomass-0.4.0.tar.gz
  • Upload date:
  • Size: 75.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for biomass-0.4.0.tar.gz
Algorithm Hash digest
SHA256 64e9f5cf4f6fb647094cc81153b790b0e7d4fd0b101a34186cc972690ade57b4
MD5 b2540c274be09d4c4b2342554b476656
BLAKE2b-256 11bc653337b646dca56af12531506f8bfdeaa34c2e99a8f4be7e3831f557485e

See more details on using hashes here.

File details

Details for the file biomass-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: biomass-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 98.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for biomass-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3c38262d5f865d424a283327c5fda13b434d308daff167317c08df201df2842
MD5 8755545839d098fc1ed33fd7fbeb5ba9
BLAKE2b-256 58dbbf41af4e1897898f192690fa1d1a4ab6ec7478d2ca48f1e0b42ac352adf3

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