ak422 / DDAffinity

Apache License 2.0
12 stars 2 forks source link

DDAffinity-network


Description

This repo contains code for Predicting the changes in binding affinity of multiple point mutations using protein three-dimensional structure by Guanglei Yu, Qichang Zhao, Xuehua Bi and Jianxin Wang.

We proposed a ProteinMPNN-inspired $\Delta\Delta G$ predictor using 3D structure and 2D sequences of wildtype $\mathcal{WT}$ and mutant $\mathcal{MT}$ protein complex as input. The mutant structure is generated by BuildModel and Optimize module using FoldX 5.0.

Overview of our DDAffinity architecture is shown below.

cover

Install

DDAffinity Environment

conda env create -f env.yml -n DDAffinity
conda activate DDAffinity

The default PyTorch version is 1.12.1 and cudatoolkit version is 11.3. They can be changed in env.yml.

Preparation of processed dataset

We generated all protein mutant complex PDB data and wild-type complex PDB data from PDBs file data/SKEMPI2/PDBs, rde/datasets/PDB_generate.py, data/SKEMPI2/SKEMPI2.csv, and FoldX tool. Then we use rde/datasets/skempi_parallel.py to transform the PDB files of wild-type and mutant complexes into processed dataset SKEMPI2_cache.

python PDB_generate.py 
python skempi_parallel.py --reset

Datasets

Dataset Download Script Processed Dataset
SKEMPI v2 data/get_skempi_v2.sh data/SKEMPI2/SKEMPI2_cache
SKEMPI2.csv SKEMPI2_cache
M1707.csv M1707_cache
S1131.csv S1131_cache
M1340.csv M1340_cache
M595.csv M595_cache
S494.csv S494_cache
S285.csv S285_cache
Ssys.csv Ssys_cache

Trained Weights

The overall SKEMPI2 trained weights is located in: DDAffinity

The M1340 trained weights is located in: M1340

Usage

Evaluate DDAffinity
python test_DDAffinity.py ./configs/train/mpnn_ddg.yml --device cuda:0

Blind testing: non-redundant blind testing on the multiple point mutation dataset M595

python case_study.py ./configs/inference/blind_testing.yml --device cuda:0

Case Study 1: Predict Mutation Effects for SARS-CoV-2 RBD

python case_study.py ./configs/inference/case_study_1.yml --device cuda:0

Case Study 2: Human Antibody Optimization

python case_study.py ./configs/inference/case_study_2.yml --device cuda:0

Train DDAffinity

python train_DDAffinity.py ./configs/train/mpnn_ddg.yml --num_cvfolds 10 --device cuda:0

Acknowledgements

We acknowledge that parts of our code is adapted from Rotamer Density Estimator (RDE). Thanks to the authors for sharing their codes.