This repository is the official implementation of LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion (NeurIPS 2023). [PDF]
The code has been tested in the following environment:
| Package | Version |
|---|---|
| Python | 3.8 |
| PyTorch | 1.13.1 |
| CUDA | 11.6 |
| PyTorch Geometric | 2.2.0 |
| RDKit | 2022.03.2 |
conda create -n targetdiff python=3.8
conda activate targetdiff
conda install pytorch pytorch-cuda=11.6 -c pytorch -c nvidia
conda install pyg -c pyg
conda install rdkit openbabel tensorboard pyyaml easydict python-lmdb -c conda-forgeWe have provided all data files related to PROTAC-DB dataset in this repo.
- The raw data (.csv files in the data/protac folder) are downloaded from PROTAC-DB.
- The index.pkl file is obtained in playground/check_data.ipynb
- The 3d_index.pkl file containing the conformation generated by RDKit, which is obtained by running the following command:
python scripts/prepare_data.py --raw_path data/protac/index.pkl --dest data/protac/3d_index.pklThe raw ZINC data are same as DiffLinker. We preprocess ZINC data to output an index file by running:
python scripts/prepare_data.py \
--raw_path data/zinc_difflinker \
--dest data/zinc_difflinker/index_full.pkl \
--dataset zinc_difflinker --mode fullWe also provided the preprocessed index file here.
python scripts/train_protac.py configs/training/zinc.yml
We have provided the pretrained checkpoints on ZINC / PROTAC.
python scripts/sample_protac.py configs/sampling/zinc.yml --subset test --start_id 0 --end_id -1 --num_samples 250 --outdir outputs/zinc
We have also provided the sampling results in the same link.
python scripts/eval_protac.py {SAMPLE_RESULT_DIR}
@inproceedings{guan2023linkernet,
title={LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion},
author={Guan, Jiaqi and Peng, Xingang and Jiang, PeiQi and Luo, Yunan and Peng, Jian and Ma, Jianzhu},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023}
}
