Official implementation of NeurIPS'24 paper "Bridge-IF: Learning Inverse Protein Folding with Markov Bridges". This code is built on top of the LM-Design repo.
# clone project
git clone --recursive https://github.com/violet-sto/Bridge-IF.git
cd Bridge-IF
# create conda virtual environment
conda env create -f env.yml
conda activate BridgeIF
pip install -r requirements.txtPretrained structure encoder (Zenodo)
Download the preproceesd CATH datasets
- CATH 4.2 dataset provided by Generative Models for Graph-Based Protein Design (Ingraham et al, NeurIPS'19)
- CATH 4.3 dataset provided by Learning inverse folding from millions of predicted structures (Hsu et al, ICML'22)
bash scripts/download_cath.shGo check configs/datamodule/cath_4.*.yaml and set data_dir to the path of the downloaded CATH data.
Dowload PDB complex data (multichain)
This dataset curated protein (multichain) complexies from Protein Data Bank (PDB). It is provided by Robust deep learning-based protein sequence design using ProteinMPNN. See their github page for more details.
bash scripts/download_multichain.shGo check configs/datamodule/multichain.yaml and set data_dir to the path of the downloaded multichain data.
In the following sections, we will use CATH 4.2 dataset as an runing example.
model=bridge_if_esm1b_650m_pifold
exp=fixedbb/${model}
dataset=cath_4.2
name=fixedbb/${dataset}/${model}
python ./train.py \
experiment=${exp} datamodule=${dataset} name=${name} \
task.generator.diffusion_steps=25 \
logger=wandb trainer=ddp_fp16dataset=cath_4.2
name=fixedbb/${dataset}/bridge_if_esm1b_650m_pifold
exp_path=logs/${name}
python ./test.py \
experiment_path=${exp_path} \
data_split=test ckpt_path=best.ckpt mode=predict@inproceedings{
zhu2024bridgeif,
title={Bridge-{IF}: Learning Inverse Protein Folding with Markov Bridges},
author={Yiheng Zhu and Jialu Wu and Qiuyi Li and Jiahuan Yan and Mingze Yin and Wei Wu and Mingyang Li and Jieping Ye and Zheng Wang and Jian Wu},
booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},
year={2024},
url={https://openreview.net/forum?id=Q8yfhrBBD8}
}