AI-based drug-likeness prediction
Project description
Drug-likeness scoring based on unsupervised learning
This repository contains API for Drug-likeness scoring based on unsupervised learning. Original code is available at SeonghwanSeo/DeepDL.
If you want to train the model with your own dataset, please see the section #train-model.
If you have any problems or need help with the code, please add an issue or contact shwan0106@kaist.ac.kr.
TL;DR
# evaluate a molecule with DeepDL
>>> python scoring.py 'CC(=O)Oc1ccccc1C(=O)O'
score: 88.856
# evaluate a molecule with naive setting using another model
>>> python scoring.py 'CC12C(O)CNC13C1CC(N1)C23' --naive -m chemsci-2021
score: 41.399
# screening
>>> python screening.py data/examples/chembl_1k.smi -o out.csv --naive --cuda
88.856is the predicted score. The higher the score, the higher the drug-likeness.- For fast screening, consider using
naivesetting, which evaluates a single stereoisomer. - Multiple models are providen; see #model-list for details.
Installation
# use pip
pip install druglikeness
# from official github (python 3.9-3.13)
git clone https://github.com/SeonghwanSeo/drug-likeness.git
cd drug-likeness
pip install -e .
Python API
from druglikeness.deepdl import DeepDL
# Enter the name of model (see `# Model List`) or the path of your own model.
pretrained_model_name_or_path = 'extended'
# This will download the model weights if you provide the model name.
model = DeepDL.from_pretrained(pretrained_model_name_or_path, device="cpu")
# Evaluate the molecule.
score = model.scoring(smiles='CC(=O)Oc1ccccc1C(=O)O', naive=False)
# Screen the molecules.
score_list = model.screening(smiles_list=['c1ccccc1', 'CCN'], naive=True, batch_size=64)
Model List
| Model Name | Description |
|---|---|
extended (default) |
New model trained on an updated drug database. (excluding test set: FDA-approved drugs) |
chemsci-2025 |
Retrained model of chemsci-2021 with hyperparameter tuning. |
chemsci-2021 |
Finetuned model from the paper (PubChem pretrained, World Drug finetuned). |
chemsci-2021-pretrain |
Pretrained model from the paper (trained on PubChem) |
If your environment is offline, you can manually download the models from Google Drive.
Model Performance
Following shows the scoring performance (AUROC) of the models on the various test datasets.
| Model | Mode | FDA vs ChEMBL | FDA vs ZINC15 | FDA vs GDB17 |
|---|---|---|---|---|
extended |
strict | 0.862 | 0.961 | 0.991 |
extended |
naive | 0.861 | 0.961 | 0.989 |
chemsci-2025 |
strict | 0.817 | 0.941 | 0.984 |
chemsci-2025 |
naive | 0.817 | 0.941 | 0.982 |
Train Model
You can finetune the model with your own dataset using the pretrained model on PubChem dataset.
pip install -e '.[train]'
# train with the 2.8k training set from the paper
bash ./scripts/download_data.sh
python ./scripts/finetune.py --data_path ./data/train/worlddrug_not_fda.smi
python ./scripts/finetune.py --data_path <smi_file>
Evaluation
# download train/test datasets
>>> bash ./scripts/download_data.sh
# evaluate the model
>>> python ./scripts/evaluate.py --cuda
# Output
Test 1489 molecules in data/test/fda.smi
Average score: 79.40051813170444
Test 1792 molecules in data/test/investigation.smi
Average score: 68.71052120625973
Test 10000 molecules in data/test/chembl.smi
Average score: 64.11581128692627
Test 10000 molecules in data/test/zinc15.smi
Average score: 52.7382759815216
Test 10000 molecules in data/test/gdb17.smi
Average score: 39.37572152862549
AUROC
FDA vs Investigation : 0.789
FDA vs ChEMBL : 0.862
FDA vs ZINC15 : 0.961
FDA vs GDB17 : 0.991
Citation
@article{lee2022drug,
title={Drug-likeness scoring based on unsupervised learning},
author={Lee, Kyunghoon and Jang, Jinho and Seo, Seonghwan and Lim, Jaechang and Kim, Woo Youn},
journal={Chemical science},
volume={13},
number={2},
pages={554--565},
year={2022},
publisher={Royal Society of Chemistry}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file druglikeness-0.2.2.tar.gz.
File metadata
- Download URL: druglikeness-0.2.2.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66888f8e1cb056ce4856091465ec93d2653c285387a55680ab86ea2f1228814c
|
|
| MD5 |
3d7b11dfa7e0b2a94ada48ef34de405c
|
|
| BLAKE2b-256 |
5825506e0b3770c2fb53ece27bf5fa69b1b095d35f2089606b9c9879914e1b09
|
File details
Details for the file druglikeness-0.2.2-py3-none-any.whl.
File metadata
- Download URL: druglikeness-0.2.2-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
603bb26099ab8bbefbc5dae965bddf43603d54d4337f266c860726c809f5b092
|
|
| MD5 |
47d8321482889e9e14998d2c401985a6
|
|
| BLAKE2b-256 |
1de93fc8c18ff7a4d8875ce3739921750e41d79a7853171f316d87c26ef3a083
|