ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SaProt 上手指南:如何让蛋白质语言模型读懂蛋白质结构

SaProt 上手指南:如何让蛋白质语言模型读懂蛋白质结构 SaProt 上手指南如何让蛋白质语言模型读懂蛋白质结构【免费下载链接】SaProtSaprot: Protein Language Model with Structural Alphabet (AA3Di)项目地址: https://gitcode.com/gh_mirrors/sa/SaProtSaProt 是一个结构感知的蛋白质语言模型把蛋白质序列和三维结构喂进同一组词元里学习。一句话定位一个看得见结构的 ESM-2适合想预测蛋白质功能、评估突变效应的开发者。为什么值得尝试和只处理氨基酸字符串的序列模型不同SaProt 会把蛋白质的三维结构也编码成离散的 3D 令牌与序列令牌交错送入 Transformer让模型在预训练阶段就学会结构与序列之间的对应关系。几个值得留意的点结构感知词汇表每个氨基酸搭配一个离散的 3Di 结构令牌低置信度区域可以用#标记序列里直接写出来即可大规模预训练打底SaProt 在数千万条 AlphaFold2 预测结构上完成预训练不微调也能直接用于下游任务两种规格可选提供 35M 和 650M 两个参数规模的模型按显卡显存挑一个就行有奖项背书相关论文是 ICLR 2024 spotlight在 ClinVar、ProteinGym 等任务上实测全面超过同规模的 ESM-2。五分钟跑起来先拿到代码、建好环境全程就这 4 行命令git clone https://gitcode.com/gh_mirrors/sa/SaProt conda create -n SaProt python3.10 conda activate SaProt bash environment.sh最后一条bash environment.sh会替你装完全部 Python 依赖之后只要把 Hugging Face 上下载的 SaProt 权重放进本地目录即可。加载模型有两条并行路线用 Hugging Face 加载from transformers import EsmTokenizer, EsmForMaskedLM model_path /your/path/to/SaProt_650M_AF2 tokenizer EsmTokenizer.from_pretrained(model_path) model EsmForMaskedLM.from_pretrained(model_path) model.to(cuda) seq M#EvVpQpL#VyQdYaKv inputs tokenizer(seq, return_tensorspt) inputs {k: v.to(cuda) for k, v in inputs.items()} print(model(**inputs).logits.shape)这段代码做的事把一条结构感知序列分词、送进模型跑一次前向最后打印 logits 形状验证通路。注意#表示 pLDDT 70 的低置信结构区域。用 ESM 仓库加载如果你已经习惯 ESM 的写法仓库内置了一个加载函数直接吃SaProt_650M_AF2.pt权重文件from utils.esm_loader import load_esm_saprot model, alphabet load_esm_saprot(/your/path/to/SaProt_650M_AF2.pt)返回模型和 alphabet 两个对象后面按 ESM 生态的惯用方式写下游逻辑就行。拿它干这几件事把结构文件变成结构感知序列模型的输入不是 PDB 文件本身而是氨基酸 结构令牌的组合序列。仓库里封装好的get_struc_seq可以一步转完需要把 foldseek 二进制文件放进bin文件夹from utils.foldseek_util import get_struc_seq pdb_path example/8ac8.cif parsed_seqs get_struc_seq(bin/foldseek, pdb_path, [A], plddt_maskFalse)[A] seq, foldseek_seq, combined_seq parsed_seqs print(seq, foldseek_seq, combined_seq)它从 A 链读出三样东西纯氨基酸序列、结构令牌序列、两者拼好的组合序列后者直接就是模型要吃的输入。预测某个突变会不会影响功能想知道V3A 这个点突变伤害大不大用仓库自带的突变预测模型做 zero-shot 打分即可不用任何微调数据from model.saprot.saprot_foldseek_mutation_model import SaprotFoldseekMutationModel config { foldseek_path: None, config_path: /your/path/to/SaProt_650M_AF2, load_pretrained: True, } model SaprotFoldseekMutationModel(**config) model.eval().to(cuda) mut_value model.predict_mut(M#EvVpQpL#VyQdYaKv, V3A) print(mut_value)传入结构感知序列和突变位点如V3A输出就是突变效应得分位点写成V3A:Q4M还能评估组合突变。继续往前走上手之后这份延伸阅读清单能帮你把生态串起来ESM-2纯序列的蛋白质语言模型是 SaProt 最直接的对照基线仓库config/下每个任务都备好了 esm2.yaml 与 saprot.yaml 两份同规格配置方便你复现对比AlphaFold2SaProt 预训练结构数据的来源给自己的蛋白补结构预测时会用到ProteinGym蛋白质语言模型的公开基准平台SaProt 650M 在该榜单上表现突出是检验突变预测能力的好去处SaprotHub面向蛋白质语言模型训练的社区平台带教程和 ColabSaprot 在线 notebook适合不想从头搭训练流程的同学想自己练手的话仓库config/目录里从预训练到 ClinVar、Thermostability 等各下游任务都放了现成的 yaml配合scripts/training.py就能启动训练。【免费下载链接】SaProtSaprot: Protein Language Model with Structural Alphabet (AA3Di)项目地址: https://gitcode.com/gh_mirrors/sa/SaProt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表