Home

Awesome

<p align="center"> <img src="https://user-images.githubusercontent.com/7370243/135420088-f616adc8-1e92-4d9b-8b53-0b863497244d.png" width="400px"> </p>

QEPPI

Quantitative estimate index for early-stage screening of compounds targeting protein-protein interactions

License GitHub Clones Hits PyPI Python Versions tests

Calculation QEPPI with using Google Colab

We have made it so that you can use Google Colab to calculate QEPPI from SMILES without creating your own environment.
If you have a lot of SMILES to calculate, please convert the SMILES to SDF files.

Open In Colab

Mininal environment setup (Git clone)

We setup it on a Mac (macOS10.15.7), but I'm sure it will run fine on other platforms such as Linux.

# Python 3.7 | 3.8
# dependencies
pip install rdkit-pypi # >= 2021.3.1.5
pip install numpy      # >= 1.19.5
pip install pandas     # >= 1.1.5

We also confirmed that QEPPI works with Colab. (see notebook)

Clone QEPPI

Clone QEPPI repository when you are done with the setup.

git clone https://github.com/ohuelab/QEPPI.git

Test

Test it after git clone the QEPPI repository. If the test passes, the QEPPI calculation has been successfully performed. (We used pytest version is 6.2.2)

cd QEPPI
pytest -v

QEPPI calculation example

# for .sdf
python calc_QEPPI.py --sdf PATH_TO_YOUR_COMPOUND.sdf --out PATH_TO_OUTPUT.csv
# for .csv ("A column name of "SMILES" is required.")
python calc_QEPPI.py --csv PATH_TO_YOUR_COMPOUND.csv --out PATH_TO_OUTPUT.csv

Instalation using pip install

You can also install QEPPI with pip install QEPPI. The following sample code is available as an implementation example.
Note: some dependancies will also be installed with QEPPI module, so a clean environment is preferred!

# QEPPI
pip install QEPPI
import QEPPI as ppi
from rdkit import Chem
from rdkit.Chem import SDMolSupplier

q = ppi.QEPPI_Calculator()
q.read()

# SMILES
smiles = "COC1=CC(=CC=C1NC(=O)[C@@H]1N[C@@H](CC(C)(C)C)[C@@](C#N)([C@H]1C1=CC=CC(Cl)=C1F)C1=CC=C(Cl)C=C1F)C(O)=O"
mol = Chem.MolFromSmiles(smiles)
print(q.qeppi(mol))
# 0.7862842663145835

# SDF
ppi_s = SDMolSupplier("PATH_TO_SDF/YOUR_COMPOUND.sdf")
ppi_mols = [mol for mol in ppi_s if mol is not None]
result = list(map(q.qeppi, ppi_mols))

Reference

If you find QEPPI useful, please consider citing this publication;

Another QEPPI publication (conference paper)