https://github.com/divelab/GraphBP
Official implementation of "Generating 3D Molecules for Target Protein Binding" [ICML2022 Long Presentation]
https://github.com/divelab/GraphBP
Last synced: about 1 month ago
JSON representation
Official implementation of "Generating 3D Molecules for Target Protein Binding" [ICML2022 Long Presentation]
- Host: GitHub
- URL: https://github.com/divelab/GraphBP
- Owner: divelab
- License: gpl-3.0
- Created: 2022-04-18T19:22:25.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-20T16:35:44.000Z (almost 3 years ago)
- Last Synced: 2025-04-27T19:45:50.557Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 8.83 MB
- Stars: 107
- Watchers: 2
- Forks: 24
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Update: Our code has been moved into [AIRS](https://github.com/divelab/AIRS/tree/main/OpenMI/GraphBP). Please refer to AIRS for any future updates. This repo is no longer maintained.
# Generating 3D Molecules for Target Protein Binding
This is the official implementation of the **GraphBP** method proposed in the following paper.
Meng Liu, Youzhi Luo, Kanji Uchino, Koji Maruhashi, and Shuiwang Ji. "[Generating 3D Molecules for Target Protein Binding](https://arxiv.org/abs/2204.09410)". [ICML 2022 **Long Presentation**]

## Requirements
We include key dependencies below. The versions we used are in the parentheses. Our detailed environmental setup is available in [environment.yml](https://github.com/divelab/GraphBP/blob/main/GraphBP/environment.yml).
* PyTorch (1.9.0)
* PyTorch Geometric (1.7.2)
* rdkit-pypi (2021.9.3)
* biopython (1.79)
* openbabel (3.3.1)
## Preparing Data
* Download and extract the CrossDocked2020 dataset:
```linux
wget https://bits.csb.pitt.edu/files/crossdock2020/v1.1/CrossDocked2020_v1.1.tgz -P data/crossdock2020/
tar -C data/crossdock2020/ -xzf data/crossdock2020/CrossDocked2020_v1.1.tgz
wget https://bits.csb.pitt.edu/files/it2_tt_0_lowrmsd_mols_train0_fixed.types -P data/crossdock2020/
wget https://bits.csb.pitt.edu/files/it2_tt_0_lowrmsd_mols_test0_fixed.types -P data/crossdock2020/
```
**Note**: (1) The unzipping process could take a lot of time. Unzipping on SSD is much faster!!! (2) Several samples in the training set cannot be processed by our code. Hence, we recommend replacing the `it2_tt_0_lowrmsd_mols_train0_fixed.types`
file with a new one, where these samples are deleted. The new one is available [here](https://github.com/divelab/GraphBP/blob/main/GraphBP/data/crossdock2020/it2_tt_0_lowrmsd_mols_train0_fixed.types).
* Split data files:
```linux
python scripts/split_sdf.py data/crossdock2020/it2_tt_0_lowrmsd_mols_train0_fixed.types data/crossdock2020
python scripts/split_sdf.py data/crossdock2020/it2_tt_0_lowrmsd_mols_test0_fixed.types data/crossdock2020
```
## Run
* Train GraphBP from scratch:
```linux
CUDA_VISIBLE_DEVICES=${you_gpu_id} python main.py
```
**Note**: GraphBP can be trained on a `48GB GPU` with `batchsize=16`. Our trained model is available [here](https://github.com/divelab/GraphBP/blob/main/GraphBP/trained_model/model_33.pth).
* Generate atoms in the 3D space with the trained model:
```linux
CUDA_VISIBLE_DEVICES=${you_gpu_id} python main_gen.py
```
* Postprocess and then save the generated molecules:
```linux
CUDA_VISIBLE_DEVICES=${you_gpu_id} python main_eval.py
```
## Reference
```
@inproceedings{liu2022graphbp,
title={Generating 3D Molecules for Target Protein Binding},
author={Meng Liu and Youzhi Luo and Kanji Uchino and Koji Maruhashi and Shuiwang Ji},
booktitle={International Conference on Machine Learning},
year={2022}
}
```
## Acknowledgments
This work was supported in part by National Science Foundation grants IIS-2006861 and IIS-1908220.