💥 The official repository of our paper "Deep reinforcement learning as an interaction agent to steer fragment-based 3D molecular generation for protein pockets".
🌟 We have presented the conda environment file in ./environment.yml
.
🌟 We have evaluated our models using external tools, including: Qvina, Pyscreener.
conda create -n AMG python=3.7
conda activate AMG
conda install pytorch==1.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
conda install -c conda-forge pdbfixer
conda install conda-forge::openbabel
pip install tensorboard==1.15.0
pip isntall protobuf==3.19.6
pip install networkx==2.6.3
pip install rdkit==2023.3.2
pip install biopython==1.81
pip install pyscreener==1.1.1
pip install -U "ray[default]"
cd ADFRsuite_x86_64Linux_1.0
./install.sh -d myFolder -c 0
cd spinningup
pip install -e .
🌟 We pre-trained our model using the natural product dataset COCONUT and the Pocket3D dataset collected from the Protein Data Bank. The dataset used for fine-tuning was obtained from CrossDocked2020.
🌟 To facilitate your implementation, we have provided the raw datasets used by AMG. Download the dataset archive from AMG-DATA.
Ligand encoder and fragment-based decoder pre-training:
python scripts/pretrain_ligand.py
Pocket encoder pre-training:
python scripts/pretrain_pocket.py
The first training stage:
python scripts/train_rec.py
The second training stage:
python scripts/train_agent.py
python scripts/sample_testset.py --config configs/rl.yml --start_index 0 --end_index 99
python scripts/evaluate_amg.py
We provide the sampling results of our model and Pocket2Mol, TargetDiff, DecompDiff, ResGen, FLAG baselines here.
You can directly reproduce the results reported in the paper quickly with summary.ipynb.