Home

Awesome

A 3D Generative Model for Structure-Based Drug Design

<img src="./assets/teaser.png" alt="teaser" />

[Paper] [Slides]

📢 News

Installation

Dependency

The code has been tested in the following environment:

PackageVersion
Python3.8.12
PyTorch1.10.1
CUDA11.3.1
PyTorch Geometric2.0.3
RDKit2020.09.5
OpenBabel3.1.0
BioPython1.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
<img src="./assets/bounding_box.png" alt="bounding box" width="70%" />

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}
}