
L'environnement conda peut être construit avec la configuration env.yaml :
conda env create -f env.yaml Les codes sont testés avec CUDA version 11.7 et Pytorch version 1.13.1 .
N'oubliez pas d'activer l'environnement avant d'exécuter les codes:
conda activate PepGLADLa pyrosetta est utilisée pour calculer l'énergie de l'interface des peptides générés. Si cela vous intéresse, veuillez suivre l'instruction ici à installer.
Ces ensembles de données ne sont utilisés que pour les modèles d'analyse comparative. Si vous souhaitez simplement utiliser les poids formés pour l'inférence sur vos cas, il n'est pas nécessaire de télécharger ces ensembles de données.
Les ensembles de données, qui sont initialement introduits dans cet article, sont téléchargés sur Zenodo sur cette URL. Vous pouvez les télécharger comme suit:
mkdir datasets # all datasets will be put into this directory
wget https://zenodo.org/records/13373108/files/train_valid.tar.gz ? download=1 -O ./datasets/train_valid.tar.gz # training/validation
wget https://zenodo.org/records/13373108/files/LNR.tar.gz ? download=1 -O ./datasets/LNR.tar.gz # test set
wget https://zenodo.org/records/13373108/files/ProtFrag.tar.gz ? download=1 -O ./datasets/ProtFrag.tar.gz # augmentation datasettar zxvf ./datasets/train_valid.tar.gz -C ./datasets
tar zxvf ./datasets/LNR.tar.gz -C ./datasets
tar zxvf ./datasets/ProtFrag.tar.gz -C ./datasetspython -m scripts.data_process.process --index ./datasets/train_valid/all.txt --out_dir ./datasets/train_valid/processed # train/validation set
python -m scripts.data_process.process --index ./datasets/LNR/test.txt --out_dir ./datasets/LNR/processed # test set
python -m scripts.data_process.process --index ./datasets/ProtFrag/all.txt --out_dir ./datasets/ProtFrag/processed # augmentation dataset L'indice des données traités pour les divisions de train / validation doit être générée comme suit, ce qui se traduira par datasets/train_valid/processed/train_index.txt et datasets/train_valid/processed/valid_index.txt :
python -m scripts.data_process.split --train_index datasets/train_valid/train.txt --valid_index datasets/train_valid/valid.txt --processed_dir datasets/train_valid/processed/wget http://huanglab.phys.hust.edu.cn/pepbdb/db/download/pepbdb-20200318.tgz -O ./datasets/pepbdb.tgztar zxvf ./datasets/pepbdb.tgz -C ./datasets/pepbdbpython -m scripts.data_process.pepbdb --index ./datasets/pepbdb/peptidelist.txt --out_dir ./datasets/pepbdb/processed
python -m scripts.data_process.split --train_index ./datasets/pepbdb/train.txt --valid_index ./datasets/pepbdb/valid.txt --test_index ./datasets/pepbdb/test.txt --processed_dir datasets/pepbdb/processed/
mv ./datasets/pepbdb/processed/pdbs ./dataset/pepbdb # re-locate./checkpoint/codesign.ckpt./checkpoints/fixseq.ckptLes deux peuvent être téléchargés sur la page de version. Ces points de contrôle ont été formés sur Pepbench.
Prendre ./assets/1ssc_A_B.pdb comme exemple, où la chaîne A est la protéine cible:
# obtain the binding site, which might also be manually crafted or from other ligands (e.g. small molecule, antibodies)
python -m api.detect_pocket --pdb assets/1ssc_A_B.pdb --target_chains A --ligand_chains B --out assets/1ssc_A_pocket.json
# sequence-structure codesign with length in [8, 15)
CUDA_VISIBLE_DEVICES=0 python -m api.run
--mode codesign
--pdb assets/1ssc_A_B.pdb
--pocket assets/1ssc_A_pocket.json
--out_dir ./output/codesign
--length_min 8
--length_max 15
--n_samples 10 Ensuite, 10 générations seront diffusées dans le dossier ./output/codesign .
Prendre ./assets/1ssc_A_B.pdb comme exemple, où la chaîne A est la protéine cible:
# obtain the binding site, which might also be manually crafted or from other ligands (e.g. small molecule, antibodies)
python -m api.detect_pocket --pdb assets/1ssc_A_B.pdb --target_chains A --ligand_chains B --out assets/1ssc_A_pocket.json
# generate binding conformation
CUDA_VISIBLE_DEVICES=0 python -m api.run
--mode struct_pred
--pdb assets/1ssc_A_B.pdb
--pocket assets/1ssc_A_pocket.json
--out_dir ./output/struct_pred
--peptide_seq PYVPVHFDASV
--n_samples 10 Ensuite, 10 conformations seront publiées sous le dossier ./output/struct_pred .
Chaque tâche nécessite les étapes suivantes, que nous avons intégrées dans le script ./scripts/run_exp_pipe.sh :
D'un autre côté, si vous souhaitez évaluer les points de contrôle existants, veuillez suivre les instructions ci-dessous (par exemple, génération de conformation):
# generate results on the test set and save to ./results/fixseq
python generate.py --config configs/pepbench/test_fixseq.yaml --ckpt checkpoints/fixseq.ckpt --gpu 0 --save_dir ./results/fixseq
# calculate metrics
python cal_metrics.py --results ./results/fixseq/results.jsonlExpériences de code sur pepbench:
GPU=0 bash scripts/run_exp_pipe.sh pepbench_codesign configs/pepbench/autoencoder/train_codesign.yaml configs/pepbench/ldm/train_codesign.yaml configs/pepbench/ldm/setup_latent_guidance.yaml configs/pepbench/test_codesign.yamlExpériences de génération de conformation sur Pepbench:
GPU=0 bash scripts/run_exp_pipe.sh pepbench_fixseq configs/pepbench/autoencoder/train_fixseq.yaml configs/pepbench/ldm/train_fixseq.yaml configs/pepbench/ldm/setup_latent_guidance.yaml configs/pepbench/test_fixseq.yamlMerci pour votre intérêt pour notre travail!
N'hésitez pas à poser des questions sur les algorithmes, les codes, ainsi que les problèmes rencontrés pour les exécuter afin que nous puissions rendre les choses plus claires et meilleures. Vous pouvez soit créer un problème dans le repo GitHub, soit nous contacter à [email protected].
@article { kong2024full ,
title = { Full-atom peptide design with geometric latent diffusion } ,
author = { Kong, Xiangzhe and Huang, Wenbing and Liu, Yang } ,
journal = { arXiv preprint arXiv:2402.13555 } ,
year = { 2024 }
}