4、精确率与召回率:基因预测评估的两把尺子
做基因预测这么多年,我见过不少人拿着一堆结果,却说不清到底好不好。精确率、召回率、F1分数——这三个指标,就是用来回答这个问题的。
说白了,它们帮你量化一件事:你的预测到底靠不靠谱?漏了多少?错报了多少?综合表现怎么样?
我个人习惯,拿到预测结果后第一件事就是算这三个数。不看它们,光看预测数量没什么意义。
4.1 先搞清楚几个基本概念
在讲指标之前,得先定义四个基础数值。它们是所有评估的根基:
| 缩写 | 全称 | 基因预测场景含义 |
|---|---|---|
| TP | 真阳性 (True Positive) | 正确预测到的基因/外显子/转录本 |
| FP | 假阳性 (False Positive) | 预测存在但实际不存在的基因(误报) |
| FN | 假阴性 (False Negative) | 实际存在但没被预测到的基因(遗漏) |
| TN | 真阴性 (True Negative) | 正确识别的非基因区域(基因预测中很少直接使用) |
你想想看,有了这四个数,评估指标就呼之欲出了。
4.2 精确率(Precision)—— 预测结果有多可信?
精确率的公式很简单:
Precision = TP / (TP + FP)
它回答的问题是:在你预测的所有基因里,有多少是真正对的?
我在项目中遇到过这么个情况:用某个工具预测细菌基因组,一口气报了5000个基因。看着挺多,结果一验证,里面有1500个是假阳性。精确率只有70%。说白了,你预测了10个,里面可能3个是错的。
精确率越高,说明你的预测越"精",误报越少。在临床诊断、基因功能研究这类场景中,精确率尤其重要——报错了可能误导后续实验。
4.3 召回率(Recall)—— 有没有漏掉重要的?
召回率的公式:
Recall = TP / (TP + FN)
它回答的问题:在真实存在的所有基因里,你抓到了多少?
我曾经在评估一个真核基因组注释时,发现召回率只有60%。也就是说,有40%的真实基因完全没被预测到。这在全基因组筛查中是很要命的——漏掉一个关键基因,可能整个后续分析都白做了。
召回率越高,说明你的预测越"全",遗漏越少。在保守元件发现、全基因组筛查中,召回率是优先考虑的指标。
关键权衡:精确率和召回率往往此消彼长。阈值设得严,精确率高但召回率低;阈值设得松,召回率高但精确率低。你想抓得全,就难免多报;你想报得准,就难免漏掉一些。
4.4 F1分数—— 一碗水端平
既然精确率和召回率常常打架,总得有个办法综合看。F1分数就是它们的调和平均:
F1 = 2 × Precision × Recall / (Precision + Recall)
为什么用调和平均而不是算术平均?因为调和平均对低值更敏感。如果精确率90%但召回率只有30%,F1只有45%,不会让你觉得"还行"。这点很实用——我选工具时如果只看一个指标,就看F1。
我的习惯:评估基因预测工具时,先看F1排名,再看精确率和召回率的具体值。F1接近0.85以上的工具,通常比较靠谱。
4.5 在基因预测中的使用场景
不同任务对这三个指标的偏好完全不同。下面这个表是我自己总结的:
| 应用场景 | 首要指标 | 次要指标 | 原因 |
|---|---|---|---|
| 临床基因诊断 | 精确率 | F1 | 宁可漏报,不能误报,误报会导致错误诊断 |
| 全基因组筛查 | 召回率 | F1 | 尽量发现所有潜在基因,漏掉成本高 |
| 基因功能研究 | 精确率 | 召回率 | 需要确保研究的基因真实存在 |
| 保守元件注释 | 召回率 | 精确率 | 避免遗漏进化上保守的功能元件 |
| 新基因发现 | 召回率 | F1 | 探索未知,宁可多报再筛选 |
| 工具选型对比 | F1 | 精确率+召回率 | 综合平衡,单一指标有偏向 |
你看,没有哪个指标是万能的。关键看你的任务目标是什么。
4.6 实际案例:评估一个基因预测结果
下面是我手头一个真实的评估案例。用BRAKER对某真菌基因组做基因预测,跟参考注释比较后得到:
- 预测基因总数:12400
- 其中正确预测的(TP):9800
- 错误预测的(FP):2600
- 参考注释中有但没预测到的(FN):1200
计算一下:
精确率 = 9800 / (9800 + 2600) = 0.790
召回率 = 9800 / (9800 + 1200) = 0.891
F1 = 2 × 0.790 × 0.891 / (0.790 + 0.891) = 0.837
看结果:召回率还不错(89%),但精确率只有79%,说明有相当比例的预测是假阳性。F1为0.84,整体中等偏上。如果用在临床场景,这个精确率不够;但用在全基因组筛查,这个召回率就能接受。
避坑指南:我曾经踩过一个坑——只看F1分数选了工具,结果精确率和召回率都不突出,两边都平庸。后来我养成了习惯:先看F1排名,再看具体P/R是否满足任务要求。F1高不代表两个指标都高,一定要拆开看。
4.7 指标之间的内在关系
下面这张图,把四个基础值和三个指标之间的关系画清楚了。我建议你把它存下来,每次做评估时对照着看。
从图上你能清楚看到:精确率和召回率都依赖TP这个"底座",但它们的分母不同,分别惩罚FP和FN。F1又站在两者的肩膀上,给出了一个平衡的分数。
4.8 常见误区提醒
最后说几个我见过的常见误区,你注意避免:
- 只看数量不看比例:预测了2万个基因,听着挺多,但精确率只有40%,一半以上是垃圾。数量再大也没用。
- 忽略FN:有些人只算精确率,不看召回率。结果预测得很准,但漏掉了一半真实基因。这在基因组注释中是很严重的问题。
- 盲目追求F1最高:F1高当然是好事,但如果任务本身需要极端精确或极端召回,F1最高的模型未必最适合。
我曾经遇到一个案例:有个团队用F1=0.86的工具做了细菌基因组注释,结果发现这个工具把很多假基因(pseudogene)都预测成了功能基因。精确率看似还行,但生物学上完全是误导。所以,指标只能告诉你"好不好",不能告诉你"为什么好"。一定要结合生物学背景去解读。
做基因预测评估,这三个指标是你最趁手的工具。但记住,它们只是工具,不是真理。真正有价值的是你结合生物学问题对这些指标的解读。