Skip to main content

PyDrugLogics: a Python package designed for constructing, optimizing Boolean models and performs in-silico perturbations of the models.

Project description

PyDrugLogics

PyDrugLogics Logo

PyPI version Build Status License: GPL v3 Documentation Status

Overview

PyDrugLogics is a Python package designed for constructing, optimizing Boolean Models and performs in-silico perturbations of the models.

Core Features

  • Construct Boolean model from .sif file
  • Optimize Boolean model
  • Generate perturbed models
  • Evaluate drug synergies

Installation

PyDrugLogics can be installed via PyPi, Conda, or directly from the source.

Install PyDrugLogics from PyPI

The process involves two steps to install the PyDrugLogics core package and its necessary external dependencies.

1. Install PyDrugLogics via pip

pip install pydruglogics

2. Install External Dependency

pip install -r https://raw.githubusercontent.com/druglogics/pydruglogics/main/requirements.txt

This will install the PyDrugLogics package and handle all dependencies automatically.

Install PyDrugLogics via conda

Note: CoLoMoTo conda integration is ongoing.

conda install szlaura::pydruglogics

Install from Source

For the latest development version, you can clone the repository and install directly from the source:

git clone https://github.com/druglogics/pydruglogics.git
cd pydruglogics
pip install .
pip install -r requirements.txt

CoLoMoTo Notebook envionment

See more here about CoLoMoTo Docker and Notebook
Note: This section will be updated when Colomoto Docker integration is completed.

Documentation

For full documentation, visit the GitHub Documentation.

Quick Start Guide

Here's a simple example to get you started:

from pydruglogics.model.BooleanModel import BooleanModel
from pydruglogics.input.TrainingData import TrainingData
from pydruglogics.input.Perturbations import Perturbation
from pydruglogics.input.ModelOutputs import ModelOutputs
from pydruglogics.execution.Executor import execute

# Initialize train and predict
model_outputs_dict = {
        "RSK_f": 1.0,
        "MYC": 1.0,
        "TCF7_f": 1.0
    }
model_outputs = ModelOutputs(input_dictionary=model_outputs_dict)

observations = [(["CASP3:0", "CASP8:0","CASP9:0","FOXO_f:0","RSK_f:1","CCND1:1"], 1.0)]
training_data = TrainingData(observations=observations)


drug_data = [['PI', 'PIK3CA', 'inhibits'],
            ['PD', 'MEK_f', 'activates'],
            ['CT','GSK3_f']]
perturbations = Perturbation(drug_data=drug_data)


boolean_model = BooleanModel(file='./ags_cascade_1.0/network.bnet', model_name='test', mutation_type='topology',
                                  attractor_tool='mpbn', attractor_type='trapspaces')

observed_synergy_scores = ["PI-PD", "PI-5Z", "PD-AK", "AK-5Z"]


ga_args = {
        'num_generations': 20,
        'num_parents_mating': 3,
        'mutation_num_genes': 3,
        'fitness_batch_size': 20
}

ev_args = {
        'num_best_solutions': 3,
        'num_of_runs': 30,
        'num_of_cores': 4
}


train_params = {
        'boolean_model': boolean_model,
        'model_outputs': model_outputs,
        'training_data': training_data,
        'ga_args': ga_args,
        'ev_args': ev_args
}

predict_params = {
        'perturbations': perturbations,
        'model_outputs': model_outputs,
        'observed_synergy_scores': observed_synergy_scores,
        'synergy_method': 'bliss'
}

# run train and predict
execute(train_params=train_params, predict_params=predict_params)

For a more detailed tutorial, please visit the documentation.

Citing PyDrugLogics

If you use PyDrugLogics, please cite the paper:

Flobak, Å., Zobolas, J. et al. (2023): Fine tuning a logical model of cancer cells to predict drug synergies: combining manual curation and automated parameterization. DOI: 10.3389/fsysb.2023.1252961

@Article{druglogics2023,
  title = {Fine tuning a logical model of cancer cells to predict drug synergies: combining manual curation and automated parameterization},
  author = {Flobak, Å., Zobolas, J. and Other Authors},
  journal = {Frontiers},
  year = {2023},
  month = {nov},
  doi = {10.3389/fsysb.2023.1252961},
  url = {https://www.frontiersin.org/journals/systems-biology/articles/10.3389/fsysb.2023.1252961/full},
}

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

pydruglogics-0.1.2.tar.gz (38.5 kB view details)

Uploaded Source

Built Distribution

pydruglogics-0.1.2-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

Details for the file pydruglogics-0.1.2.tar.gz.

File metadata

  • Download URL: pydruglogics-0.1.2.tar.gz
  • Upload date:
  • Size: 38.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pydruglogics-0.1.2.tar.gz
Algorithm Hash digest
SHA256 12b6582a52ebe97c82cb0709ba58ca9db23f07e868388cda66d8ab905db02c38
MD5 6f29663f870859125ea1a9f98b85118e
BLAKE2b-256 ce9984472dc7fbf09149e43d45b7f4b80fba04311a1990be5c3a46b2ca91bf8f

See more details on using hashes here.

File details

Details for the file pydruglogics-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pydruglogics-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pydruglogics-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4d00f382f4ecd851728b4f93e45b76fd6584c5df462763a525478a18a1fe14ab
MD5 4bc398255583b93f850f2a7677109d30
BLAKE2b-256 de517a1819cb52e647a30b59d10a7fdf7c0cef7481d37e6cb5351eb9dde5b853

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