Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/luost26/3D-Generative-SBDD

💊 A 3D Generative Model for Structure-Based Drug Design (NeurIPS 2021)
https://github.com/luost26/3D-Generative-SBDD

Last synced: 24 days ago
JSON representation

💊 A 3D Generative Model for Structure-Based Drug Design (NeurIPS 2021)

Awesome Lists containing this project

README

        

# A 3D Generative Model for Structure-Based Drug Design

teaser

[[Paper](https://arxiv.org/abs/2203.10446)]
[[Slides](https://drive.google.com/file/d/1PnypgrWqZAnaONy_Ccq-fmTDo4IRJpX1/view?usp=sharing)]

## 📢 News

- Please check out our latest work on structure-based drug design: *Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets* (ICML 2022)
- Code: https://github.com/pengxingang/Pocket2Mol
- Paper: https://arxiv.org/abs/2205.07249

## 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)
```bash
conda env create -f env_cuda113.yml
conda activate SBDD-3D
```

### Install Manually
```bash
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`](./data/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`](./pretrained/README.md) in the `pretrained` folder. Then, run the following command:
```bash
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:
```bash
python sample_for_pdb.py \
--pdb_path ./example/4yhj.pdb \
--center 32.0,28.0,36.0
```

bounding box

## Training

The open source repo of our latest work [Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets](https://arxiv.org/abs/2205.07249) (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}
}
```