2026-10-23
ProtTale 从序列写 Swiss-Prot 风格功能描述,并用只看序列的 pJay 估计该不该信。1031 个未见酶上四个模型准确率打平,短蛋白过滤后 ProtTale 从 25.8% 升到 45.9%。
UniProtKB 202602 里,人工校对覆盖已知蛋白的 0.38%。其余最多是计算注释,或者根本没有注释。同源搜索在参考集里已经有近邻时很好用,它写不出参考集里没有的功能,也会把序列像、功能不像的蛋白标错。
蛋白到文本的模型改用自然语言写功能,读起来都像那么回事。BLEU 和 ROUGE 奖励的是词面重叠,BERTScore 给一个很难落到具体生化论断上的语义分。把自由文本再抽回 Gene Ontology,噪声大到能吞掉模型之间的差距。同一套抽取打在正确的 Swiss-Prot 描述上,和条目自己的分子功能 GO 相比,Wang 相似度也只有 0.67。缺的那三分之一丢在映射里,不是丢在模型里。
ProtTale 来自 Emory 的 Bromberg 组与 Yang 组,合作者在克拉科夫的 Sano,2026 年 10 月 20 日上 bioRxiv。ESM-C 300M 把序列编成残基嵌入,输入截到 1024,注意力显存随长度平方增长。Q-Former 从 PubMedBERT 初始化,每层加交叉注意力,K=4 个 query 把变长残基压成定长向量。Galactica-1.3B 用 LoRA 微调,按这些向量写 Swiss-Prot 风格功能描述,上限 128 个 token。可靠性头在主干冻住之后才拟合。
第一段监督是 MIPS,机器推断的蛋白相似。ProtT5 嵌入 520 万条至少有 10 个同源的 UniRef90 蛋白,余弦相似度大于 0.77 的边有 55 亿条,聚成 120 万个社区。同社区为正对,不同社区为负对。负对只表示嵌入里看不出相近。1000 对带注释的同社区 Swiss-Prot 蛋白,平均序列一致性 37.5%(95% 区间 36.5%–38.6%),58.8% 的 TM-score 至少 0.7,63.1% 的 EC 第四级相同。
对齐是师生结构。共享 Q-Former 用两条人工功能描述和 MIPS 标签,靠温度缩放的余弦相似度塑文本空间。序列走 ESM-C 再进同一个 Q-Former,点对损失和批内相似度矩阵把序列侧拉向文本侧。序列侧梯度在 Q-Former 停下,免得拽歪文本空间。配对来自嵌入几何,文本仍是校对过的。长于 1200 残基,或 UniRef90 簇成员少于 10 的条目,没有第一段配对。
第二段冻住编码器,训练 Q-Former 和 Galactica 的 LoRA,用教师强制的自回归交叉熵拟合功能描述。训练集 207197 条,按 40% 一致性的 CD-HIT 簇划分,每簇最多 10 条。验证和测试各 1000 条。未见集 1031 条,来自 2022 年后才进 Swiss-Prot 的簇,和训练簇没有 40% 近邻。
可靠性头不读生成的文字。编码器按有效残基平均,Q-Former 按 query 平均,拼起来过 dropout 和一个线性层,输出评审把描述判成 Yes 的概率,记为 pJay。Yes 为正类,No、Maybe、Vague 并成负类。标签取验证集和测试集。训练集不用,生成器在那里容易过拟合。梯度不回传编码器和 Q-Former。阈值来自对照:未见集残基打乱后,到不了真实序列那条 pJay 右尾。401 个阈值的 Fisher 精确检验里,分得最开的是 0.537。离散过滤一律是 pJay 大于 0.537。
评审是 Claude Opus 4.7,提示词限定分子功能。Yes 是同一功能,No 是不同,Maybe 是写具体了但定不下来,Vague 罚「结合蛋白」这类空话。ATP 结合不算激酶活性。每条预测独立评五次,至少三次 Yes 才算写对。五次之间一致率 75%–81%,Cohen's κ 为 0.61 到 0.73。
未见集全部带 EC 号,测的是酶功能。47% 在整个 Swiss-Prot 里没有任何 40% 一致性的同源物。五个方法里至少一个写对 450 条,占 44%,剩下 581 条全军覆没。四个领先方法的 Yes 率落在 24.9% 到 26.5%,Protein2Text 只有 6.2%。四个领先方法两两做 McNemar 检验,Holm 校正后的 P 都是 1.00。准确率打平。
打平的是总数,不是同一批蛋白。三方法的重叠图里,三个都写对的有 109 条,ProtTale 独占 79 条,Prot2Text 独占 59 条,ProtT3 独占 34 条。五方法一起看,五个都写对的只有 17 条,ProtTale 独占 66 条,比另外四个方法的独占集合加起来还多 1 条(那些集合共 65 条)。方法之间四档标签的 Cohen's κ 大多在 0.10 到 0.34,只有共享骨架的 Prot2Text 和 ESM2Text 达到 0.60。
偏差的来源也不一样。ESM2Text 和 Prot2Text 的对错跟着序列家族大小、以及和 PDB 里最佳结构匹配的 TM-score 走。ProtT3 跟着 PDB 里 TM-score 至少 0.7 的结构邻居数目走,而且邻居越多越容易错。ProtTale 的对错不被这些序列或结构信号解释。
GO 抽取把这种差别压扁了。未见集上、不加祖先扩展的 Wang 相似度,人工描述抽取之后是 0.67,Prot2Text 0.556,ProtTale 0.561,ESM2Text 0.569,ProtT3 0.605,Protein2Text 0.443。空抽取率从 ProtT3 的 10% 到 ESM2Text 的 32%。四个领先方法之间的极差,大约是人工描述抽完之后仍丢失的那三分之一的七分之一。部分空抽取来自 Claude 的内容安全拒绝,例如把耐药酶的句子判成不能答,各方法一视同仁地算作空。
pJay 大于 0.537 的未见蛋白有 201 条,占 19.5%。因为分数只看序列,每个方法滤掉的是同一批蛋白。短蛋白(不超过 1024 残基,852 条)留下 153 条,长蛋白留下 48 条。短蛋白上四个领先方法的精度都上升。ProtTale 从 25.8% 到 45.9%,Wang 相似度从 0.56 到 0.61。ProtT3 过滤后 46.4%,Wang 0.64,和 ProtTale 的 McNemar 检验 P 为 0.64。图上 ESM2Text 从 26.2% 到 40.1%,Prot2Text 从 27.4% 到 39.9%。Protein2Text 从 6.7% 到 9.3%,摘要里「每个方法都接近翻倍」盖不住这一条。长蛋白上 ProtT3 从 14.4% 到 14.2%,没有受益。ProtTale 过滤后的 Yes 率是 32.1%,样本只剩 48 条,统计上站不稳。
连续阈值可以换覆盖率。pJay 大于 0.75 时 1031 条里只剩 20 条,ProtTale 精度 66%,ProtT3 61%,另外两个领先方法大约 50%。再往上推到大约 90% 时只剩 2 条。短细菌蛋白上 ProtTale 从 19.2% 升到 51.2%,是文中报出的最大一档涨幅,Benjamini-Hochberg 校正后 P 为 5.7 乘 10 的负 6 次方。
去掉第一段对齐,编码器改从原始 ESM-C 初始化,短蛋白 Yes 率从 25.8% 掉到 12.7%,McNemar 检验 P 为 7.7 乘 10 的负 16 次方。长蛋白几乎不动,29.8% 对 29.1%,P 为 0.60。长蛋白本来就很少进入第一段配对,这条消融和数据构造是对齐的。
一位没有参与模型开发的作者,盲着 pJay 和评审标签,给 232 条未见预测的 ProtTale 描述打 1 到 5 分。采样故意取两端,pJay 不超过 0.3 或不低于 0.7,并去掉参考描述比预测长一倍以上的条目。232 条里 209 条是模型自己也不信的,而全库里这种低置信只占约 40%。把策展人的 4 分和 5 分当成同意,评审的精度 64%、召回 72%、准确率 86%,Fisher 精确检验 P 为 6.3 乘 10 的负 17 次方,Spearman ρ 为 0.585。策展人打 5 分的,评审全部给 Yes。打 1 分的 56 条里,评审把 55 条判成非 Yes。最常见的分数是 3,82 条,占 35%,功能大类对、具体角色错。果蝇腺苷酸激酶 Q8IQG9 的参考描述是 ATP 与 AMP 之间可逆转移磷酸(EC 2.7.4.3),ProtTale 写成磷酸化嘧啶核苷单磷酸(EC 2.7.4.14)。都是核苷酸激酶,评审正确地给了 No。
pJay 不低于 0.70 的 23 条里,策展人 4 到 5 分占 57%,1 到 2 分占 13%。低于 0.20 的 60 条里,1 到 2 分占 68%,4 到 5 分只有 8%。每一档里,评审的 Yes 率和策展人 4 到 5 分的比例相差不超过五个百分点。头没看过生成文本,人没看过分数。
生成式功能注释再把平均 Yes 率抬两个点,实验人员仍然不知道哪一条能拿去设计实验。pJay 只吃序列,所以能套到 ESM2Text、Prot2Text、ProtT3 和 Protein2Text 上,等于给别的模型加一个「这蛋白的功能好不好从序列里读出来」的过滤器。短蛋白上,四个领先方法从大约 26%–27% 升到 40%–46%,换来的覆盖率大约两成。这适合先挑值得做湿实验的条目,不适合当全库注释器。
第一段的 MIPS 对齐是 ProtTale 能打平的原因。去掉它,短蛋白精度减半,而 ProtTale 在五方法里独占正确的条目最多。推理速度大约 7700 条每 GPU 小时,1031 条未见集在一张 RTX 6000 Ada 上 8 分钟,可靠性头只是一次平均池化和一个线性层。
基准几乎全是带 EC 号的酶。宏基因组序列和从头设计序列没有测。自由文本的措辞学自 Swiss-Prot,并没有逃出参考集的词库。
评审绑在 Claude Opus 4.7 和一套提示词上。五次运行只能看到抽样噪声,看不到模型版本漂移。标签和提示词随论文放出,换评审就要重算。解码器的平均 token 对数概率没有拿来做对照,所以还不知道一个更便宜的置信度能不能替代 pJay。
策展人是作者之一。采样又只覆盖分数的两头,0.30 到 0.70 这一段没有人工分,而全库 57% 的蛋白落在这段。表 2 里不低于 0.70 的只有 23 条,57% 值得做的结论样本很小。精度推到大约 90% 时只剩 2 条,那个数字不能当操作阈值。
生成截到 128 个 token,未见集 233 条、占 22.6% 没写出结束符。策展人对截断和完整预测的评分没有显著差异,Mann-Whitney 检验 P 为 0.25,截断至少没有在这 232 条里系统性拉低分数。第一段验证集上的序列 AUC 大约 0.87,可靠性头的正类 F1 大约 0.55,只比「全部猜正类」的 0.476 高一截。头学到的是一个有信号、但不好用的分类器,过滤之后的精度上升,靠的是丢掉八成蛋白。