Views
No views yet
| Models | Short-chains - PPL ↓ | Short-chains - MSRR ↓ | Single-chains - PPL ↓ | Single-chains - MSRR ↓ | Full - PPL ↓ | Full - MSRR ↓ |
|---|---|---|---|---|---|---|
| GVP | 7.23 | 30.60 | 7.84 | 28.95 | 5.36 | 39.47 |
| ProteinMPNN | 6.21 | 36.35 | 6.68 | 34.43 | 4.61 | 45.96 |
| ProteinMPNN-CMLM | 7.16 | 35.42 | 7.25 | 35.71 | 5.03 | 48.62 |
| PiFold | 6.04 | 39.84 | 6.31 | 38.53 | 4.55 | 51.66 |
| LM-Design | 7.01 | 35.19 | 6.58 | 40.00 | 4.41 | 54.41 |
| DPLM | - | - | - | - | - | 54.54 |
| GB.ProteinIF | 4.29 | 38.46 | 3.18 | 58.87 | 3.20 | 58.60 |
# clone the ModelGenerator repository
git clone https://github.com/genbio-ai/ModelGenerator.git
# cd to "ModelGenerator" folder where you should find the "Dockerfile"
cd ModelGenerator
# create a docker image
docker build -t aido .
# create a local folder as ModelGenerator's data directory
mkdir -p $HOME/mgen_data
# run a container
docker run -d --runtime=nvidia -it -v "$(pwd):/workspace" -v "$HOME/mgen_data:/mgen_data" aido /bin/bash
# find the container ID
docker ps # this will print the running containers and their IDs
# execute the container with ID=<container_id>
docker exec -it <container_id> /bin/bash # now you should be inside the docker container
# test if you can access the nvidia GPUs
nvidia-smi # this should print the GPUs' detailschunk_<chunk_ID>.bin) from here. Place them inside the directory ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/model_chunks and merge them.mkdir -p ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/
huggingface-cli download genbio-ai/GB.ProteinIF-16B \
--repo-type model \
--local-dir ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/
# change directory to the folder: /workspace/experiments/GB.Protein/protein_inverse_folding/
cd /workspace/experiments/GB.Protein/protein_inverse_folding/
# Merge chunks
python merge_ckpt.py ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/model_chunks ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/model.ckpt${MGEN_DATA_DIR}/modelgenerator/datasets/protein_inv_fold/cath_4.2/. (Note that it was originally preprocessed by Generative Models for Graph-Based Protein Design (Ingraham et al, NeurIPS'19), and we further preprocessed it to suit our pipeline.)DATA_DIR=${MGEN_DATA_DIR}/modelgenerator/datasets/protein_inv_fold/cath_4.2
mkdir -p ${DATA_DIR}/
huggingface-cli download genbio-ai/protein-inverse-folding \
--repo-type dataset \
--local-dir ${MGEN_DATA_DIR}/modelgenerator/datasets/protein_inv_foldDATA_DIR=${MGEN_DATA_DIR}/modelgenerator/datasets/protein_inv_fold/custom_data ## The directory where you want to download the PDB/CIF file. Feel free to change.
PDB_ID=5YH2 ## example protein's PDB ID
CHAIN_ID=A ## example protein's CHAIN ID
mkdir -p ${DATA_DIR}/
wget https://files.rcsb.org/download/${PDB_ID}.cif -P ${DATA_DIR}/python preprocess_PDB.py ${DATA_DIR}/${PDB_ID}.cif ${CHAIN_ID} ${DATA_DIR}//workspace/experiments/GB.Protein/protein_inverse_folding folder and run the following script:cd /workspace/experiments/GB.Protein/protein_inverse_folding/
# Run inference
mgen test --config protein_inv_fold_test.yaml \
--trainer.default_root_dir ${MGEN_DATA_DIR}/modelgenerator/logs/protein_inv_fold/ \
--ckpt_path ${MGEN_DATA_DIR}/modelgenerator/huggingface_models/protein_inv_fold/GB.ProteinIF-16B/model.ckpt \
--trainer.devices 0, \
--data.path ${DATA_DIR}/./proteinIF_outputs/. There will be two output files:
designed_sequences.pkl,results_acc_<median_accuracy>.txt (where median accuracy is the median accuracy calculated over all the test samples)designed_sequences.pkl"true_seq") and predicted sequences by our method ("pred_seq"), stored as numpy arrays. An example:{
'true_seq': [
array([[ 4, 8, 4, 3, 12, 5, 2, 11, 16, 15, 5, 1, 11, ...]]), ...
],
'pred_seq': [
array([[ 8, 2, 4, 3, 10, 6, 2, 11, 16, 15, 6, 1, 11, ...]]), ...
]
}results_acc_<median_accuracy>.txtname=<PDB_ID>.<CHAIN_ID>'), length of the squence (as 'L=<length_of_sequence>'), and the recovery rate/accuracy for that protein sequence (as 'Recovery=<recovery_rate_of_sequence>')true:<sequence_of_amino_acids>)pred:<sequence_of_amino_acids>)>name=3fkf.A | L=141 | Recovery=0.5957446694374084
true:VTVGKSAPYFSLPNEKGEKLSRSAERFRNRYLLLNFWASWCDPQPEANAELKRLNKEYKKNKNFAMLGISLDIDREAWETAIKKDTLSWDQVCDFTGLSSETAKQYAILTLPTNILLSPTGKILARDIQGEALTGKLKELL
pred:TAVGDEAPYFELPDLEGKKLSLDSEEFKNKYLLLDFWASWCLPCREEIAELKELYRRFAKNKKFAILGVSADTDKEAWLKAVKEDNLRWTQVSDFKGWDSEVFKNYNVQSLPENILLSPEGKILARGIRGEALRNKLKELL
>name=2d9e.A | L=121 | Recovery=0.7685950398445129
true:GSSGSSGFLILLRKTLEQLQEKDTGNIFSEPVPLSEVPDYLDHIKKPMDFFTMKQNLEAYRYLNFDDFEEDFNLIVSNCLKYNAKDTIFYRAAVRLREQGGAVLRQARRQAEKMGSGPSSG
pred:GSSGSSGRLTLLRETLEQLQERDTGWVFSEPVPLSEVPDYLDVIDHPMDFSTMRRKLEAHRYLSFDEFERDFNLIVENCRKYNAKDTVFYRAAVRLQAQGGAILRKARRDVESLGSGPSSG