| { |
| "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" |
| } |
| } |
|
|