Skip to main content

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.856 is the predicted score. The higher the score, the higher the drug-likeness.
  • For fast screening, consider using naive setting, 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

druglikeness-0.2.2.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

druglikeness-0.2.2-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

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

Hashes for druglikeness-0.2.2.tar.gz
Algorithm Hash digest
SHA256 66888f8e1cb056ce4856091465ec93d2653c285387a55680ab86ea2f1228814c
MD5 3d7b11dfa7e0b2a94ada48ef34de405c
BLAKE2b-256 5825506e0b3770c2fb53ece27bf5fa69b1b095d35f2089606b9c9879914e1b09

See more details on using hashes here.

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

Hashes for druglikeness-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 603bb26099ab8bbefbc5dae965bddf43603d54d4337f266c860726c809f5b092
MD5 47d8321482889e9e14998d2c401985a6
BLAKE2b-256 1de93fc8c18ff7a4d8875ce3739921750e41d79a7853171f316d87c26ef3a083

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page