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-forge
We 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.pkl
Note that RDKit version may influence the PROTAC-DB dataset processing and splitting. We provided the processed data and split file here
The 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 full
We 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.