QEPPI-community
Quantitative estimate index for early-stage screening of compounds targeting protein-protein interactions
Google Colab
You can calculate QEPPI from SMILES in Google Colab without creating a local environment. If you have many SMILES to calculate, consider converting them to SDF first.
Supported Environment
QEPPI-community is tested on Python 3.10, 3.11, 3.12, 3.13, and 3.14 (requires-python = >=3.10,<3.15). The package depends on the latest compatible RDKit from PyPI with rdkit>=2025.3.2, plus NumPy and pandas. RDKit descriptor behavior may change between RDKit releases, so exact QEPPI values can drift across RDKit versions even when the QEPPI formula and built-in model parameters are unchanged.
Installation
python -m pip install QEPPIcommunity
For development from a clone:
git clone https://github.com/AspirinCode/QEPPI-community.git
cd QEPPI-community
python -m pip install -e ".[dev]"
pytest -v
Python API
QEPPI_Calculator() loads the built-in QEPPI model by default. You no longer need to call read() before scoring.
from rdkit import Chem
from rdkit.Chem import SDMolSupplier
from QEPPI import QEPPI_Calculator, get_qeppi_properties
calculator = QEPPI_Calculator()
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(calculator.qeppi(mol))
print(calculator.score(mol))
print(get_qeppi_properties(mol))
supplier = SDMolSupplier("PATH_TO_COMPOUNDS.sdf")
mols = [mol for mol in supplier if mol is not None]
scores = calculator.score_many(mols)
Legacy names remain available: QEPPI_Calculator, qeppi, descript, read, and load. Modern aliases are also available: QEPPICalculator, score, descriptors, and score_many.
CLI
The installed console command is qeppi. Exactly one input mode is required: --smiles, --csv, or --sdf.
Single SMILES:
qeppi --smiles "CCO"
CSV input:
qeppi --csv compounds.csv --out results/qeppi.csv
qeppi --csv compounds.csv --smiles-column structure --out results/qeppi.csv
CSV output preserves every original row and column. QEPPI adds CanonicalSMILES, QEPPI, QEPPI_status, and QEPPI_error. Invalid SMILES are not dropped: their QEPPI field is blank, QEPPI_status is error, and QEPPI_error explains the failure.
SDF input:
qeppi --sdf compounds.sdf --out results/qeppi.csv
SDF output includes record_index, CanonicalSMILES, QEPPI, QEPPI_status, and QEPPI_error. Failed records are kept and reported on stderr.
The historical script still works as a compatibility wrapper:
python calc_QEPPI.py --smiles "CCO"
Model Files
By default, QEPPI uses the built-in model constants bundled in the package. The CLI no longer depends on ./model/QEPPI.model in the current working directory.
Prefer JSON for custom models:
qeppi --smiles "CCO" --model qeppi-model.json
The JSON model must contain params and weights, parameters for all seven descriptors, six finite ADS coefficients per descriptor, and finite weight vectors with positive sums.
Legacy pickle models are still supported for compatibility:
qeppi --smiles "CCO" --model model/QEPPI.model
Security warning: pickle files can execute code while loading. Only load pickle model files from trusted sources. JSON is recommended for new workflows.
Development
python -m pip install -e ".[dev]"
ruff check .
ruff format --check .
pytest -v --cov=QEPPI --cov-report=term-missing
Reference
If you find QEPPI useful, please consider citing this publication:
- Kosugi T, Ohue M. Quantitative estimate index for early-stage screening of compounds targeting protein-protein interactions. International Journal of Molecular Sciences, 22(20): 10925, 2021. doi: 10.3390/ijms222010925
Another QEPPI publication (conference paper):
- Kosugi T, Ohue M. Quantitative estimate of protein-protein interaction targeting drug-likeness. In Proceedings of The 18th IEEE International Conference on Computational Intelligence in Bioinformatics and Computational Biology (CIBCB 2021), 2021. doi: 10.1109/CIBCB49929.2021.9562931 (PDF) Copyright 2021 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses.
Metadata
Release files for QEPPIcommunity 0.1.22
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qeppicommunity-0.1.22.tar.gz | 15.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qeppicommunity-0.1.22-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.1 kB
Release files / qeppicommunity-0.1.22.tar.gz
| Download URL | qeppicommunity-0.1.22.tar.gz |
|---|---|
| Size | 15.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cd2cc47f8721302c3e484aab200a4dc78eafe56c3d4b64ae3d6874c9e5b7603a
|
|
BLAKE2b-256 checksum How to use checksums |
cb4857181f1c496fba9ae54195150812dca6ee244a7fb8a67a53b8454885840a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / qeppicommunity-0.1.22-py3-none-any.whl
| Download URL | qeppicommunity-0.1.22-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc516a75c9ab1921d2e388f996cd4560d5350bcc3b09658190bca70f6a697cb1
|
|
BLAKE2b-256 checksum How to use checksums |
ca2c8584988d57599f365b8e45f4a6fbbf7c6e460ac6e21262e289ceee89cd07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|