A 3D Generative Model for Structure-Based Drug Design
📢 News
- Please check out our latest work on structure-based drug design: Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets (ICML 2022)
Installation
Dependency
The code has been tested in the following environment:
Package | Version |
---|---|
Python | 3.8.12 |
PyTorch | 1.10.1 |
CUDA | 11.3.1 |
PyTorch Geometric | 2.0.3 |
RDKit | 2020.09.5 |
OpenBabel | 3.1.0 |
BioPython | 1.79 |
Install via Conda YML FIle (CUDA 11.3)
conda env create -f env_cuda113.yml
conda activate SBDD-3D
Install Manually
conda create --name SBDD-3D python=3.8
conda activate SBDD-3D
conda install pytorch=1.10.1 torchvision torchaudio cudatoolkit=11.3 -c pytorch
conda install pyg -c pyg -c conda-forge
conda install easydict -c conda-forge
conda install biopython -c conda-forge
conda install rdkit openbabel python-lmdb -c conda-forge
conda install tensorboard -c conda-forge
Datasets
Please refer to README.md
in the data
folder.
Sampling
Sampling for Pockets in the Testset
To sample molecules for the i-th pocket in the testset, please first download the trained models following
README.md
in the pretrained
folder. Then, run the following command:
python sample.py ./configs/sample.yml --data_id {i} # Replace {i} with the index of the data. i is between 0 and 99 for the testset.
Sampling for PDB Structures
To generate ligands for your own pocket, you need to provide the PDB
structure file of the protein, the center coordinate of the pocket bounding box, and optionally the side length of the bounding box (default: 22Å).
Example:
python sample_for_pdb.py \
--pdb_path ./example/4yhj.pdb \
--center 32.0,28.0,36.0
Training
The open source repo of our latest work Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets (ICML 2022) is tested for training. You may check it out here: https://github.com/pengxingang/Pocket2Mol
Citation
@inproceedings{luo2021sbdd,
title={A 3D Generative Model for Structure-Based Drug Design},
author={Shitong Luo and Jiaqi Guan and Jianzhu Ma and Jian Peng},
booktitle={Thirty-Fifth Conference on Neural Information Processing Systems},
year={2021}
}