This is a repository of our paper, "3D molecular generative framework for interaction-guided drug design", Nat Commun 15, 2688 (2024). (Link).
Inspired by how the practitioners manage to improve the potency of a ligand toward a target protein, we devised a strategy where prior knowledge of appropriate interactions navigates the ligand generation. Our proposed model, DeepICL (Deep Interaction-Conditioned Ligand generative model), employs an interaction condition that captures the local pocket environment to precisely control the generation process of a ligand inside a binding pocket.
You can install the required packages by running the following commands:
chmod +x install_packages.sh
bash install_packages.sh
It will take a few minutes, have a coffee break!~☕️
First, download the general set of the PDBbind dataset from Link. Then, run the following commands to process the data:
cd data
python preprocessing.py {PDBBIND_DATA_DIR} {PROCESSED_DATA_DIR} {NCPU}
If you are processing data for sampling, you can follow the instructions in this Demo.
For training DeepICL, run the following commands:
cd script
python -u train.py --world_size {NGPU} --save_dir {SAVE_DIR} --data_dir {DATA_DIR} --key_dir {KEY_DIR} --num_layers 6 --num_dense_layers 3 --num_hidden_feature 128 --dist_one_hot_param1 0 10 25 --dist_one_hot_param2 0 15 300 --lr 1e-3 --num_epochs 1001 --save_every 1 --k 8 --vae_loss_beta 0.2 --lr_decay 0.8 --lr_tolerance 4 --lr_min 1e-6 --conditional
For sampling ligands via DeepICL, run the following commands:
cd script
python -u generate.py --ncpu {NCPU} --k 8 --data_dir {DATA_DIR} --key_dir {KEY_DIR} --restart_dir {SAVED_MODEL_DIR} --result_dir {RESULT_DIR} --num_layers 6 --num_dense_layers 3 --num_hidden_feature 128 --num_sample {NUM_SAMPLE} --max_num_add_atom 30 --dist_one_hot_param1 0 10 25 --dist_one_hot_param2 0 15 300 --temperature_factor1 0.1 --temperature_factor2 0.1 --radial_limits 0.9 2.2 --add_noise --pocket_coeff_max 10.0 --pocket_coeff_thr 2.5 --pocket_coeff_beta 0.91 --conditional --use_condition --verbose -y --memo {MEMO for sampling details}
It took about a minute to generate 100 samples with 8 CPUs.
Ligand elaboration with a predefined core is demonstrated in this Demo.
@article{Zhung2024,
title = {3D molecular generative framework for interaction-guided drug design},
volume = {15},
ISSN = {2041-1723},
url = {http://dx.doi.org/10.1038/s41467-024-47011-2},
DOI = {10.1038/s41467-024-47011-2},
number = {1},
journal = {Nature Communications},
publisher = {Springer Science and Business Media LLC},
author = {Zhung, Wonho and Kim, Hyeongwoo and Kim, Woo Youn},
year = {2024},
month = mar
}