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 如何配合判断模型质量。

R 因子评估流程图 Rwork 与 Rfree 联合评估逻辑 衍射数据来源 工作集 (90%−95%) 测试集 (5%−10%) 模型精修 Rwork 计算 Rfree 计算 对比 Rwork 和 Rfree 差距 差距 ≤ 5% → 模型可靠 差距 > 7% → 过拟合风险

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 告诉你模型的泛化能力。两个值一起看,才能判断你的结构是不是真的可靠。