Skip to main content

Patient-Specific Modeling in Python

Project description


PyPI version Actions Status Documentation Status License Downloads PyPI pyversions pre-commit.ci status Code style: black Imports: isort iScience Paper

Pasmopy is a scalable toolkit to identify prognostic factors for cancers based on intracellular signaling dynamics generated from personalized kinetic models. It is compatible with biomass and offers the following features:

  • Construction of mechanistic models from text
  • Personalization of the model using transcriptome data
  • Prediction of patient outcome based on in silico signaling dynamics
  • Sensitivity analysis for prediction of potential drug targets

Documentation

Online documentation is available at https://pasmopy.readthedocs.io.

You can also build the documentation locally by running the following commands:

$ cd docs
$ make html

The site will live in _build/html/index.html.

Installation

The latest stable release (and required dependencies) can be installed from PyPI:

$ pip install pasmopy

Pasmopy requires Python 3.8+ to run.

Example

Building mathematical models of biochemical systems from text

This example shows you how to build a simple Michaelis-Menten two-step enzyme catalysis model with Pasmopy.

E + S ⇄ ES → E + P

An enzyme, E, binding to a substrate, S, to form a complex, ES, which in turn releases a product, P, regenerating the original enzyme.

import os
from pasmopy import Text2Model, create_model, run_simulation

# Prepare a text file describing the biochemical reactions (e.g., `michaelis_menten.txt`)
reactions = """\
E + S ⇄ ES | kf=0.003, kr=0.001 | E=100, S=50
ES → E + P | kf=0.002
"""

observables = """
@obs Substrate: u[S]
@obs E_free: u[E]
@obs E_total: u[E] + u[ES]
@obs Product: u[P]
@obs Complex: u[ES]
"""

simulation_condition = """
@sim tspan: [0, 100]
"""

with open("michaelis_menten.txt", mode="w") as f:
   f.writelines(reactions)
   f.writelines(observables)
   f.writelines(simulation_condition)

# Convert the text into an executable model
description = Text2Model("michaelis_menten.txt")
description.convert()
assert os.path.isdir("michaelis_menten")

# Run simulation
model = create_model("michaelis_menten")
run_simulation(model)

michaelis_menten

For more examples, please refer to the Documentation.

Personalized signaling models for cancer patient stratification

Using Pasmopy, we built a mechanistic model of ErbB receptor signaling network, trained with protein quantification data obtained from cultured cell lines, and performed in silico simulation of the pathway activities on breast cancer patients using The Cancer Genome Atlas (TCGA) transcriptome datasets. The temporal activation dynamics of Akt, extracellular signal-regulated kinase (ERK), and c-Myc in each patient were able to accurately predict the difference in prognosis and sensitivity to kinase inhibitors in triple-negative breast cancer (TNBC).

For further details, please see https://pasmopy.readthedocs.io/en/latest/personalized_model.html.

References

  • Imoto, H., Yamashiro, S. & Okada, M. A text-based computational framework for patient -specific modeling for classification of cancers. iScience 25, 103944 (2022). https://doi.org/10.1016/j.isci.2022.103944

  • Imoto, H., Yamashiro, S., Murakami, K. & Okada, M. Protocol for stratification of triple-negative breast cancer patients using in silico signaling dynamics. STAR Protocols 3, 101619 (2022). https://doi.org/10.1016/j.xpro.2022.101619

Author

Hiroaki Imoto

License

Apache License 2.0

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

pasmopy-0.5.0.tar.gz (22.5 kB view hashes)

Uploaded Source

Built Distribution

pasmopy-0.5.0-py3-none-any.whl (19.4 kB view hashes)

Uploaded Python 3

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