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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pydruglogics-0.1.8.tar.gz
Algorithm Hash digest
SHA256 78143945fd9f2f0fc3abbe7e36eb41dd33da9acf309cdfb6e62cf849c84c3380
MD5 4343b5001527a8faa0db2310f7f0dd17
BLAKE2b-256 95ac8804013416f2ab993fa8ece4954477571b269b0f322fec92abfe4e372008

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydruglogics-0.1.8-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.11.10

File hashes

Hashes for pydruglogics-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8ce3ec307618af480d9950cfde02681b2d72215f49cb7992f0cb512298d3f803
MD5 bdad5ab2e0b02c5feb377c8f563fc9eb
BLAKE2b-256 f6853ecc95a9dd26d841b1a51d07d918970b1a77dff63c7534c1eef814d4e7f3

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