240

CrossDocked2020:深度学习 Docking 常用数据集

CrossDocked2020 提供大量交叉对接姿势,是训练深度学习对接与基于结构生成模型的常用数据集。这篇讲清它的构建逻辑、正确用法与已知偏差。

CrossDocked2020(Koes 组)是为训练深度学习模型而专门构建的对接姿势数据集。它的核心思路是交叉对接:把同一口袋家族里的配体互相对接到彼此的受体结构上,产生大量「非原生」的姿势。这解决了一个关键问题——训练打分模型时,光有正确姿势不够,还需要大量质量各异的错误姿势作为负样本。

怎么构建的

  • 从 PDB 中按口袋相似性把结构聚成约 2,900 个口袋簇;
  • 簇内每个配体与每个受体结构两两交叉对接(用 smina);
  • 保留生成的姿势及其与原生姿势的 RMSD;
  • 最终得到约 2,250 万个姿势,覆盖 18,450 个复合物。

每个姿势都标注了 RMSD(与该配体在其原生受体中的晶体姿势相比),这让它能同时训练姿势质量判别亲和力预测两类任务。

两类主要用途

用途 怎么用 代表工作
训练打分/重打分模型 用 RMSD 作标签,学习区分好坏姿势 GNINA 的 CNN 打分(见 183《GNINA》
基于结构的分子生成 以口袋为条件生成配体 Pocket2Mol、TargetDiff、3DSBDD 等

基于口袋的三维分子生成近年是热点方向,绝大多数这类工作都用 CrossDocked2020 做训练与评测——所以理解它的偏差,对判断这些工作的可信度很重要。

正确的划分方式

# 数据集自带的划分方案基于口袋相似性
# types 文件格式:label  affinity  rmsd  receptor_path  ligand_path

# 关键:必须用口袋序列相似性划分,不能随机划分
# 官方提供 30% 序列相似性阈值的划分方案
# 随机划分会让同一口袋的不同姿势跨越训练/测试集,指标严重虚高
  • 用官方的 clustered split(按口袋相似性),不要自己随机切;
  • 注意区分 it0it1it2 等不同迭代的子集;
  • 报告结果时说明用了哪个划分与哪个子集,否则不可比。

已知偏差:解读结果时必须知道

  • 姿势由 smina 生成:所有非原生姿势都来自同一个对接程序,因此带有 smina 的搜索偏好。在其上训练的模型可能过度适应这种姿势分布,面对其他来源的姿势时表现下降。
  • 「好姿势」的定义偏窄:以 RMSD ≤ 2 Å 为正样本,但 RMSD 不总是衡量结合模式正确性的最佳指标(对称分子、部分正确的姿势都会被误判)。
  • 生成模型评测的连锁问题:用 CrossDocked 训练的生成模型,评测时又用 Vina 打分——相当于用同一套物理近似既做训练标签又做评价标准,容易得出乐观但站不住的结论。多项独立分析指出,这类模型生成的分子在合成可及性、物理合理性上问题不少。
  • 口袋覆盖不均:某些蛋白家族(如激酶)严重过度代表。

实践建议

  • 用它做预训练,再在自家数据上微调,比直接用其上的模型更实际;
  • 评测基于结构的生成模型时,不要只报 Vina 分数,同时看合成可及性(SA score)、物理有效性(PoseBusters)、以及与已知活性分子的相似性;
  • 关注模型是否只是在「记住这个口袋对应哪类配体」——加入口袋序列相似性划分的对照实验可以检验这一点;
  • 结合真实筛选基准(如 LIT-PCBA,见 242《LIT-PCBA》)交叉验证。

上手提示

  • 它的价值是提供带 RMSD 标注的海量非原生姿势,用于训练姿势判别;
  • 必须用官方的口袋相似性划分,随机划分指标严重虚高;
  • 姿势全部由 smina 生成,模型会继承其搜索偏好;
  • 评测生成模型别只看 Vina 分数,那是用训练标签当评价标准。

延伸资源