Predicting mutational effects on protein-protein
binding via a side-chain diffusion probabilistic model.
Shiwei Liu*, Tian Zhu*, Milong Ren, Chungong Yu, Dongbo Bu, Haicang Zhang#
*These authors contribute equally.
#Correspondence should be addressed to H.Z.
Institute of Computing Technology, Chinese Academy of Sciences.
Paper link on NeurIPS 2023
git clone https://github.com/oxcsml/geomstats.git
conda create -n DiffAffinity python=3.9
conda activate DiffAffinity
pip install -r requirements.txt
pip install jaxlib==0.4.1+cuda11.cudnn86 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
GEOMSTATS_BACKEND=jax pip install -e geomstats
pip install -e .
requirements.txt
contains the core requirements for running the code in theriemmanian_score_sde
andDiffAffinity
packages. NOTE: you may need to alter the jax versions here to match your setup.
Protein Structures and SKEMPI v2 dataset can be downloaded use following scripts.
Dataset | Download Script |
---|---|
PDB-REDO | data/get_pdbredo.sh |
SKEMPI v2 | data/get_skempi_v2.sh |
The data
folder contains the data for downstream experiments.
File | Useage |
---|---|
DDG_6m0j.csv | Free energy changes ( |
6m0j.pdb | Protein experimental structure of Wuhan-Hu-1 RBD (pid: 6M0J) |
7FAE_RBD_Fv.pdb | Protein experimental structure of the SARS-CoV-2 virus spike protein (pid: 7FAE) |
Trained model weights are available here Google Driver
bash SidechainDiff_train.sh
bash SidechainDiff_test.sh
Sample results of torsion angles can be found in workdir
.
parse_atom14.ipynb can transform torsion angles to atom14 coordinates.
python DiffAffinity.py ./context_generator/configs/train/da_ddg_skempi.yml --idx_cvfolds 0
The --idx_cvfolds
is optional (0,1,2) and the default setting is 0
Because we have three DiffAffinity models, you need to change the checkpoint in 6m0j.yml and 7FAE_RBD_Fv_mutation.yml for downstream tasks
python prediction.py ./context_generator/configs/inference/6m0j.yml
python prediction.py ./context_generator/configs/inference/7FAE_RBD_Fv_mutation.yml
We acknowledge that the part of the Riemainn SDE code is adapted from riemannian-score-sde. Thanks to the authors for sharing their code.
Feel free to cite this work if you find it useful to you!
@inproceedings{
liu2023predicting,
title={Predicting mutational effects on protein-protein binding via a side-chain diffusion probabilistic model},
author={Shiwei Liu and Tian Zhu and Milong Ren and Yu Chungong and Dongbo Bu and Haicang Zhang},
booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
year={2023},
url={https://openreview.net/forum?id=BGP5Vjt93A}
}