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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydruglogics-0.1.6.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.6.tar.gz
Algorithm Hash digest
SHA256 cf92bd08304cfc9f39e52378db40e07201eb6b5656e550d61f1f30459322241d
MD5 6eb123468b28e1133a759f47f537c8b7
BLAKE2b-256 9d3937a4787f8367589eea827500c2453ccc340dcd27f77aa310b35de98d7c9e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydruglogics-0.1.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c5800b85324abf5f9dfd2e9f6cc7b94d533477e1efa195f36d241e39e7266166
MD5 6c5488e4ef1f22e87e42ea8954feedcc
BLAKE2b-256 928e12cff88f66545b07884b984676b71876fd3cd340fdaae7fad25a46c1b881

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