{ "framework": "PyTorch", "task": "protein-language-modeling", "model": "SaProt", "description": "Structure-aware protein language modeling with amino-acid and Foldseek 3Di tokens for representation extraction, mutation-effect prediction, inverse folding, pretraining, downstream fine-tuning, and benchmark evaluation.", "subtasks": [ "structure-aware-sequence-encoding", "masked-language-model-inference", "protein-embedding-extraction", "zero-shot-mutation-effect-prediction", "protein-inverse-folding", "saprot-pretraining", "downstream-finetuning", "benchmark-evaluation", "esm2-baseline-evaluation" ], "entrypoints": { "train": "scripts/training.py", "pretrain_config": "conf/pretrain/saprot.yaml", "thermos_finetune_config": "conf/Thermostability/saprot.yaml", "scnet_thermos_finetune_config": "conf/scnet/Thermostability_saprot_1gpu.yaml", "mutation_zeroshot": "scripts/mutation_zeroshot.py", "proteingym_config": "conf/ProteinGym/saprot.yaml", "clinvar_config": "conf/ClinVar/saprot.yaml", "scnet_clinvar_config": "conf/scnet/ClinVar_saprot.yaml", "clinvar_auc": "scripts/compute_clinvar_auc.py", "environment_setup": "scripts/environment.sh" }, "packages": [ "model", "scripts.dataset", "scripts.utils" ], "configs": { "root": "conf", "saprot_tasks": [ "conf/Thermostability/saprot.yaml", "conf/EC/saprot.yaml", "conf/GO/MF/saprot.yaml", "conf/GO/BP/saprot.yaml", "conf/GO/CC/saprot.yaml", "conf/MetalIonBinding/saprot.yaml", "conf/HumanPPI/saprot.yaml", "conf/Contact/saprot.yaml", "conf/DeepLoc/cls2/saprot.yaml", "conf/DeepLoc/cls10/saprot.yaml", "conf/ProteinGym/saprot.yaml", "conf/ClinVar/saprot.yaml" ], "esm2_baselines": [ "conf/Thermostability/esm2.yaml", "conf/EC/esm2.yaml", "conf/GO/MF/esm2.yaml", "conf/GO/BP/esm2.yaml", "conf/GO/CC/esm2.yaml", "conf/MetalIonBinding/esm2.yaml", "conf/HumanPPI/esm2.yaml", "conf/Contact/esm2.yaml", "conf/DeepLoc/cls2/esm2.yaml", "conf/DeepLoc/cls10/esm2.yaml", "conf/ProteinGym/esm2.yaml", "conf/ClinVar/esm2.yaml" ], "scnet": [ "conf/scnet/Thermostability_saprot_1gpu.yaml", "conf/scnet/ClinVar_saprot.yaml" ] }, "example_data": [ "scripts/example/8ac8.cif" ], "data_roots": { "downstream_lmdb": "scripts/LMDB", "pretrain_lmdb": "scripts/LMDB/AF2_Uniref50/foldseek", "proteingym": "scripts/LMDB/ProteinGym/substitutions", "clinvar": "scripts/LMDB/ClinVar", "thermos": "scripts/LMDB/Thermostability/foldseek" }, "model_cache": "weight/PLMs", "default_model": "weight/PLMs/SaProt_650M_AF2", "optional_models": { "esm2_650m": "weight/PLMs/esm2_t33_650M_UR50D", "saprot_inverse_folding": "weight/PLMs/SaProt_650M_AF2_inverse_folding" }, "external_tools": { "foldseek": "scripts/bin/foldseek" }, "outputs": { "finetuned_checkpoints": "weight/{task}/*.pt", "proteingym_scores": "output/ProteinGym/SaProt_650M_AF2.tsv", "clinvar_predictions": "output/ClinVar/SaProt_650M_AF2", "scnet_clinvar_predictions": "output/ClinVar/SaProt_650M_AF2_scnet" }, "quick_commands": { "setup": "bash scripts/environment.sh", "train_thermostability": "python scripts/training.py -c conf/Thermostability/saprot.yaml", "train_thermostability_scnet_1gpu": "python scripts/training.py -c conf/scnet/Thermostability_saprot_1gpu.yaml", "zeroshot_proteingym": "python scripts/mutation_zeroshot.py -c conf/ProteinGym/saprot.yaml", "zeroshot_clinvar": "python scripts/mutation_zeroshot.py -c conf/ClinVar/saprot.yaml", "compute_clinvar_auc": "python scripts/compute_clinvar_auc.py -c conf/ClinVar/saprot.yaml" } }