Skip to content

Official implementation of NeurIPS'24 paper "Bridge-IF: Learning Inverse Protein Folding with Markov Bridges"

License

Notifications You must be signed in to change notification settings

violet-sto/Bridge-IF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bridge-IF

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.

Installation

# 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.txt

Structure-based protein sequence design (inverse folding)

Pretrained structure encoder (Zenodo)

Data

Download the preproceesd CATH datasets

bash scripts/download_cath.sh

Go 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.sh

Go check configs/datamodule/multichain.yaml and set data_dir to the path of the downloaded multichain data.

Training Bridge-IF

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_fp16

Evaluation/inference on valid/test datasets

dataset=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

Citation

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

About

Official implementation of NeurIPS'24 paper "Bridge-IF: Learning Inverse Protein Folding with Markov Bridges"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published