Skip to content

The official implementation of LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion (NeurIPS 2023 Spotlight)

License

Notifications You must be signed in to change notification settings

eugenebang/LinkerNet_repo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion

License: MIT

This repository is the official implementation of LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion (NeurIPS 2023). [PDF]

Installation

Dependency

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

Install via Conda and Pip

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

Data Preprocess

PROTAC-DB

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

ZINC

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.


Training

python scripts/train_protac.py configs/training/zinc.yml

We have provided the pretrained checkpoints on ZINC / PROTAC.

Sampling

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.

Evaluation

python scripts/eval_protac.py {SAMPLE_RESULT_DIR}

Citation

@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}
}

About

The official implementation of LinkerNet: Fragment Poses and Linker Co-Design with 3D Equivariant Diffusion (NeurIPS 2023 Spotlight)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.5%
  • Jupyter Notebook 10.5%