Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets
[paper]
🚧This is preview version. Still in progress …
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 | 1.7.2 |
RDKit | 2022.09.5 |
NOTE: Current implementation relies on PyTorch Geometric (PyG) < 2.0.0. We will fix compatability issues for the latest PyG version in the future.
Install via conda yaml file (cuda 11.3)
conda env create -f env_cuda113.yml
conda activate Pocket2Mol
Manually installation
conda create -n Pocket2Mol python=3.8
conda activate Pocket2Mol
conda install pytorch==1.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.10.1+cu113.html
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.10.1+cu113.html
pip install torch-cluster -f https://data.pyg.org/whl/torch-1.10.1+cu113.html
pip install torch-geometric==1.7.2
conda install -c conda-forge rdkit
conda install pyyaml easydict python-lmdb -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 ckpt
folder.
Then, run the following command:
python scripts/sample.py --data_id {i} --outdir ./outputs # Replace {i} with the index of the data. i should be between 0 and 119 for the testset.
We recommend to specify the GPU device number and restrict the cpu cores using command like:
CUDA_VISIBLE_DIVICES=0 taskset -c 0 python scripts/sample.py --data_id 0 --outdir ./outputs
Sampling for PDB pockets
TODO
Training
TODO
Citation
@inproceedings{peng2022pocket2mol,
title={Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets},
author={Xingang Peng and Shitong Luo and Jiaqi Guan and Qi Xie and Jian Peng and Jianzhu Ma},
booktitle={International Conference on Machine Learning},
year={2022}
}