1. 蛋白功能预测建模工程导论
蛋白质功能预测建模工程,研究的不是某一个孤立的算法,而是如何把“从序列到功能”的推断过程,做成一套可复现、可评估、可交付的工程系统。它横跨分子生物学、机器学习与软件工程:生物侧决定我们预测什么、用什么标签、如何解释结果;算法侧决定用什么表示、什么模型、什么损失;工程侧决定数据怎么流转、模型怎么版本化、结果怎么被下游使用。本课程的目标,是让读者具备独立搭建一条功能预测流水线的能力,而不仅是调用一次现成工具。
课程定位:从“会用工具”到“能建系统”
初学者常见的做法是:拿到一条序列,丢进某个在线服务,得到一个 GO 注释或 EC 编号,就认为任务完成。工程视角下,这只是整条链路最末端的一次推理。真正决定预测质量的是上游——训练数据的来源与去冗余、标签体系的层级与传播规则、负样本的构造方式、评估切分是否泄漏同源信息。本课程因此把重心放在“数据—表示—模型—评估—部署”这条主链上,工具只是链上的执行单元。
需要明确一个基本立场:功能预测的输出本质是概率性假设,而非事实断言。模型给出“该蛋白可能具有丝氨酸水解酶活性,置信度 0.87”,这个数字只有在明确的标签定义、数据分布和评估口径下才有意义。课程会反复强调把置信度、覆盖率和错误代价一起交付,而不是只交付一个标签。
核心问题:四个必须回答的工程问题
无论做的是亚细胞定位、酶功能分类还是蛋白互作预测,工程上都要回答四个问题。第一,标签从哪来:Swiss-Prot 的人工注释、GO 的三层结构(分子功能、生物过程、细胞组分)、EC 四级编号,各自的粒度与噪声不同。第二,序列怎么表示:one-hot、k-mer 频率、PSSM、预训练语言模型嵌入,表达能力和计算成本差异巨大。第三,同源泄漏怎么防:若训练集与测试集存在高相似序列,指标会虚高,常用做法是按序列相似度聚类后整簇切分。第四,结果怎么用:是给实验人员排序候选,还是自动写入数据库,决定了阈值策略与人工复核比例。
工程化流程:一条可落地的七段链路
下面这张图给出本课程贯穿始终的主链路。它按数据流方向组织,每一段都有明确的输入、输出与质量检查点,而不是抽象步骤罗列。
链路上有三个必须显式设置的检查点。检查点 A 在去冗余之后:用 CD-HIT 以 30% 一致性聚类,确认训练与测试簇不重叠,否则后续指标不可信。检查点 B 在标签构建之后:统计每个标签的正样本数,低于约 30 条的稀有类要么合并、要么单独走小样本策略,否则模型只会记住多数类。检查点 C 在评估阶段:除 Fmax、AUPR 外,还要看校准误差 ECE,因为下游若按 0.5 一刀切,未校准的高置信输出会带来大量假阳性。
一个最小可运行示例
以“给定蛋白序列,预测其是否属于某个 GO 分子功能类”为例,工程上第一步不是选模型,而是把数据切干净。假设从 UniProt 下载了 12000 条带 GO 注释的 reviewed 序列,先做长度过滤(50–1000 aa)与非常规字符剔除,再用 CD-HIT 以 0.3 阈值聚类,得到约 4200 个簇。按簇 8:1:1 划分训练、验证、测试,可避免同源泄漏。标签侧对 GO 做真路径传播:若某蛋白注释到叶子节点,则其所有祖先节点也置为正,这样正样本数从平均 1.2 提升到约 4.6,缓解了稀疏问题。
# 示例:按簇切分,避免同源泄漏(示意参数,非实测结果)
cd-hit -i seqs.fasta -o seqs_cdhit -c 0.3 -n 5 -M 8000
# 输出 .clstr 记录每条序列所属簇,按簇 ID 分组后 8:1:1 划分
# 训练集约 3360 簇 / 验证集 420 簇 / 测试集 420 簇
表示层可先用 k-mer(k=3,8000 维)加线性模型作为基线,得到可解释的起点;再换用预训练蛋白语言模型嵌入加轻量分类头,观察 Fmax 的变化。若提升有限,问题往往不在模型,而在标签噪声或数据分布,此时应回到检查点 B 做误差分析,而不是继续调参。
典型应用场景与交付形态
不同场景对输出的要求不同。工业酶筛选关心的是候选排序,交付的是带置信度的 Top-N 列表,允许一定假阳性,但要求高召回;临床变异解读关心的是致病性判断,交付的是校准后的概率与证据等级,宁可保守;通路补全关心的是网络完整性,交付的是边预测及其支持证据。课程后续会分别展开这些场景的标签设计、评估口径与部署方式。
本课程后续每一章都会围绕这条主链的某一段深入:数据获取与清洗、标签体系与传播、序列表示、模型选择、评估与校准、部署与监控。读者应始终带着一个具体任务来学习——选定一个功能预测目标,边学边把链路搭起来,最终交付一条能复现、能解释、能被下游使用的预测流水线。