Skip to main content

BioMASS

Actions Status Language grade: Python License: MIT Downloads PyPI version PyPI pyversions 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.

$ pip3 install biomass

BioMASS supports Python 3.7 or newer.

Example

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

Model Construction

from biomass.models import Nakakuki_Cell_2010

Nakakuki_Cell_2010.show_info()
Nakakuki_Cell_2010 information
------------------------------
36 species
115 parameters, of which 75 to be estimated
model = Nakakuki_Cell_2010.create()

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": 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 = 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": 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=model, 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(model)
res.to_csv()

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

Metadata

Release files for biomass 0.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for biomass 0.3.4
File Size Uploaded
biomass-0.3.4.tar.gz 73.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for biomass 0.3.4
File Interpreter ABI Platform
biomass-0.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 168.8 kB

Release files / biomass-0.3.4.tar.gz

Download URL biomass-0.3.4.tar.gz
Size 73.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e24ef522f75ae52c423c60d5679fe9f03e744af975f213b84219f451796db225
BLAKE2b-256 checksum
How to use checksums
8d672d610f686d6a5b10525469bf4eab2cad0e73a0f0f63c369a2c92c87d5960
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release files / biomass-0.3.4-py3-none-any.whl

Download URL biomass-0.3.4-py3-none-any.whl
Size 95.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84721daf8a7d1b8b9d5b5777996c9b142277feba59926d742b00b65d59cf3823
BLAKE2b-256 checksum
How to use checksums
fe4fed69595f23aab1360cfb08ff1e55c24e92780cc06ed86f7902352297a53c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

Release history Release notifications | RSS feed

0.11.1

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

This release

0.3.4 This release

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page