2. R 因子基础概念:定义、Rwork 与 Rfree 的区别
聊完了 RMSD,我们来看另一个关键指标——R 因子。在结构生物学里,RMSD 更多是用来对比结构之间的差异,而 R 因子直接衡量你拟合出来的模型跟实验数据(也就是那些衍射点)之间的吻合度。
我个人习惯把 R 因子叫做“模型-数据吵架指数”。如果数值很低,说明模型和衍射数据“关系很好”;如果偏高,那就是模型跟数据对着干,肯定哪里出了问题。
2.1 R 因子到底在算什么?
说白了,R 因子就是一个百分比。
它的数学定义是这样:
R = Σ ||Fobs| − |Fcalc|| / Σ |Fobs|
- |Fobs| :实验测得的衍射强度(振幅),这是你不能改的“标准答案”。
- |Fcalc| :根据你搭建的结构模型,计算出来的理论衍射强度。
- Σ :对所有衍射点求和。
分子是两者差值的绝对值总和,分母是观测值的总和。这个比值越小,模型越合理。
你在精修软件里(比如 Refmac5、phenix.refine)实时看到的就是这个值。我记得最早入行时,看到界面上一堆飘红的数值就头疼——后来才明白,认真盯着 R 因子变化,其实能判断每次参数调整是否有效。
一个简单记忆法:R ≈ 误差百分比。如果 R=0.15,意味着模型跟实验数据的平均偏差大约是 15%。
2.2 Rwork 是什么?
Rwork 就是上面公式里算出来的那个 R 值,只不过它用的是你参与精修的那部分衍射数据。
通常情况下,精修软件会用全部收集到的衍射数据进行模型优化。你在每一轮精修后看到的就是 Rwork。它反映的是模型对训练数据(也就是参与拟合的数据)的拟合效果。
注意:Rwork 经常被低估风险。因为你一直在用它调整模型参数,模型会慢慢“记住”这些衍射点的噪声和随机误差。如果只盯着 Rwork,容易产生过拟合。
2.3 Rfree 为什么重要?
Rfree 的出现,就是为了解决上面那个“过拟合”问题。
具体做法是:在精修开始之前,从全部衍射数据中随机拿出一小部分(一般是 5%−10%),这部分数据全程不参与精修。
剩下的数据(90%−95%)叫工作集,用来精修模型,算出来的 R 就是 Rwork。被拿走的那个小集合叫测试集,我们用它算 Rfree。
关键原则:测试集永远不能参与任何模型调整。哪怕你只是参考了 Rfree 变化方向去手动修改二面角,也属于变相“泄露”。
我曾经在这个坑里摔过——有一次为了压低 Rfree,反复调整某一区域的模型,后来才发现 Rfree 降得比 Rwork 还快,明显是过拟合了,等于是白干了三天精修。
2.4 Rwork vs Rfree:一张表说清楚
| 对比维度 | Rwork | Rfree |
|---|---|---|
| 数据来源 | 工作集(90%−95% 数据) | 测试集(5%−10% 数据) |
| 是否参与精修 | 是 | 否(全程保密) |
| 反映的问题 | 模型对训练数据的拟合程度 | 模型对新数据的预测能力 |
| 正常范围 | 0.15−0.25(随分辨率变化) | 通常比 Rwork 高 2−5 个百分点 |
| 过拟合信号 | 可能很低,但不可靠 | 异常偏高,或与 Rwork 差距过大 |
判断标准:靠谱的结构,Rwork 和 Rfree 之间的差距通常在 5 个百分点以内。如果差距超过 7 个百分点,大概率是过拟合了,你需要重新检查精修策略。
2.5 R 因子评估的核心逻辑
下面的图展示了 R 因子在整个结构解析流程中的位置,以及 Rwork 和 Rfree 如何配合判断模型质量。
2.6 怎么才算合理的 R 因子?
这里没有绝对的“及格线”,它跟你的数据分辨率密切相关。一般来说:
- 高分辨率(高于 2.0 Å):Rwork ≤ 0.20,Rfree ≤ 0.25 是比较好的。
- 中等分辨率(2.0−3.0 Å):Rwork 在 0.20−0.25 之间是正常的。
- 低分辨率(低于 3.0 Å):Rwork 可能会到 0.30 甚至更高,这时候更要小心差距。
一个我常用的判断原则:Rfree 占 Rwork 的比例。如果 Rfree 是 Rwork 的 1.1−1.2 倍,基本正常。超过 1.3 倍,你该停下手头的精修,回头看看数据质量和模型构建是否合理。
嗯,R 因子这块的内容大约就是这些。核心就两句话:Rwork 告诉你模型跟训练数据的拟合程度,Rfree 告诉你模型的泛化能力。两个值一起看,才能判断你的结构是不是真的可靠。