GDB-17 — 化学宇宙 1,664 亿小分子 AI-Ready Wikipedia

枚举 1,664.4 亿个有机小分子的化学宇宙数据库

来源 瑞士伯尔尼大学(University of Bern)Reymond 研究组 url: https://gdb.unibe.ch/downloads/发布时间: 2026-09-12最后更新: 2026-09-25 阅读 38
GDB-17 — 化学宇宙 1,664 亿小分子 AI-Ready Wikipedia

信息速览

数据集名称GDB-17 — 化学宇宙 1,664 亿小分子 AI-Ready Wikipedia
数据类型1,664.4 亿枚举分子,50M 可下载子集 484 MB,SMILES 文本格式,免费下载须引用
规模非患者数据(计算枚举的分子结构库)
接入方式瑞士伯尔尼大学(University of Bern)Reymond 研究组 url: https://gdb.unibe.ch/downloads/
AI 就绪度

数据集封面

GDB-17 — 化学宇宙 1,664 亿小分子百科 AI-Ready Wikipedia

INFOBOX

字段 内容
数据集名称 GDB-17 化学宇宙数据库
英文全称 GDB-17 (Chemical Universe Database / Generated DataBase 17)
别名/简称 GDB17;GDB-17
疾病分类(ICD-11 编码+中文名) 不适用(虚拟分子枚举库,不含疾病标注)
SNOMED CT 不适用(不含临床概念编码)
数据模态 有机小分子结构(SMILES 分子图线性表示)
AI 任务类型 De novo 分子生成、虚拟筛选、化学空间建模、分子表示学习、骨架跃迁
样本总数 166,443,860,262 个分子(含立体异构体;约 1,664.4 亿)
数据大小 全库未整体发布;公开可下载子集 55-484 MB(gzip 压缩)
数据格式 SMILES(去芳构化、规范化;.smi.gz 单列文本)
许可证 自定义免费学术许可(免费下载;发表须引用;禁专利用途;禁再分发)
访问级别 开放
DUO 标签 不适用(非人类受试者数据)
语言 英文(文档与论文);SMILES 为化学结构线性表示
首发日期 2012-11(JCIM 论文 Epub 2012-11-01)
最后更新 2012-11(本体未迭代;2017-2020 年发布 FDB-17、GDBMedChem、GDBChEMBL 派生子集)
发布机构 瑞士伯尔尼大学(University of Bern)Reymond 研究组
官方主页 https://gdb.unibe.ch/research/
下载地址 https://gdb.unibe.ch/downloads/
DOI 10.1021/ci300415d
引用次数 970+(OpenAlex 索引 976 次,截至 2026-09)
AI 就绪度评分 ⭐⭐⭐(3/5)— 单列 SMILES 可直接流式读取且格式稳定,但无标签、无官方划分、无预处理脚本,且去芳构化 SMILES 需自行标准化与化学感知去重(扣分项)
页面状态 published

§0 E-E-A-T 审核声明

医学审核:千方病案医学编辑部交叉审核:§2 医学背景(化学宇宙概念、药物发现任务与治疗领域映射)、§7 偏倚分析(枚举偏倚、极性偏斜与泛化性局限)。

数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。

审核日期:2026-09-05

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。GDB-17 免费下载,但官方条款明确要求:发表研究须引用对应文献;不得将 GDB 用于专利或作为专利的一部分;未经 Jean-Louis Reymond 书面许可,不得再分发 GDB 数据库及其大部分内容。具体使用限制以官方条款为准。


§1 数据集概览

§1.0 📌 30 秒速览

这是什么? GDB-17(Generated DataBase 17)是一份"所有可能分子"的清单:瑞士伯尔尼大学 Reymond 研究组用算法穷举了由碳、氮、氧、硫和卤素组成、重原子数不超过 17、且符合化学稳定性与可合成性基本规则的全部有机小分子,共 1,664.4 亿个结构,以 SMILES 文本存储。它不是实验测量数据,而是一张计算枚举的"化学宇宙地图"。

为什么重要? 已知化合物库(如 PubChem 收录超 1 亿分子)只是化学宇宙中极小的一角——GDB-17 中超过 99% 的分子在此前从未被报道。它定量回答了药物化学的核心问题"还有多少药样分子没被发现":与已知分子相比,这些未开发分子富含非芳香杂环、季碳中心和立体异构体,在三维形状空间中远比已知库"立体",是新骨架与新分子系列的理论宝库。

我能用它做什么? 典型用途包括:训练与评测去 novo 分子生成模型(如 VAE、语言模型)、大尺度配体虚拟筛选与骨架跃迁(官方提供 MQN 相似度搜索工作流)、化学空间可视化、分子表示学习,以及为合成化学提出全新环系(GDB 预测的三降冰片烷已于 2017 年被成功合成)。注意:它不含任何生物活性标注,全库也不能整体下载,只能获取 5,000 万随机子集及铅样子集。

§1.1 摘要

GDB-17 的构建是一个纯计算的系统枚举工程。研究组先用 Nauty 套件的 GENG 算法穷举不超过 17 个重原子的分子图拓扑(约 1,143 亿种),再依次施加四级规则过滤器:H-过滤(几何张力,剔除张力过大拓扑)→ S-过滤(以双键/三键替换饱和骨架并剔除丙二烯型不稳定不饱和键)→ F-过滤(C/N/O 组合替换并排除不稳定杂原子键合模式)→ P-过滤(官能团多样化,生成芳香环、肟、三氟甲基、卤素、砜等),最终得到 1,664.4 亿个分子并用 CORINA 枚举立体异构体。整个枚举在 360 核 CPU 集群上运行约 100,000 CPU 小时、超过 40,000 个作业。

分析显示,GDB-17 分子平均每人有 6.4 个可能立体异构体(PubChem 同尺寸分子仅 2.0 个),44% 的分子具有 8 个以上立体异构体,在分子形状(PMI)空间中密集成球状分布,与已知库"扁平化"形成鲜明对照。官方后续发布了 5,000 万随机子集(484 MB gzip)及铅样(1,100 万)、无小环铅样(80 万)两个预过滤版本,配套论文提供了基于 42 个整数描述符 MQN 的相似度搜索方案。2013 年的方法学论文进一步给出了 MQN 主成分可视化与两级虚拟筛选工作流,使这个天文数字的库第一次变得"可导航、可检索"。

§1.2 战略价值

维度一:为生成式 AI 提供"无偏参照系"。 主流生成模型在 ChEMBL、ZINC 等已知分子库上训练,学到的本质上是"数据库收集偏倚",倾向于复现芳香骨架与已知模式。GDB-17 提供了规则定义下"全部可能分子"的枚举分布,可作为生成模型新颖性、覆盖度评估的对照宇宙——2020 年 GDBChEMBL 工作明确指出,组合库与生成模型"大多在重组已知模式",GDB 系列库正是为突破这一局限而生(Bühlmann & Reymond, Front. Chem. 2020)。用 GDB-17 子集做预训练或先验建模,能让模型接触尚未被人类合成的结构模式。

维度二:定量刻画"未知药物化学空间"。 GDB-17 首次把枚举推进到先导化合物典型分子量区间,发现未知空间在三维形状与立体化学上比已知空间丰富得多:35 倍于 PubChem 同尺寸分子的 Murcko 骨架种类、61 倍的环系统种类(第三方分析汇总,Hunter Heidenreich 笔记),且包含数百万个已上市药物的分子式/几何异构体。这为"降低药物研发损耗率、寻找新分子系列"提供了可检索的结构来源,也解释了为何 GDB 系列被称为"最早的超大公共虚拟库"(VirtualFlow 综述, arXiv:2211.03208)。

维度三:规则枚举作为"可解释先验"的独特地位。 GDB-17 的每个分子都有完整的形式化出生证明:它由哪个拓扑经哪几级过滤器生成、带有何种官能团与立体中心。这使它成为研究"分子分布本身"的理想对象——例如分析 HAC 维度上的指数增长规律、官能团共现频率、环系统组合学。相比之下,任何"从真实库学到的生成模型"都无法提供这种对总体的封闭形式描述。对 AI 研究者,这是少见的"分布已知"的化学数据集,适合作为生成模型理论分析(如覆盖度、模式坍缩度量)的解析基准。

§1.3 同类数据集横向对比

数据集 规模 模态/类型 标注 与 GDB-17 的差异化
GDB-17(2012) 1,664.4 亿(仅子集可下载) 枚举虚拟分子 SMILES 无(规则内建稳定性/可合成性约束) 穷举式"化学宇宙",结构新颖度 >99%,含立体异构体计数
GDB-13(2009) 977,468,314 枚举虚拟分子 SMILES 无 ≤13 个重原子(C/N/O/S/Cl),全库可整体下载(2.6 GB)
GDB-20(2026) 12,092,137,338(HAC≤20 空间估计约 32 万亿的子集) 枚举+生成模型混合采样 SMILES 无 扩展到 20 个重原子,按 HAC 分块发布(约 2.8-35.3 GB/块)
ChEMBL 数百万级已知化合物,持续更新 实验活性化合物+活性标注 靶点活性/ADMET 注释 有真实生物活性数据,但结构空间远小于 GDB 且偏芳香骨架
PubChem 超 1 亿已知分子 文献/提交来源化合物 部分生物测定数据 已知分子参照系;GDB-17 论文以其同尺寸子集作对照
ZINC15 约 1.2 亿可购买化合物(2015 首发) 可购买化合物+对接就绪 3D 商品化信息 提供现成 3D 构象与可购买性,弥补 GDB"非 ready-to-dock、需定制合成"短板

§1.4 版本时间轴

时间 事件 说明
2005 化学宇宙概念验证 Fink/Bruggesser/Reymond 枚举 <160 Da 小分子宇宙(Angew. Chem. Int. Ed. 44, 1504-1508)
2007 GDB-11 发布 ≤11 重原子(C/N/O/F),2,640 万结构(1.109 亿立体异构体),JCIM 47:342-353
2009 GDB-13 发布 ≤13 重原子(C/N/O/S/Cl),977,468,314 结构,JACS 131:8732-8733
2012-11 GDB-17 发布 1,664.4 亿分子,JCIM 52(11):2864-2875,DOI 10.1021/ci300415d
2013-01 可视化与虚拟筛选论文 MQN 描述符+指纹搜索,JCIM 53(1):56-65
2017 FDB-17 片段库 片段相似(fragment-like)子集,JCIM 57(4):700-709
2019 GDBMedChem 药物化学规则筛选的 1,000 万分子子集,Mol Inform 38(8-9):e1900031
2020 GDBChEMBL ChEMBL 相似度评分(CLscore)筛选的 1,000 万分子子集+交互地图 faerun.gdb.tools
2026 GDB-20 系统枚举+生成模型,1,209.2 万万(12,092,137,338)个独特分子,ChemRxiv 预印本

§1.5 典型应用场景

  1. 去 novo 分子生成与基准评测:以 GDB-17 铅样子集(1,100 万分子)训练 VAE/语言模型,并以更大子集检验生成分布的 validity/uniqueness/novelty。2022 年已有工作用 GDB-17 铅样集+FDB-17 训练 ChemVAE 框架,设计 SRC 激酶抑制剂潜在分子(Int J Mol Sci 2022;23(19):11262)。
  2. 超大库配体虚拟筛选与骨架跃迁:官方 MQN 指纹+city-block 距离两级工作流可对 5,000 万子集秒级检索;论文演示了对 15 个药物的形状类似物检索,97% 以上命中集中在 CBD(MQN)≤12 的邻域(Ruddigkeit et al., JCIM 2013)。
  3. 化学空间可视化与教学:MQN 主成分平面提供化学宇宙总览图,配合 faerun.gdb.tools 交互地图,适合药物化学课程与化学空间概念传播。
  4. 新骨架合成验证:从 GDB 环系统中挑选"看似不可能但可合成"的分子进行合成挑战,三降冰片烷(trinorbornane)由 GDB-11 于 2007 年预测、2017 年被巴塞尔大学 Marcel Mayor 组成功合成(Reymond 组项目页)。
  5. 跨领域材料筛选:2025 年有团队从 GDB-17 中抽取约 160 万个胺类分子,用高通量计算+机器学习筛选直接空气捕集(DAC)材料的胺功能位点,展示其超越药物发现的外延价值(Commun. Chem. 2025, DOI 10.1038/s42004-025-01819-1)。

§2 医学背景

GDB-17 是分子结构参考库,本身不含疾病标签与临床数据。本节从药物发现任务出发,说明其在医学研究中的定位,并给出可关联的治疗领域背景。

§2.1 治疗领域映射(ICD-11)

GDB-17 的分子是"适应证无关"的骨架来源,理论上可流向任何治疗领域。下表列出 GDB 衍生方法学最常见的探索方向及其 ICD-11 对应章节段,供检索与分层使用:

应用领域 ICD-11 编码段 中文名称 GDB-17 的关联方式
恶性肿瘤 2A00-2F9Z 肿瘤学 激酶抑制剂类骨架的生成建模与骨架跃迁(如 SRC 激酶探针设计研究)
精神与行为障碍 6A00-6E8Z 精神与行为障碍 GPCR/转运体配体空间探索(Reymond 组长期方向为离子通道与转运体小分子调节剂)
神经系统疾病 8A00-8E0Z 神经系统疾病 中枢神经系统药物样分子的新型刚性骨架来源
全领域(适应证无关) 不适用 化学骨架库 GDB-17 本体不绑定任何疾病;论文强调"指向新分子系列以降低药物 potency/selectivity/toxicity 相关损耗率"

⚠️ 上表 ICD-11 编码段仅为章节级导航(非逐码映射)。GDB-17 数据文件内没有任何 ICD-11、SNOMED CT 或靶点字段;疾病关联只存在于下游研究中。

§2.1b SNOMED CT 映射

维度 SNOMED CT 状态 说明
疾病/临床发现 不适用 数据集不含患者、症状或诊断信息,无可映射的临床概念
化学物质层级 不直接覆盖 SNOMED CT 物质层级仅收录真实存在物质;GDB-17 中 >99% 分子为虚拟分子,无对应概念
建议做法 — 若需标准术语关联,建议在下游用 ChEMBL/DrugBank ID 桥接已上市分子,再挂接 SNOMED CT 物质码

简言之:GDB-17 与医学术语系统之间不存在原生映射,一切"从 GDB 分子到疾病"的联系都由下游研究建立(检索→合成→测定→文献)。本表的目的不是给出映射,而是防止用户在数据字典中寻找不存在的疾病字段。

§2.2 背景:化学宇宙与药物发现的"未知空间"问题

药物分子由几十个原子以共价键连接而成。一个自然的定量问题是:这个尺寸范围内总共可能存在多少个分子、它们长什么样?GDB-17 论文开篇即指出,回答这一问题对药物化学具有紧迫意义——新分子系列有助于解决药物效力、选择性与毒性问题,降低研发损耗率(attrition)(PubMed 23088335)。已知分子(文献报道超 1 亿个)与可能分子之间的鸿沟就是"未知化学空间":GDB-17 估计该空间远超已知库四个数量级以上,且其中绝大多数结构从未被任何组合库或生成模型触及。

这一鸿沟的量化勾勒值得展开。以重原子数为横轴,可能分子数呈指数增长:GDB-11(≤11 原子)只有 2,640 万结构,GDB-13(≤13 原子)跃升至 9.77 亿,GDB-17(≤17 原子)达到 1,664.4 亿——每增加 2 个重原子,空间扩大 1-2 个数量级。官方下载页描述 GDB-13 发布时是"当时最大的公开有机小分子库",GDB-17 则把穷举推入先导化合物典型分子量区间(MW 100-350 Da)。与此同时,已知分子库的增长却是近似线性的慢过程:PubChem 超过 1 亿分子积累自上百年化学文献,而 GDB-17 用约 10 万 CPU 小时完成了对"可能"空间的系统普查。对 AI 而言,这意味着两件事:其一,在已知库上训练的模型天然受限于"人类合成史"的分布;其二,规则枚举提供了一个可以严格定义、可以完整枚举的分布目标,使"生成模型是否覆盖了可能空间"第一次变成可度量的问题。

§2.3 临床/计算任务定义

任务 定义 在 GDB-17 上的形态 代表证据
配体虚拟筛选(LBVS) 用分子相似度从大库中找出与已知配体形状/性质相近的候选 MQN 指纹(42 个整数描述符)+ city-block 距离 CBD(MQN) 预过滤,再以 3D 形状方法(ROCS)精筛 15 个药物找到 ROCS>1.6 且 T(SF)<0.5 的类似物;>97% 命中在 CBD(MQN)≤12 内
骨架跃迁 保留药效团、更换核心骨架 从 GDB 庞大环系统储备中检索同形状新骨架 论文证明 GDB-17 的环系统种类数倍于已知库
De novo 生成 学习分子分布并采样新分子 以子集为训练分布,或作为"可能宇宙"参照评测 novelty 2022 年 ChemVAE 用 GDB-17 铅样集+FDB-17 建模并设计激酶探针
合成可及性预测 预测虚拟分子能否被合成 GDB 过滤规则本身是规则版"可合成性先验";下游可结合 SAscore/GDBscore DAC 材料研究用 SAscore<3.4 与 GDBscore>0.64 过滤 160 万 GDB 分子

与临床任务(筛查/诊断/分级/预后)的区别在于验证对象:临床 AI 的金标准是患者结局,而 GDB-17 支撑的化学 AI 任务的"金标准"是合成现实性与实验测得活性——一个 GDB 来源的候选分子只有走完"合成 → 纯化 → 生物测定"链条才算闭环。这决定了它的一切评估都应以化学信息学的协议(§8.3)而非临床预测的协议执行。

§2.4 数据"人群"构成(分子画像)

以"分子"替代"患者"的数据画像(来源:Ruddigkeit et al., JCIM 2012 与官方下载页):

维度 构成
元素范围 C、N、O、S、F、Cl、Br、I(不含 P、Si、B 等药物中偶见元素)
重原子数 ≤17(不含氢);铅样定义 MW 100-350 Da 且 clogP 1-3
立体化学 立体异构体单独计数;平均 6.4 个可能立体异构体/分子,44% 分子 ≥8 个异构体
环系特征 富含饱和杂环与小环(3-4 元);官方另发布无小环铅样子集(80 万)
极性分布 相对已知库偏极性(clogP<0 分子占比更高)
分子量分布 峰值区约 240-250 Da(随重原子数指数增长所致,第三方复现分析)
新颖度 >99% 为此前未报道的结构
对比(GDB-11 前代) 2,640 万结构 / 1.109 亿立体异构体(≤11 原子 C/N/O/F)
对比(GDB-13 前代) 977,468,314 结构(≤13 原子 C/N/O/S/Cl)
后继(GDB-20) 12,092,137,338 个独特分子(≤20 原子,系统枚举+生成模型,估计空间的子集)
枚举成本 约 100,000 CPU 小时 / 360 核集群 / 40,000+ 作业

§2.5 临床与转化价值

GDB-17 对医学研究的价值是间接但结构性的。第一,它把"还有哪些药样分子没试过"从开放问题变成可检索问题:通过与已上市药物比对,可系统性枚举药物的同分子式异构体与近邻形状类似物,从中挑选骨架全新而性质相似的候选进入合成与活性测试。第二,其立体化学与三维形状分析为"逃离平面(escape out of flatland)"这一当代药物化学议题提供了定量依据——已知库以芳香扁平分子为主,而 GDB 空间中球形、刚性、多手性中心分子占比极高,这类分子在选择性(如变构位点、蛋白-蛋白相互作用界面)上具有独特优势。第三,GDB 方法学的"预测-合成"闭环已被实验验证:三降冰片烷从 GDB-11 理论预测到 2017 年成功合成,说明枚举空间中的分子确实具有化学现实性,而非纸上谈兵。

从研究流程看,GDB-17 在药物发现漏斗中的位置是"苗头化合物发现(hit discovery)之前的最上游":它不提供靶点、不提供活性,只提供"结构候选的总体空间"。典型工作流是:已知活性配体 → MQN/形状相似度在 GDB 中检索近邻与骨架跃迁候选 → 可合成性 triage(SAscore/CLscore)→ 定制合成 → 生物测定。每向下游一步,候选数量缩小几个数量级,这也解释了为什么官方工作流把"如何在 5,000 万子集中高效检索"作为方法学论文的核心问题(Ruddigkeit et al., JCIM 2013)。

§2.6 领域金标准参照

参照库 与 GDB-17 的关系 标注方式 标注者 性质
ChEMBL(HAC≤17 子集,ChEMBL-17) GDB-17 论文的核心对照库:性质分布、骨架/环系统丰富度均与 GDB-17 对比 实验测得靶点活性(IC50/Ki 等) 数据库策展团队(文献策展) 已知活性分子参照系
PubChem(PubChem-17) 同尺寸分子对照;立体异构体与形状分析基准 文献/提交来源元数据 提交者+NCBI 已知分子最大公共库
DrugBank(DrugBank-17) 已上市/在研药物对照(平均 2.1 立体异构体/分子) 人工策展药物注释 DrugBank 团队 药物参照系
GDB-13 / GDB-11 GDB-17 的前代规模基准(9.77 亿/2,640 万) 规则枚举 Reymond 组 方法学内部基准

使用参照库的正确姿势:它们是"已知分子"的对照系,用于计算 GDB-17 的相对新颖度(骨架/环系统/立体化学差值),而不是直接标注来源——GDB-17 条目与这些库之间没有 ID 级关联,任何对应关系都需通过 InChIKey/相似度计算重建。


§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小 理由
生成模型训练(铅样分布) GDB17.50000000LL.smi.gz(铅样 1,100 万) 75 MB 已按 MW 100-350、clogP 1-3 预过滤,分布接近药物化学目标空间
大规模无偏采样/表示学习 GDB17.50000000.smi.gz(随机 5,000 万) 484 MB 覆盖全库 HAC 范围的最有代表性公开样本
3D 构象生成/形状分析 GDB17.50000000LLnoSR.smi.gz(无小环铅样 80 万) 55 MB 剔除 3-4 元小环,显著降低嵌入与力场优化失败率
高可合成性优先 GDBChEMBL(1,000 万) 276 MB(SMI) 按 ChEMBL 子结构频率评分(CLscore)筛选,SAscore 显著更低
片段化学/FBDD FDB-17 62.2 MB fragment-like 子集,符合 rule of three 思路
想要完整可下载的 GDB 全库 GDB-13 2.6 GB GDB-17 全库从未整体发布;GDB-13 的 9.77 亿结构可整体下载
更大化学空间探索 GDB-20(按 HAC 分块) 2.8-35.3 GB/块 2026 年最新代际,重原子数上限 20

§3.1 模态详情

GDB-17 是单模态分子结构库:每个样本为一个分子图(molecular graph)的 SMILES 线性表示。SMILES 为去芳构化(dearomatized)且规范化(canonized)的形式——芳香环一律写成明确的单双键交替(Kekulé 形式),分子以中性价键结构表达,不含氢原子(价键隐式)。文件内不含 3D 坐标、不含分子标识符、不含任何性质列;立体化学通过 SMILES 的 @/@@ 记号编码,且立体异构体作为独立条目计入 1,664.4 亿总数。官方建议使用 ChemAxon MarvinView 查看结构;对 AI 管线而言,RDKit 是事实上的标准解析工具。

在文件中会遇到的 SMILES 语法要素:

语法要素 示例 在 GDB-17 中的出现约定
重原子符号 C N O S F Cl Br I 仅这 8 种元素;不带电荷(中性价态)
立体记号 @ @@ 出现于手性中心;不同立体异构体为独立行
双键/三键 C=C C#N 显式写出;芳香环同样显式(无小写芳香原子记号)
环闭合数字 C1CC...C1 3-8 元环常见;3-4 元环占比可观
分支括号 (CC) 嵌套分支表达支链
氢原子 隐式 不显式写 [H];价键规则自动补氢
电荷/同位素 [NH4+] 等 不出现(枚举规则排除离子/同位素标记)

§3.2 子集与样本数

子集 分子数 获取方式 备注
GDB-17 全库 166,443,860,262 无整体下载 论文枚举总量(含立体异构体)
GDBLL-17(铅样全量) 约 290 亿 无整体下载 MW 100-350 Da、clogP 1-3
GDBLLnoSR-17(铅样无小环全量) 约 220 亿 无整体下载 在铅样基础上应用小环过滤
GDB17.50000000(随机子集) 5,000 万 官网/Zenodo,484 MB MQN 可检索的公开标准子集
GDB17.50000000LL(铅样子集) 1,100 万 官网,75 MB 从 5,000 万子集中按铅样规则筛出
GDB17.50000000LLnoSR(无小环铅样子集) 80 万 官网,55 MB 进一步剔除 3-4 元环化合物
FDB-17 约 1,000 万 官网,62.2 MB 片段库(2017 论文)
GDBMedChem 1,000 万 官网,353.6 MB 药物化学官能团与复杂度规则(2019 论文)
GDBChEMBL 1,000 万 官网,276 MB ChEMBL-likeness CLscore 均匀采样(2020 论文)

§3.3 数据格式

文件 格式 结构 编码说明
GDB17.50000000.smi.gz gzip 压缩纯文本 每行一个 SMILES,无表头、无分隔列、无 ID 去芳构化+规范化;UTF-8/ASCII 字符集
GDB17.50000000LL.smi.gz 同上 同上 铅样过滤后子集
GDB17.50000000LLnoSR.smi.gz 同上 同上 无 3-4 元小环版本
GDB-11/GDB-13 归档 tar.gz 包裹的 .smi 同上 官方注明 Windows 用户需 7-zip 解压

§3.4 存储大小

项 数值
随机 5,000 万子集(gzip) 484 MB
铅样 1,100 万子集(gzip) 75 MB
无小环铅样 80 万子集(gzip) 55 MB
全库(1,664.4 亿) 未整体发布;第三方估算压缩约 400 GB
解压后文本(5,000 万子集) 约 2-3 GB 量级(每行约 30-60 字符 SMILES)

下载前的容量与内存估算速查:

# 线性外推估算:以官方已知子集大小为锚点
# 锚点:50M 子集 gzip 484 MB;GDB-17 总量 166,443,860,262
full = 166_443_860_262
size_50m_gz = 484e6  # bytes
est_full_gz = size_50m_gz * (full / 50e6)          # 线性外推
print(f"全库 gzip 线性外推约 {est_full_gz/1e9:.0f} GB(量级与第三方估算一致,未发布)")
# 内存提示:将 50M 条 SMILES 全部读入 Python list[str] 约需 5-8 GB,
# 建议 gzip 流式 + 分块(chunked)处理;RDKit Mol 对象驻留内存开销约为
# SMILES 字符串的 30-50 倍,任何"全子集 Mol 缓存"设计都需重新评估。

§3.5 标注方式

GDB-17 没有任何人工或机器学习标注。它的"标注"是内建于枚举过程的规则系统:价键规则(有机化学价态)、H-过滤(环张力几何约束)、S-过滤(不稳定不饱和键)、F-过滤(杂原子-杂原子键合模式约束、排除半缩醛/环缩醛类不稳定基团)、P-过滤(官能团多样化白名单)。这些规则共同构成化学稳定性、可合成性与药物化学三重先验,因此每个条目可以视为"通过规则筛选的化学合理结构",但不能视为"可合成性已验证"——2020 年 GDBChEMBL 论文明确指出 GDB-17 中多数分子"过于复杂,不适合作为合成目标"。

四级规则过滤器在枚举管线中的作用(依据 JCIM 2012 论文 及第三方技术笔记):

过滤器 枚举阶段 作用 对规模的影响
图枚举(GENG/Nauty) 起点 穷举 ≤17 重原子的价键合法分子图拓扑 约 1,143 亿拓扑
H-过滤 拓扑 → 烃 几何张力规则,剔除张力过大拓扑 收敛至约 540 万稳定烃
S-过滤 烃 → 骨架 以双/三键替换饱和键,剔除丙二烯型不稳定不饱和 约 13 亿骨架
F-过滤 骨架 → CNO 分子 C→N/O 组合替换;约束杂原子-杂原子键合与稳定性 约 1,104 亿分子
P-过滤 后处理多样化 生成芳香、肟、三氟甲基、卤素、砜等官能团变体 最终 1,664.4 亿

§3.6 标注者资质与一致性

不适用(无标注者)。替代性质量控制来自方法学本身:图枚举基于经过形式化验证的 Nauty/GENG 算法(数学上完备的图生成);稳定性规则由有机化学家依据官能团稳定性知识制定;立体异构体枚举由 CORINA 3D 生成器完成,论文验证了其能正确排除不可能的异构体组合(如降冰片烷只有一个立体异构体)。

§3.7 采集周期

单次枚举工程,2012 年完成并随论文发布,此后本体未迭代。计算规模:360 核 CPU 集群、超过 40,000 个作业、约 100,000 CPU 小时(约 11 CPU 年)。

时间线上的关键节点:分子图拓扑生成与 H-过滤(烃收敛)→ 骨架化与 S-过滤 → CNO 组合枚举与 F-过滤 → P-过滤官能团多样化 → CORINA 立体异构体枚举 → SMILES 规范化落盘。2013 年补充发布 MQN 可视化与检索方法;2017-2020 年派生子集(FDB-17/GDBMedChem/GDBChEMBL)以独立论文形式扩展生态;2026 年 GDB-20 以"枚举+生成模型"混合方式把空间推至 20 个重原子。

§3.8 地域覆盖

不适用——数据为计算枚举的化学空间,与地理无关。研究团队位于瑞士伯尔尼大学(与 EPFL 合作)。

§3.9 生成软件与"设备"规格

环节 软件 许可
分子图拓扑枚举 GENG(Nauty 图生成套件) 开源
化学规则过滤与 SMILES 规范化 ChemAxon JChem(Java 1.6 定制管线) 商业专有
立体异构体/3D 生成 CORINA 商业专有
枚举源码 未公开 —

软件栈的两点提示:其一,CORINA 与 ChemAxon JChem 是商业软件,个人用户无法免费复现官方管线,但"读取与再利用"只需 RDKit 等开源工具;其二,官方 SMILES 的规范化出自 ChemAxon 体系,这是坑点 2(去芳构化形态与 RDKit 规范不一致)的根源——理解工具链差异比记忆具体差异更重要。

§3.10 深度溯源链

论文(JCIM 2012, DOI 10.1021/ci300415d,方法与统计唯一权威来源)→ 伯尔尼大学 GDB 官方网站下载页(gdb.unibe.ch/downloads/,文件级权威)→ Zenodo 归档记录 7041051(长期保存副本)→ 派生子集论文(FDB-17 2017 / GDBMedChem 2019 / GDBChEMBL 2020,各自定义子集筛选规则)。每个下载文件均可沿此链追溯至原始枚举管线;注意枚举管线源码未公开,全库重生成不可行。


§4 数据结构

§4.0 目录树

gdb17/
├── GDB17.50000000.smi.gz          # 5,000 万随机子集(484 MB)
├── GDB17.50000000LL.smi.gz        # 铅样子集,MW 100-350、clogP 1-3(75 MB)
└── GDB17.50000000LLnoSR.smi.gz    # 无 3-4 元小环铅样子集(55 MB)
# 解压后(示例):
gdb17_extracted/
├── GDB17.50000000.smi             # 每行一个 SMILES,无表头
├── GDB17.50000000LL.smi
└── GDB17.50000000LLnoSR.smi
# 同目录其他 GDB 系列文件(下载页同一仓库):
├── gdb13.tgz                      # GDB-13 全库(2.6 GB)
├── gdb11.tgz                      # GDB-11 全库(122 MB)
├── FDB-17-fragmentset.smi.gz      # FDB-17 片段库(62.2 MB)
├── GDBMedChem.smi                 # GDBMedChem(353.6 MB)
└── GDBChEMBL.smi                  # GDBChEMBL(276 MB)

§4.1 DAIMS 字段字典

GDB-17 文件只有一列隐式字段 smiles。下表同时给出该字段与论文中配套描述符体系的映射(MQN 为官方检索工具,42 个整数描述符,需用户自行计算):

字段名 类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
smiles(隐式列,唯一字段) Text 去芳构化、规范化的分子 SMILES,每行一条,无 ID C1CC2C3CCCC3C3(C4CCC3CC4)C2C1 生成模型输入/相似度计算/结构解析 无观测误差(确定性枚举);但非 RDKit 规范形式 不适用(枚举数据无缺失) ≤17 个重原子的合法有机分子图(C/N/O/S/卤素)
mqn_*(派生,需自算) Integer×42 MQN:原子计数(C/N/O/环原子等)、键级计数、环计数、立体中心计数等整数描述符 mqn_c=12, mqn_r=4 高速相似度搜索(city-block 距离)、化学空间 PCA 可视化 无(由 SMILES 确定性计算) 不适用 非负整数
inchikey(派生,建议自算) Text×27 标准化唯一标识(RDKit/InChI 生成) LKZRQOYIIWQKTM-UHFFFAOYSA-N 格式 化学感知去重、跨库桥接 无(确定性哈希;立体层由 SMILES 决定) 不适用 27 字符哈希

MQN(Molecular Quantum Numbers)42 个整数描述符的类别构成(官方定义 42 项整数描述符;逐项定义以 2013 年方法学论文为准,此处给出类别级导览,用户可用 RDKit 对应属性逐项实现):

类别 计数内容示例 在 GDB 工作流中的角色
元素原子计数 C/N/O/S/卤素原子个数 确定元素组成维度
键级计数 单键、双键、三键数量 反映饱和度与不饱和度
环系计数 环数量、共享环的键对数、芳香环相关计数 环系统复杂度(GDB 新颖性主要来源)
极性/氢键相关计数 杂原子、供体/受体型原子计数 极性空间定位(GDB 偏极性)
立体化学计数 立体中心数量 立体复杂度(GDB 6.4 vs 已知库 2.0 异构体/分子的直接决定因素)

用途:42 维整数向量上的 city-block 距离(CBD)即官方相似度度量;对全子集预计算 MQN 矩阵(5,000 万×42,float32 约 8.4 GB)后,任何查询都可毫秒级返回近邻,是 GDB-17 上唯一经过论文验证的检索方案。

§4.2 标签分布

GDB-17 无分类或回归标签。可作为"分布参照"的关键统计(均来自 JCIM 2012 论文,除注明外):

统计项 GDB-17 PubChem-17(同尺寸已知分子) 含义
平均可能立体异构体数/分子 6.4 2.0 GDB 空间立体化学复杂度约 3 倍于已知库
仅 1 个立体异构体的分子占比 22% 56% 已知库以无手性/低手性分子为主
≥8 个立体异构体占比 44% 4.1% GDB 深度覆盖多手性中心区域
极性(clogP<0)占比 显著高于参考库 — 枚举空间整体偏极性
形状分布(PMI) 大量球状/非平面分子 以棒状/盘状为主 已知库的"扁平化"源于芳香环占优

解读这组对照时的口径提示:PubChem-17/ChEMBL-17/DrugBank-17 指各库中 HAC≤17 的子集,立体异构体计数在 1,670 万分子子集上用 CORINA 完成(论文方法节)。GDB 侧的高立体异构体密度并非"数据错误",而是枚举了所有可能构型;下游若只关心连接图,请按 §5.3 建议先做立体层归并。

§4.3 关键统计

统计项 数值
分子总数(含立体异构体) 166,443,860,262
重原子上限 17(C、N、O、S、卤素,不计氢)
铅样全量子集 约 290 亿(MW 100-350 Da、clogP 1-3)
铅样无小环全量子集 约 220 亿
可下载最大子集 5,000 万(占全库约 0.03%)
枚举计算成本 约 100,000 CPU 小时、40,000+ 作业、360 核集群
立体异构体平均数/分子 6.4(GDBLL 5.7、GDBLLnoSR 5.1)
新颖度 >99% 分子为此前未知结构

§4.4 数据层级

GDB-17 的层级是化学结构层级而非临床层级:

化学宇宙 GDB-17(1,664.4 亿分子)
├── 按重原子数(HAC 1-17)分层的结构空间
│   ├── 分子量峰值区 240-250 Da
│   └── 铅样区间(MW 100-350、clogP 1-3):约 290 亿
│       └── 无小环铅样(剔除 3-4 元环):约 220 亿
├── 按环系统(ring system)聚合:GDB 新颖性的主要来源
│   └── 全新环系(如三降冰片烷型笼状体系)
├── 按 Murcko 骨架聚合:种类数倍于同尺寸已知库
├── 按官能团/化合物类别聚合(P-过滤阶段生成)
│   ├── 芳香与杂芳香类
│   ├── 饱和杂环类(占比显著高于已知库)
│   └── 卤素/三氟甲基/砜/肟取代变体
└── 立体异构体层:同一连接图的不同立体异构体=独立条目

§4.5 缺失值与信息性缺失

枚举数据不存在观测缺失:每个条目恰有一个 SMILES 字段,无空行、无填充记号。“信息性缺失编码"在此不适用。需要警惕的反向问题:字段过少导致的隐性信息缺失——没有 ID、没有来源、没有立体化学置信度(CORINA 枚举的可能异构体不区分构象稳定性差异中的罕见情况如 atropisomer),用户若把"条目存在"误读为"该立体异构体已表征”,会在下游分析中引入偏差。

实操建议:在 ETL 阶段主动物化缺失的关键信息,而不是等待官方补齐——为每条记录生成 InChIKey(主键)、HAC、MW、clogP、MQN 向量与来源文件/行号(可追溯性)。这份"增强元数据"会让后续任何分析(去重、划分、抽样、评测)从 O(N) 解析降为 O(1) 查询,也是把一个"单列文本库"变成 AI-Ready 资产的关键一步。


§5 数据划分与使用建议

§5.1 官方划分

无。GDB-17 不发布官方 train/val/test 划分——它定位是可检索分子库而非监督学习基准。可下载子集(5,000 万随机样本、1,100 万铅样、80 万无小环铅样)本身就是官方对"可用规模"的划分答案。

§5.2 社区惯例

  • 生成模型:在铅样子集内随机划分(如 95/5),或以 GDB 子集为训练集、ChEMBL/ZINC 样本为外部对照集;
  • 表示学习/自监督:随机抽样若干百万条作为预训练语料,以下游性质预测任务(如 ESOL、BBBP 等外部数据集)评估迁移;
  • 虚拟筛选:不划分——全子集作为检索库,以已知药物为查询。

§5.3 划分策略与泄漏风险(重点)

GDB-17 的"泄漏"形态与临床数据集完全不同,核心风险是结构近重复跨集:

  1. 立体异构体泄漏:同一连接图的 R/S 异构体是相邻条目;随机划分会让 train 与 test 几乎共享同一骨架,生成模型评测的 novelty 虚高。
  2. 同骨架异构体泄漏:甲基位移(“methyl walk”)类同分异构体结构高度相似;论文特别指出 GDB-17 包含大量已知药物的精确异构体与形状类似物。
  3. 缓解方案:优先做 Murcko 骨架级(或环系统级)划分(scaffold split),保证 test 集骨架在 train 中未见;或按 MQN 主成分空间分块划分;评测 novelty 时以 InChIKey(含立体层)对 train/test/参考库三方去重。
  4. 评测集 contamination:以 GDB 为"可能宇宙"检验生成新颖性时,注意 GDB-17 本体于 2012 年冻结——2012 年后新发表的分子也可能落入其中,这不构成泄漏(GDB 先于文献),反而说明枚举的预测力。

各划分策略在 GDB-17 上的适用性对比:

划分策略 操作方式 泄漏控制 适用任务 风险提示
随机划分 均匀抽样按比例切分 差(立体/骨架近重复跨集) 大规模预训练语料切分 评测 novelty 会虚高
骨架划分(scaffold split) 按 Murcko 骨架分组切分 好 生成模型泛化评测 需 RDKit 骨架提取,注意无环分子单列一组
环系统划分 按 ring system 分组切分 好(更严格) 新骨架生成能力评测 组多而小,需合并小组
MQN 空间分块 PC1/PC2 平面网格切块 中-好 分布外泛化评测 边界分子仍可能近重复
时间式对照(冻结日) 以 2012 后新发表分子为外测集 特殊 验证"枚举先于合成"叙事 需外部库版本管理

§5.4 交叉验证与外部验证建议

  • 生成任务:k-fold 意义有限,建议固定 3 个不同随机种子的大规模采样评测(validity/uniqueness/novelty/internal diversity);
  • 相似度检索任务:以 ChEMBL/PubChem 已知配体为查询、GDB 为库,用已知活性配体-诱饵对(如 DUD-E 思路)评估富集能力;
  • 外部验证:任何"GDB 来源新分子有活性"的结论必须经合成与实验测定——枚举规则不等于活性保证。

外部验证的三条可行路径:(1) 结构层验证——与合成实验闭环(三降冰片烷先例);(2) 分布层验证——将 2012 年后新发表分子与 GDB-17 对照,检验"枚举空间覆盖后续真实化学"的程度;(3) 模型层验证——以 GDB 子集预训练的表示在下游活性预测(外部标注数据集)上测试迁移增益。三条路径的结论强度依次递减,均应在报告中注明验证层级。


§6 AI 就绪指南 ⭐

§6.0 云端快速启动

以下命令在任意 Linux 云主机/Colab 可运行(约 5 分钟内完成下载与首次探查;请从官方下载页获取当前直链,Zenodo 归档见 record 7041051)。

注意事项:GDB 文件免费下载但受条款约束(引用/禁专利/禁再分发);不要把文件重新上传到公开存储。首次实验建议从 55 MB 的无小环铅样子集开始,30 分钟内即可跑通"下载→解析→建模"全链路,再按需升级到更大子集。

# 1) 创建工作目录并下载铅样子集(75 MB,生成模型首选)
mkdir -p /data/gdb17 && cd /data/gdb17
# 直链以官方下载页当前提供的 URL 为准;也可用 Zenodo 归档页的 file 链接
wget -c "https://zenodo.org/records/7041051" -O page.html   # 打开 page.html 找到 GDB17.50000000LL.smi.gz 的 files 直链后:
# wget -c "<直链>" -O GDB17.50000000LL.smi.gz

# 2) 探查文件(无需完整解压)
zcat GDB17.50000000LL.smi.gz | head -5
zcat GDB17.50000000LL.smi.gz | wc -l        # 期望约 11,000,000 行

# 3) 抽取 10 万条做快速实验
zcat GDB17.50000000LL.smi.gz | shuf -n 100000 --random-source=<(yes) > sample100k.smi

§6.1 快速上手(流式读取 + RDKit 解析)

# 目录结构预期:
#   data_root/
#     └── GDB17.50000000LL.smi.gz   ← 从官方下载页获取,data_root 即其所在目录
# data_root 拼接关系:data_root = os.environ.get("GDB17_ROOT", "/data/gdb17")
# 最小可用子集:GDB17.50000000LLnoSR.smi.gz(80 万条,55 MB)最适合首次跑通
import gzip, os

data_root = os.environ.get("GDB17_ROOT", "/data/gdb17")
path = os.path.join(data_root, "GDB17.50000000LLnoSR.smi.gz")

def iter_smiles(path, limit=None):
    """GDB 文件是无表头单列 SMILES,必须流式读取。"""
    with gzip.open(path, "rt") as f:
        for i, line in enumerate(f):
            smi = line.strip()
            if smi:
                yield smi
            if limit and i + 1 >= limit:
                break

smiles_list = list(iter_smiles(path, limit=10_000))
print(len(smiles_list), smiles_list[:3])

# RDKit 解析与芳构化(见 §6.5 坑点 2:GDB SMILES 是去芳构化形式)
try:
    from rdkit import Chem
    mols = []
    for smi in smiles_list[:100]:
        m = Chem.MolFromSmiles(smi)
        if m is not None:
            Chem.SanitizeMol(m)
            mols.append(m)
    print(f"解析成功 {len(mols)}/100")
except ImportError:
    print("pip install rdkit 后重试")

§6.2 数据获取

文件 大小 获取方式 适用场景
GDB17.50000000.smi.gz 484 MB 官方下载页点击下载;Zenodo record 7041051 归档 大规模采样/表示学习
GDB17.50000000LL.smi.gz 75 MB 同上 生成模型训练(铅样分布)
GDB17.50000000LLnoSR.smi.gz 55 MB 同上 3D/形状相关工作
FDB-17-fragmentset.smi.gz 62.2 MB 同上 片段化学
GDBMedChem.smi / GDBChEMBL.smi 353.6 MB / 276 MB 同上 高可合成性子集

获取流程要点:官方页面无注册门槛(区别于 PhysioNet 类数据集),点击即下;所有 GDB 系列文件同页分发,注意文件名中的数字对应代际(GDB11/13/17/20)与后缀(LL=铅样、LLnoSR=无小环铅样、frl=片段)。下载后先 zcat | head 确认文件完整性再投入管线——gzip 截断的错误会在解析阶段才暴露,且常被误诊为"分子解析失败"(实为文件损坏)。

# 下载校验与解压(Windows 用户请用 7-zip,官方明确提示)
import subprocess, pathlib
fname = "GDB17.50000000LL.smi.gz"
subprocess.run(["wget", "-c", fname, "-P", data_root], check=False)  # 直链见官方页
subprocess.run(["bash", "-c", f"cd {data_root} && gunzip -k {fname}"], check=False)
p = pathlib.Path(data_root) / fname.replace(".gz", "")
print(p.stat().st_size / 1e6, "MB 解压后")

§6.3 预处理全流程(标准化 → 去重 → 过滤 → 性质计算)

在进入代码前,先明确 GDB-17 专属的预处理五步框架——每一步都对应一个已知的失败模式(详见 §6.5 坑点):

步骤 目标 关键动作 对应坑点
1. 流式读取 避免全量载入内存 gzip 逐行迭代 + 分块 坑点 1(全库不可得)
2. 解析与规范化 得到统一形态 RDKit SanitizeMol + 芳构化决策 坑点 2(去芳构化 SMILES)
3. 化学感知去重 建立稳定主键 InChIKey(含立体层) 坑点 3(立体异构体)
4. 任务化过滤 控制失败模式 小环阈值/元素/性质窗口 坑点 4(小环 3D 失败)
5. 性质与描述符 供检索与建模 MQN 42 项/常用 RDKit 性质 坑点 6(检索工作流)

<details>
<summary>完整可运行预处理脚本(约 45 行,点击展开)</summary>

# 流程:读取 → RDKit 规范化+芳构化 → InChIKey 去重 → 小环/元素过滤 → 性质表
# 输入:data_root/GDB17.50000000LL.smi.gz;输出:parquet 性质表 + 去重后 SMILES
import gzip, os, polars as pl
from rdkit import Chem, RDLogger
from rdkit.Chem import Descriptors, rdMolDescriptors
from rdkit import RDConfig

RDLogger.DisableLog("rdApp.*")  # 抑制海量解析告警
data_root = os.environ.get("GDB17_ROOT", "/data/gdb17")
SRC = os.path.join(data_root, "GDB17.50000000LL.smi.gz")

def standardize(smi: str):
    m = Chem.MolFromSmiles(smi)
    if m is None:
        return None
    try:
        Chem.SanitizeMol(m)
        Chem.Kekulize(m, clearAromaticFlags=True)   # 保持与官方一致的去芳构化形态
        return Chem.MolToSmiles(m, isomericSmiles=True)
    except Exception:
        return None

rows, seen = [], set()
with gzip.open(SRC, "rt") as f:
    for i, line in enumerate(f):
        if i >= 500_000:   # 首跑建议先处理 50 万条
            break
        smi = standardize(line.strip())
        if smi is None:
            continue
        ik = Chem.MolToInchiKey(Chem.MolFromSmiles(smi))  # 化学感知去重主键(含立体层)
        if ik in seen:
            continue
        seen.add(ik)
        m = Chem.MolFromSmiles(smi)
        n_small_ring = sum(1 for r in m.GetRingInfo().AtomRingSizes()
                           if len(r) in (3, 4))
        rows.append({
            "smiles": smi, "inchikey": ik,
            "mw": Descriptors.MolWt(m),
            "clogp": Descriptors.MolLogP(m),
            "hbd": rdMolDescriptors.CalcNumHBD(m),
            "tpsa": rdMolDescriptors.CalcTPSA(m),
            "sp3": rdMolDescriptors.CalcFractionCSP3(m),
            "stereo_centers": len(Chem.FindMolChiralCenters(m, includeUnassigned=True)),
            "small_rings": n_small_ring,
        })

df = pl.DataFrame(rows)
df.write_parquet("gdb17_ll_processed.parquet")
print(df.select(["mw", "clogp", "sp3", "stereo_centers"]).describe())
# 注意:官方 SMILES 的规范化形式与 RDKit 不同,此处 standardize 后的 SMILES
# 才是可比较、可去重的形式(坑点 2);如需与官方逐字对齐请勿 aromatize 往返。

</details>

§6.4 PyTorch DataLoader(SMILES 字符级生成任务)

<details>
<summary>完整可运行 Dataset + DataLoader 代码(约 50 行,点击展开)</summary>

# 目录结构预期:data_root/GDB17.50000000LL.smi.gz(同 §6.1)
# 任务:字符级 SMILES 语言模型(预训练或生成),可替换为 SELFIES 表示提升稳健性
import gzip, os, random, torch
from torch.utils.data import Dataset, DataLoader

data_root = os.environ.get("GDB17_ROOT", "/data/gdb17")
PATH = os.path.join(data_root, "GDB17.50000000LL.smi.gz")

class GDB17Dataset(Dataset):
    def __init__(self, path, max_len=80, limit=1_000_000, seed=42):
        smis, rng = [], random.Random(seed)
        with gzip.open(path, "rt") as f:
            for i, line in enumerate(f):
                s = line.strip()
                if s:
                    smis.append(s)
                if i + 1 >= limit:
                    break
        # 字符级词表(GDB SMILES 字符集稳定: organics + 卤素 + 立体记号)
        chars = sorted({c for s in smis for c in s}) + [" ", "<bos>"]
        self.stoi = {c: i for i, c in enumerate(chars)}
        self.data = [s for s in smis if len(s) <= max_len]

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        s = "<bos>" + self.data[idx]
        ids = torch.tensor([self.stoi[c] for c in s], dtype=torch.long)
        return ids

def collate(batch, pad_id=None):
    pad_id = pad_id if pad_id is not None else 0
    maxlen = max(len(x) for x in batch)
    out = torch.full((len(batch), maxlen), pad_id, dtype=torch.long)
    for i, x in enumerate(batch):
        out[i, : len(x)] = x
    return out

ds = GDB17Dataset(PATH, limit=200_000)
loader = DataLoader(ds, batch_size=256, shuffle=True, num_workers=2,
                    collate_fn=collate, pin_memory=True)
for batch in loader:
    # batch: [B, T] 字符 id 序列 → 直接喂 nn.Embedding + Transformer/GRU
    print(batch.shape)
    break

</details>

§6.5 坑点 8 个

⚠️ 坑点 1:把"1,664 亿全库"当作可下载数据设计管线(分类:工程陷阱)

问题:GDB-17 全库从未整体发布,官方仅提供 5,000 万随机子集与两个预过滤铅样子集;第三方估算全库压缩约 400 GB 且无发布计划。按全库设计的训练/索引管线在第一步就会失败。
症状:在 Zenodo 与官网找不到全库链接,或误把 5,000 万子集当成全库报告"规模=5,000 万";下载 484 MB 后误以为数据残缺。
解决:

  1. 简单方法:接受"子集即数据"——5,000 万随机子集是官方设计的代表性样本,论文的 MQN 检索演示即基于它。
  2. 进阶方法:需要更大空间时改用 GDB-13(9.77 亿,2.6 GB 整库可下)或 GDB-20(按 HAC 分块,2.8-35.3 GB/块),在论文中如实引用对应代际规模。
  3. SOTA 方法:确需 GDB-17 规模的枚举宇宙做参照时,用 MQN 等描述符空间对子集加权外推,并明确声明估计性质。
    参考:官方下载页;JCIM 2012 论文

⚠️ 坑点 2:去芳构化 SMILES 导致字符串匹配与去重失败(分类:预处理陷阱)

问题:官方明确所有分子存储为"dearomatized, canonized SMILES"——芳香环写成 Kekulé 单双键交替形式,且规范化算法非 RDKit。用 SMILES 字符串做精确匹配、unique() 或与 PubChem/ChEMBL 的 SMILES 对齐时,同一分子会以不同字符串出现。
症状:去重后"重复"分子依然成对出现;与已知库 join 时命中率异常低;Tanimoto 相似度为 1.0 的两条记录字符串却不同;分子量/键数完全一致的条目无法合并。
解决:

  1. 简单方法:读入后用 RDKit MolFromSmiles + SanitizeMol,以 RDKit canonical SMILES 作为统一键。
  2. 进阶方法:以 InChIKey(27 字符,含立体层)作为主键去重,再按需保留 isomericSmiles;跨库桥接一律用 InChIKey 前 14 位(骨架层)评估"同骨架"关系。
  3. SOTA 方法:在大规模 ETL 中缓存 standardize 结果(如 MolVS/datamol 管线),并对 Kekulé 往返做幂等性断言测试,防止下游再芳香化/再去芳香化漂移。
    参考:官方下载页格式说明;RDKit Chem.MolToSmiles/MolToInchiKey 文档

⚠️ 坑点 3:忽略立体异构体——1,664 亿的计数方式与"重复"假象(分类:标签理解)

问题:GDB-17 的 1,664.4 亿包含立体异构体(前代 GDB-11 的 2,640 万结构对应 1.109 亿立体异构体,同样口径)。忽略 @/@@ 记号做去重,会把真实手性变体错误合并;反之在不需要立体信息的任务里保留它们会重复计数骨架。
症状:统计"独特分子数"时与文献口径对不上(差 3-6 倍);生成模型学到的"多样性"其实是立体化学而非骨架多样性;同骨架样本在 train/test 间成对出现(见 §5.3 泄漏)。
解决:

  1. 简单方法:明确任务口径——立体化学敏感任务(如手性药物建模)保留 stereo,并用含立体层的 InChIKey 去重;骨架级任务先剥离 stereo。
  2. 进阶方法:按"连接图 + 立体层"两级键去重,分别报告两个口径的计数;scaffold split 以无立体骨架为分组键。
  3. SOTA 方法:用 MQN(42 整数描述符)+ 立体中心数做分层采样,保证 split 在两个层级上都不重叠。
    参考:JCIM 2012 论文立体化学分析(GDB 6.4 vs PubChem 2.0 异构体/分子)

⚠️ 坑点 4:小环(3-4 元环)化合物引爆 3D 生成与力场优化(分类:预处理陷阱)

问题:GDB 空间富含 3-4 元小环(官方专门发布"无小环铅样"子集侧面印证其占比可观)。小环张力大,3D 嵌入(ETKDG)、力场优化与构象系综生成失败率高、易产生畸变几何。
症状:AllChem.EmbedMolecule 返回 -1;MMFF/UFF 优化后键长键角异常;ROCS/形状比较报错或得分失真;SAscore 分布整体右移。
解决:

  1. 简单方法:直接使用 GDB17.50000000LLnoSR.smi.gz(80 万无小环铅样)。
  2. 进阶方法:自建过滤——用 RingInfo.AtomRingSizes() 统计 3/4 元环数量,按任务设定阈值;嵌入失败重试时启用 useRandomCoords=True 并降级到 UFF。
  3. SOTA 方法:批量 3D 生成走"先 MQN 分块 + 每块并行 + 失败清单回捞"的管线,并记录失败率作为数据质量指标;参考论文用 CORINA 做官方立体/3D 处理。
    参考:官方下载页 LLnoSR 子集;JCIM 2012 论文小环过滤规则(3 元环禁桥头等)

⚠️ 坑点 5:把 GDB 子集与已知库组合成"负样本/正样本"训练判别器(分类:偏倚陷阱)

问题:GDB-17 是规则枚举分布,与 ChEMBL/ZINC 的差异混合了"真实化学差异"与"数据库收集偏倚"(已知库偏芳香、偏已合成)。用它当负样本训练"药物样性"分类器,模型学到的是数据库来源指纹而非药物化学规律。
症状:分类器在 GDB vs ChEMBL 上 AUC≈1.0 但迁移到 ZINC vs ChEMBL 完全失效;解释性分析发现模型高权重特征是"芳香环数量"这类库级特征;换一个负样本库结论反转。
解决:

  1. 简单方法:避免库级二分类;如必须,用性质匹配(MW/clogP 分桶配对)后再对比。
  2. 进阶方法:在匹配的性质桶内做骨架分层对照,或以 MQN 空间最近邻配对消融库效应。
  3. SOTA 方法:采用"枚举宇宙为参照、性质条件化采样"的生成式评估(对齐 GDBChEMBL 的 CLscore 思路:以子结构频率评分代替库级标签)。
    参考:GDBChEMBL 论文(Bühlmann & Reymond, Front. Chem. 2020);JCIM 2012 论文 GDB vs PubChem 偏倚分析

⚠️ 坑点 6:跳过 MQN 预过滤直接对全子集跑 3D 相似度(分类:工程陷阱)

问题:官方工作流是"MQN 指纹(42 整数描述符)+ city-block 距离粗筛 → 3D 形状精筛"。跳过第一步直接对数千万分子做 ROCS/形状生成与比较,计算成本高 2-3 个数量级,且论文显示 97% 以上真命中集中在 CBD(MQN)≤12 邻域,粗筛几乎不损失召回。
症状:虚拟筛选跑了几天没出结果;显存/内存被构象系综占满;精筛结果全部集中在某个 MQN 邻域内,浪费的正是粗筛能剪掉的部分。
解决:

  1. 简单方法:计算 MQN(RDKit 逐项可算),以查询分子 CBD(MQN)≤12 剪枝后再做 3D 精筛。
  2. 进阶方法:预计算并索引整个子集的 MQN 向量(numpy 矩阵 + scipy.spatial.cKDTree/sklearn.NearestNeighbors),毫秒级返回候选。
  3. SOTA 方法:MQN 空间 PCA 可视化+按区域批量检索,配合 faerun.gdb.tools 交互地图人工核对空间位置。
    参考:Ruddigkeit et al., JCIM 2013(MQN 可视化与 LBVS 方法学)

⚠️ 坑点 7:假设 GDB 分子"可直接对接/可直接购买"(分类:工程陷阱)

问题:GDB 文件只有 2D SMILES,无 3D 坐标,不是 ready-to-dock 库;且分子非商品化化合物,任何湿实验验证都需要定制合成。VirtualFlow 综述明确将"仅 SMILES 格式、需定制合成"列为 GDB 系列两大缺点。
症状:对接管线在"生成 3D"步骤失败率畸高(叠加坑点 4 的小环问题);项目排期按"可购买库"估算,湿实验阶段发现合成报价远超预算或路线不可行。
解决:

  1. 简单方法:筛选候选时联合 SAscore/GDBscore 与合成路线可达性( retrosynthesis 工具)预判。
  2. 进阶方法:需要对接就绪库时改用 ZINC15(可购买+3D);GDB 候选先做"可合成性 triage"再进入 3D/对接流程。
  3. SOTA 方法:对高价值 GDB 骨架走"骨架简化+商品化砌块拼接"的类 GDBChEMBL 路径,用 CLscore/子结构频率过滤后再合成。
    参考:Ultra-large VS 综述(arXiv:2211.03208);GDBChEMBL 论文

⚠️ 坑点 8:忽视许可红线——专利与再分发(分类:工程陷阱)

问题:GDB 条款与常见开放数据许可(CC-BY 等)差异显著:免费下载但 (a) 发表研究必须引用对应文献;(b) 不得将 GDB 用于专利或作为专利的一部分;© 未经 Jean-Louis Reymond 书面许可不得再分发 GDB 及其大部分内容。
症状:把 5,000 万子集打包进公司内部数据湖/公开 HuggingFace 仓库(再分发违规);基于 GDB 检索结果的分子系列直接申请专利(条款风险);论文发表漏引 GDB 文献。
解决:

  1. 简单方法:项目启动即把三条条款写入数据治理清单;论文/产品文档固定引用 Ruddigkeit et al. 2012(及所用子集论文)。
  2. 进阶方法:对外分发时只提供"基于 GDB 训练的模型/衍生描述符统计",不 redistribute 原始分子列表;用户数据管道以"下载脚本+官方链接"代替数据打包。
  3. SOTA 方法:涉及专利布局的项目,将 GDB 用途限定为"内部新颖性筛查/排除性检索",由法务确认条款边界后再使用任何 GDB 衍生物。
    参考:官方条款(下载页 Terms and conditions)

§6.6 数据增强(安全 ✅ / 危险 ❌)

操作 判定 说明
SMILES 随机枚举(多写法增强) ✅ 同一分子多种线性化是标准的表示学习增强;注意去芳构化形态保持一致
立体化学翻转(R↔S)作为增强 ✅(谨慎) 仅在立体化学无关任务中;手性敏感任务这是标签篡改
同位素标记/电荷扰动 ❌ GDB 分子为中性标准价态,扰动产生规则外的非法化学
随机删原子/断键(图噪声) ❌ 极易产生违背 GDB 稳定性规则的自由基/卡宾等无效图
MQN 空间插值后解码 ⚠️ 只在配 descriptors→结构解码器(如条件生成)时可用,需校验输出合法性
外推采样(HAC>17 区域) ⚠️ 超出 GDB-17 定义域,评测 novelty 时应声明

增强策略的取舍原则:GDB-17 的价值在"真实但未见的结构分布",任何增强都不应破坏这一点。SMILES 随机枚举只改变表示、不改变分布,是最安全的默认增强;一切改变分子图本身的操作(删原子、改电荷、翻转立体)都会把样本移出"规则定义的化学合理空间",等于用人工伪影污染参照系。若任务确实需要图级扰动(如图对比学习),建议对扰动后的样本重新过一遍价键与稳定性检查(RDKit SanitizeMol + 官方规则的近似实现),并单独统计扰动通过率作为数据质量指标。

§6.7 模型推荐

任务 推荐模型/方法 起点数据 理由
SMILES 生成/预训练 字符级 Transformer/GRU;VAE(ChemVAE 框架) GDB17.50000000LL(1,100 万) 铅样分布接近药物空间;ChemVAE 已有 GDB-17 成功先例
图生成 自回归图模型/扩散模型(节点=重原子) 80 万无小环铅样起步 先排除小环降低失败模式,再扩展
相似度检索/LBVS MQN + city-block 距离(官方),3D 精筛用 ROCS 类工具 5,000 万子集 论文验证的工作流,>97% 命中在 CBD≤12
化学空间可视化 MQN 主成分分析(PC1-PC2 平面) 任意子集 官方可视化方法,成本低
分子表示学习 自监督(掩码 SMILES/对比学习)后接下游性质回归 5,000 万子集 语料大、分布广、无标签干扰
可合成性感知生成 CLscore/子结构频率引导的条件生成 GDBChEMBL(1,000 万) 官方子集自带可合成性先验
片段连接/骨架跳变设计 片段对检索 + linker 生成 FDB-17(约 1,000 万) 片段库体积小、rule-of-three 兼容
立体化学感知建模 含立体记号的字符级模型 + 手性敏感评测 铅样子集 GDB 立体异构体密度是其独特资产

§6.8 硬件需求

场景 CPU 内存 GPU 磁盘 说明
读取/抽样/性质计算(80 万-1,100 万条) 4-8 核 8-16 GB 无 5-20 GB gzip 流式即可
全 5,000 万子集 ETL+InChIKey 去重 16-32 核 32-64 GB 无 50 GB InChI 生成是瓶颈,多进程并行
字符级生成模型训练(1,100 万条) 8 核 32 GB 1×24 GB 100 GB 单卡 A100/4090 级别足够
MQN 全子集索引+检索 8 核 16 GB 无 10 GB 42×5,000 万矩阵约 8.4 GB(float32)
批量 3D 嵌入(百万级) 32-128 核 64 GB 可选 200 GB CPU 并行为主,参照官方 360 核量级

配置选择的拇指法则:这个数据集的所有重型计算都随"子集大小 × 每分子成本"线性伸缩,且没有分布式上的必要——gzip 文件天然可分片,任何单机多进程方案都能扩展到 5,000 万子集;真正需要分布式的是全库枚举量级的工作(官方当年用了 360 核),对子集用户来说属于过度设计。

§6.9 评估指标代码

# 生成模型标准三指标:validity / uniqueness / novelty(相对 GDB 训练集)
from rdkit import Chem, RDLogger
RDLogger.DisableLog("rdApp.*")

def evaluate(generated, train_set):
    valid, canon = [], set()
    for s in generated:
        m = Chem.MolFromSmiles(s)
        if m is not None:
            c = Chem.MolToSmiles(m, isomericSmiles=True)
            valid.append(c)
            canon.add(Chem.MolToInchiKey(m))
    train_keys = {Chem.MolToInchiKey(Chem.MolFromSmiles(s))
                  for s in train_set if Chem.MolFromSmiles(s)}
    uniqueness = len(set(valid)) / max(len(valid), 1)
    validity = len(valid) / max(len(generated), 1)
    novelty = (len(canon - train_keys) / len(canon)) if canon else 0.0
    return {"validity": round(validity, 4),
            "uniqueness": round(uniqueness, 4),
            "novelty": round(novelty, 4)}

# 提醒:novelty 分母若不含立体层(InChIKey 完整 27 字符),
# 立体异构体会被误判为"已见"(坑点 3)。

官方风格的 MQN 相似度检索(city-block 距离粗筛):

# MQN 简化版示意:用少量整数描述符演示 CBD 检索框架。
# 生产实现请按 2013 年论文的 42 描述符完整定义逐项实现。
# PATH 沿用 §6.1 定义:os.path.join(data_root, "GDB17.50000000.smi.gz")
import gzip, numpy as np
from rdkit import Chem, RDLogger
RDLogger.DisableLog("rdApp.*")

def simple_mqn(smi: str):
    m = Chem.MolFromSmiles(smi)
    if m is None:
        return None
    ri = m.GetRingInfo()
    return np.array([
        sum(1 for a in m.GetAtoms() if a.GetSymbol() == "C"),
        sum(1 for a in m.GetAtoms() if a.GetSymbol() == "N"),
        sum(1 for a in m.GetAtoms() if a.GetSymbol() == "O"),
        ri.NumRings(),
        len(Chem.FindMolChiralCenters(m, includeUnassigned=True)),
    ], dtype=np.int32)

# 预索引(只做一次,向量化存储)
index_smiles, index_vec = [], []
with gzip.open(PATH, "rt") as f:
    for i, line in enumerate(f):
        if i >= 200_000:
            break
        v = simple_mqn(line.strip())
        if v is not None:
            index_smiles.append(line.strip())
            index_vec.append(v)
M = np.vstack(index_vec)

# 查询:CBD(MQN) ≤ 12 的近邻(论文中 97% 以上形状类似物落于该窗口)
query = simple_mqn("CN1C=NC2=C1C(=O)N(C)C(=O)N2C")   # 以咖啡因为查询示例
d = np.abs(M - query).sum(axis=1)
hits = [index_smiles[j] for j in np.where(d <= 12)[0]]
print(f"{len(hits)} 个 CBD≤12 近邻,最近 3 个:")
for s in sorted(zip(d, index_smiles), key=lambda x: x[0])[:3]:
    print(s)

§6.10 MLOps 笔记

  • 数据版本:GDB-17 本体 2012 年冻结,把"文件 SHA256 + 官方页快照日期"写入数据卡;子集与代际(GDB-13/17/20)必须在实验追踪中区分。
  • 许可合规进 CI:在数据接入流水线加一条检查——产物中不得包含未加工的 GDB 分子列表再分发;论文模板预置引用块。
  • 确定性:枚举数据无随机性,但采样/划分需固定 seed;跨库去重键(InChIKey 版本)随 RDKit/InChI 升级可能变化,需在 CI 中固化工具版本。
  • 监控:生成任务持续监控 validity/uniqueness/novelty 三指标漂移;检索任务监控 MQN 邻域命中密度。
  • 成本:任何"全库级"计算(对接、3D、ADMET 预测)先在 5,000 万子集的 1% 抽样上估算单条成本,再外推——全库量级(1,664.4 亿)会让小时级任务变成世纪级任务。
  • 特征存储:MQN 向量与 InChIKey 建议一次性物化到列存(parquet/duckdb),避免每次实验重复解析 5,000 万条 SMILES——RDKit 解析吞吐约数千条/秒/核,全子集单核需数小时。
  • 失败清单治理:解析失败、嵌入失败的分子应落盘为独立清单(附原因码),作为数据质量指标纳入模型卡;GDB-17 的解析失败率本身应接近 0(枚举保证价键合法),异常升高即提示文件损坏或版本混用。

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
枚举规则偏倚 稳定性/可合成性规则排除半缩醛、aminal、无环缩醛等官能团与高张力拓扑,部分实际可存在的结构被系统性排除 中 结合更宽松枚举(GDB-20)或专项枚举工具交叉验证
元素范围偏倚 不含 P、Si、B 等药物化学常见元素 中 明确任务边界;涉磷/硅化学另行建库
极性偏斜 clogP<0 极性分子占比高于已知库 中 用铅样子集(clogP 1-3)或按 clogP 分层采样
小环过表达 3-4 元环化合物占比高(官方为此专设无小环子集) 中 LLnoSR 子集或自建环大小过滤
"可合成性≠已合成"偏倚 规则过滤通过不等于可实际合成;GDBChEMBL 论文指出多数分子过于复杂 高 叠加 SAscore/CLscore/逆合成工具 triage
参照系偏倚 作为"可能宇宙"参照时,2012 年后已知库增长不改变 GDB 定义域 低 对比时声明 GDB 冻结日期
官方规范化漂移 官方 SMILES 规范化算法(ChemAxon 系)与 RDKit 不同,跨工具往返可能引入形式差异 中 统一以 InChIKey 为对齐键(坑点 2)
子集代表性 公开子集仅约 30 万分之一全库;极端结构(高张力/多卤素)可能在子集中欠采样 中 对尾部结构做专项检索或改用 GDB-20 分块

§7.2 标注质量

无人工标注,质量风险不在标注者一致性而在规则系统本身:规则由论文作者基于有机化学稳定性知识制定(H/S/F/P 四级过滤器),未公开逐条规则的代码实现(Java 管线未发布),外部无法逐规则复现。立体异构体枚举由 CORINA 完成,论文验证其能正确排除不可能异构组合(如降冰片烷单异构体)。用户应以"规则定义的化学合理空间"理解数据质量,而非"实验验证的空间"。

需要注意的边界情况:论文的异构体计数基于 CORINA 的 2D→3D 立体生成,atropisomer(阻转异构)等罕见立体现象未被单独枚举;化合物手性拆分信息(如外消旋体的对映体纯度)自然不存在。因此,“立体异构体条目"应理解为"构型可区分的理论异构体”,而非"已实现立体选择性合成的异构体"。对大多数建模任务这一差别可忽略,但在手性药物建模中需谨慎(见坑点 3)。

§7.3 泛化性

场景 失效风险 证据/机制
在已知库上训练的性质预测模型 → 应用于 GDB 采样分子 高 GDB 空间骨架/立体化学/极性分布与已知库显著不同(JCIM 2012 对照分析),协变量移位严重
以 GDB 为训练分布的生成模型 → 生成"可合成先导" 高 多数 GDB 分子过于复杂(GDBChEMBL 2020),需 CLscore/SAscore 再过滤
GDB 子集上训练的"药物样性"分类器 → 迁移到 ZINC/ChEMBL 高 库级偏倚指纹(坑点 5)
MQN 检索工作流 → 新靶点配体发现 中 方法学在 15 个药物上验证(JCIM 2013),但活性仍需实验确认
枚举规则 → 判断"分子能否存在" 低-中 规则过严排除部分稳定结构;但反向判断(规则内=化学合理)有合成实例支撑(三降冰片烷 2017 合成)

§7.4 伦理

GDB-17 为纯计算分子结构数据,不含人类受试者信息,隐私风险为零。值得注意的伦理考量是双用途极低但合规风险实在:条款明文禁止专利用途与再分发(见坑点 8),学术与商业用户都应遵守;此外,作为去 novo 设计工具链的一环,其输出分子最终进入药物研发流程时,安全性责任在下游实验与临床验证环节,与任何计算筛选工具一致。

另一个值得说明的层面是生态责任:枚举空间包含可设想的所有稳定性合规小分子,理论上也涵盖潜在滥用物质的结构空间,但 GDB-17 不提供活性/毒性预测,本身不构成制毒知识(无合成路线、无活性信息),其学术定位与开放发布被广泛接受。使用者若在受管制物质领域开展工作,应遵守所在地法律对分子设计输出的附加监管。

§7.5 公平性

不适用于人群公平性维度(无人口统计变量)。结构公平性维度上需注意:元素白名单(无 P/Si/B)与官能团排除规则形成了对"化学多样性"的人为边界,跨领域用户(材料、农化)应检查其目标化学空间是否被规则覆盖——2025 年 DAC 材料研究即主动限定在 GDB 的胺类子空间内。

§7.6 数据漂移

GDB-17 本体静态冻结(2012-11),无时间漂移。漂移风险存在于参照系:ChEMBL/PubChem/DrugBank 持续增长,"GDB vs 已知库"的差值统计(如新颖度 >99%)会随时间缓慢缩小;跨库对比实验应记录参照库版本与日期。

§7.7 DAIMS 数据集审计与互操作性清单

# 检查项 状态 说明
1 宽格式 ✅ 单列 SMILES 文本,天然宽格式
2 唯一标识 ⚠️ 无官方 ID;SMILES 非稳定标识,需自建 InChIKey 主键
3 特殊字符 ✅ SMILES 字符集稳定,无制表符/引号陷阱
4 重复行 ⚠️ 官方规范化非 RDKit 规范,字符串级去重不可靠(坑点 2)
5 缺失编码 ✅ 枚举数据无缺失值
6 标签标识 ❌ 无任何标签列
7 罕见类分组 ⚠️ 无类别;稀有结构(如高张力环系)需自建分组统计
8 偏倚评估 ✅ 论文提供与 PubChem/ChEMBL/DrugBank 的系统偏倚对照
9 数据字典 ❌ 官方无字段字典(仅一列,影响有限)
10 信息性缺失解释 ✅ 不适用(无缺失机制);字段过少风险已在 §4.5 说明
11 设备记录 ❌ 无(枚举数据无测量设备;软件栈见 §3.9)
12 共线性 ✅ 不适用(单字段)
13 编码映射 ⚠️ 去芳构化 SMILES 与主流库编码约定不同,需标准化映射
14 时间戳处理 ❌ 无时间戳(本体冻结于 2012-11)
15 划分建议 ⚠️ 无官方划分;本页 §5.3 提供 scaffold split 方案
16 泄漏讨论 ⚠️ 官方未讨论;本页 §5.3 系统分析立体/骨架泄漏
17 标签分布 ❌ 无标签可分布化;性质分布见 §4.2
18 测量偏倚 ✅ 不适用(确定性枚举,无测量过程)
19 外部验证建议 ✅ 官方提供 MQN 检索协议;本页 §7.8 汇总外部验证实例
20 版本记录 ❌ 无版本机制(单次发布;派生子集各有论文)
21 预处理脚本 ❌ 官方未提供;本页 §6.3 提供完整脚本
22 合规要求 ⚠️ 自定义条款(禁专利/禁再分发)清晰但非标准许可证,需法务对接
23 多模态对齐 ✅ 单模态数据集,不适用
24 去标识化 ✅ 无人类数据,隐私风险为零

DAIMS 评分:13.5 / 24

评分解读:该得分刻画的是"通用数据治理框架对分子枚举库的适配度"。GDB-17 在数据完整性(无缺失、无测量误差、无隐私风险)上近乎满分,失分集中在标签体系(0 个标注字段)、版本与数据字典治理(静态单次发布)以及跨库编码互操作(去芳构化 SMILES)三类结构性特征——这些是"枚举参考库"类数据的共性,而非数据质量问题。13.5/24 在本库分类中属于"治理简单但需要用户自建大量基础设施"的类型。

对你意味着什么:(1) 落地第一步是自建主键与去重管线(InChIKey),这决定了后续一切跨库与评测的可信度;(2) 不要等待官方标签——把它当作无监督/生成任务的分布参照,监督信号一律来自外部活性库;(3) 合规不是形式:专利与再分发禁令必须进入项目法务与数据治理流程;(4) 若你的任务依赖版本化、字段丰富、可追溯的数据治理(如临床多模态研究),这个数据集只适合做对照语料而非主干。

按角色拆分的行动清单:数据工程师——先跑通 §6.3 ETL 并物化 InChIKey/MQN 元数据,再谈建模;算法研究员——评测脚本必须含立体层去重与骨架 split(§5.3/§6.9),否则 novelty 数字不可信;项目负责人——把许可三条红线写进项目章程(§7.7 第 22 项),并在选型时优先考虑 §3.0 矩阵中更贴合任务的子集而非"越大越好";论文作者——按 §9.3 最小合规清单准备数据可用性声明。

§7.8 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部变化 关键发现
15 个已上市药物(JCIM 2013) 伯尔尼大学 形状类似物检索(LBVS) ROCS>1.6 且 T(SF)<0.5 的类似物数;>97% 命中位于 CBD(MQN)≤12 — MQN 粗筛可高效聚焦 3D 精筛,约束剪枝有效
SRC/ABL 激酶抑制剂空间(Int J Mol Sci 2022) PMC 收录研究 VAE 生成与潜在空间扰动设计 生成分子有效率、高激酶抑制似然(KIL>0.75)占比>25%(LCK→SRC 方向约 40% 高相似新分子) — GDB-17 铅样集+FDB-17 训练的 ChemVAE 可产生与已知激酶药高相似的全新分子
DAC 材料胺位点(Commun. Chem. 2025) Nature 系期刊 跨领域高通量 ML 筛选 约 160 万 GDB-17 分子 CO2 结合焓预测;GDBscore>0.64 且 SAscore<3.4 过滤 — GDB 枚举空间可迁移至材料/碳捕集领域
三降冰片烷合成验证(2017,巴塞尔大学) Marcel Mayor 组 合成可行性 成功合成 GDB-11 预测的笼状分子 — 枚举空间中"纸上分子"具有化学现实性

§8 基准性能与生态

§8.1 排行榜与代表性结果

GDB-17 没有标准的有监督基准与排行榜——它不是标注数据集,社区未形成统一的划分/指标协议。以下是可复现的代表性研究结果(数值来自各自论文,实验设置不同,不可直接互比):

排名 方法/研究 任务与性能 年份 关键技术 完整引用 代码
1 GDB-17 MQN-LBVS(官方工作流) 15 个药物的形状类似物检索;>97% 类似物位于 CBD(MQN)≤12 2013 MQN 42 整数描述符 + city-block 指纹 + ROCS 精筛 Ruddigkeit, L.; Blum, L. C.; Reymond, J.-L., J. Chem. Inf. Model., 2013, 53(1), 56-65. DOI 10.1021/ci300535x 未公开
2 GDB-17 枚举与表征(原始论文) 1,664.4 亿分子枚举;立体异构体/形状/骨架系统分析 2012 GENG 图枚举 + H/S/F/P 过滤 + CORINA Ruddigkeit, L.; van Deursen, R.; Blum, L. C.; Reymond, J.-L., J. Chem. Inf. Model., 2012, 52(11), 2864-2875. DOI 10.1021/ci300415d 未公开
3 GDB-17 铅样集训练的 ChemVAE 激酶探针生成;LCK→SRC 方向约 40% 高相似新分子;>25% 生成分子具高激酶抑制似然 2022 SMILES VAE + 潜在空间聚类扰动 见 §8.3 输入来源 [9](Int. J. Mol. Sci. 2022, 23(19), 11262, DOI 10.3390/ijms231911262) 未公开
4 DAC 材料筛选 约 160 万 GDB-17 分子的 CO2 结合焓 ML 预测 2025 高通量计算 + GBDT/ML 回归 + GDBscore/SAscore 过滤 见 §8.5(Commun. Chem. 2025) 未公开

§8.2 SOTA 总结与选型建议

GDB-17 生态的"最强方法"取决于任务:检索任务的黄金标准仍是官方 MQN-CBD 预过滤+3D 精筛两级工作流(2013 年验证,至今无更高效的公开替代);生成任务没有"最好模型",只有"最适配的评估协议"——在 GDB 子集上训练、以 validity/uniqueness/novelty+骨架多样性评测,并警惕坑点 5 的库级偏倚;可合成性导向的任务直接从 GDBChEMBL/GDBMedChem 子集出发比在全库上事后过滤更高效。选型建议:先定任务(检索 vs 生成 vs 参照),再选子集(§3.0 矩阵),最后按 §6.5 排坑。

与主流基准思维的最大差异:在 ChEMBL/MoleculeNet 类榜单上,"性能"意味着对已有标注的拟合与外推;在 GDB-17 上,"性能"意味着对可能空间的覆盖与保真。把前者的排行榜心态带进后者(刷一个 validity 分数)会系统性忽略更重要的维度——novelty 相对真实化学的意义、骨架多样性的可合成性代价、以及许可合规。

§8.3 评测协议建议

  1. 生成协议:训练集=GDB17.50000000LL;采样 100 万条;报告 validity(RDKit 可解析率)、uniqueness(InChIKey 去重)、novelty(对训练集+GDB 参照抽样+PubChem 当日快照三方去重)、内部多样性(Tanimoto 均距);固定 3 个种子报告均值±方差。
  2. 检索协议:查询=已知药物 MQN 向量;库=5,000 万子集全量 MQN 索引;剪枝 CBD(MQN)≤12;精筛 3D 形状(ROCS 或开源等价);报告 top-k 命中率与骨架新颖比例。
  3. 参照协议(新颖性声明):任何"我们的分子是新的"表述,需对 GDB-17 可得子集做 InChIKey 全比对(含立体层),并声明"仅覆盖 0.03% 全库"的限制。

评测中的"不可直接比较"声明模板:GDB-17 相关结果的性能数字(validity/uniqueness/novelty、检索命中率、生成分子活性似然)依赖训练子集代际(GDB-11/13/17/20)、子集版本、去重口径(是否含立体层)与对照库快照日期。任何跨论文的数字对比都应先核对这四项设置,否则差异可能全部来自协议而非模型能力。

数据集 规模 关系 链接
GDB-11 2,640 万结构(1.109 亿立体异构体) 前代(≤11 重原子) gdb.unibe.ch
GDB-13 977,468,314 结构 前代(≤13 重原子,整库可下载) 同上
GDB-20 12,092,137,338(估计 32 万亿空间的子集) 后继(≤20 重原子,生成模型辅助) 同上
FDB-17 约 1,000 万 GDB-17 片段子集 同上
GDBMedChem 1,000 万 药物化学规则子集 同上
GDBChEMBL 1,000 万 ChEMBL 相似度子集+交互地图 同上 / faerun.gdb.tools
ChEMBL 数百万级已知活性化合物 有标注的已知分子参照 ebi.ac.uk/chembl
ZINC15 约 1.2 亿可购买化合物(2015) 可购买+对接就绪 3D zinc15.docking.org
PubChem 超 1 亿已知分子 最大公共已知分子库 pubchem.ncbi.nlm.nih.gov
QM9 133,885 个小分子(≤9 重原子)+ 量子化学性质 小分子量子性质基准(枚举子空间) 量子性质任务与 GDB 互补
Enamine REAL 数十亿级可按需合成化合物 商业按需合成库(与 GDB 同为超大虚拟库,但商业服务化) 对接/购买导向的大库对照

§8.5 关键论文 Top 6

  1. Ruddigkeit, L.; van Deursen, R.; Blum, L. C.; Reymond, J.-L. “Enumeration of 166 Billion Organic Small Molecules in the Chemical Universe Database GDB-17.” J. Chem. Inf. Model. 2012, 52(11), 2864-2875. DOI 10.1021/ci300415d — 主论文:枚举规则、总量、立体化学与形状分析。
  2. Ruddigkeit, L.; Blum, L. C.; Reymond, J.-L. “Visualization and virtual screening of the chemical universe database GDB-17.” J. Chem. Inf. Model. 2013, 53(1), 56-65. DOI 10.1021/ci300535x — MQN 描述符体系、可视化与 LBVS 工作流。
  3. Blum, L. C.; Reymond, J.-L. “970 Million Druglike Small Molecules for Virtual Screening in the Chemical Universe Database GDB-13.” J. Am. Chem. Soc. 2009, 131, 8732-8733. — 前代方法学基线。
  4. Fink, T.; Reymond, J.-L. “Virtual Exploration of the Chemical Universe up to 11 Atoms of C, N, O, F: Assembly of 26.4 Million Structures (110.9 Million Stereoisomers)…” J. Chem. Inf. Model. 2007, 47, 342-353. — GDB 方法开创论文。
  5. Bühlmann, S.; Reymond, J.-L. “ChEMBL-Likeness Score and Database GDBChEMBL.” Front. Chem. 2020, 8, 46. DOI 10.3389/fchem.2020.00046 — 可合成性导向子集与 CLscore 评分。
  6. Ye, B.; Javor, S.; Reymond, J.-L. “Sampling a GDB-20 Database of 32 Trillion Drug-Like Molecules by Generative Artificial Intelligence.” ChemRxiv, 2026(预印本). — GDB 方法与生成式 AI 的最新结合。

§8.6 社区活跃度

GDB-17 无官方 GitHub issue 跟踪(主库非软件项目),社区以学术引用为主要活跃指标:主论文 OpenAlex 索引引用 976 次(截至 2026-09),横跨计算化学、机器学习与材料科学。持续维护的官方资产包括:下载页(伯尔尼大学)、Zenodo 归档(record 7041051)、faerun.gdb.tools 交互化学空间地图,以及 GDB-20 配套生成模型仓库 github.com/Ye-Buehler/GDB-ML(2026 年随 GDB-20 预印本发布)。第三方技术生态以 RDKit/开源化学信息学工具为主,未见集中式 issue 讨论区。

引用 GDB-17 的研究呈现出明显的"代际迁移":2012-2016 年以化学空间分析与 LBVS 应用为主,2017 年后生成模型与深度学习引用占比快速上升(ChemVAE 等框架把 GDB 子集当作标准训练语料),2020 年后 GDBChEMBL/GDBMedChem 等可合成性导向子集成为 ML 论文更常用的入口。跟踪这一生态的最佳窗口是 Google Scholar/OpenAlex 上对主论文的"被引文献"流与 Reymond 组的项目页。

§8.7 生态快照

资源 类型 链接 Star/热度截至 2026-09 推荐理由
GDB 官方下载页 数据门户 gdb.unibe.ch/downloads/ 机构官网(权威一手) 文件直链、引用条款、全系列 GDB 入口
Zenodo 归档 长期存储 zenodo.org/records/7041051 开放仓储记录 稳定 DOI 式归档,适合引用与镜像
faerun 化学空间地图 可视化工具 faerun.gdb.tools 官方在线服务 浏览 GDBChEMBL 等子集的空间分布
GDB-ML 仓库 代码 github.com/Ye-Buehler/GDB-ML 2026 新发布 GDB-20 生成模型官方实现
RDKit 解析/预处理工具链 rdkit.org 化学信息学事实标准 读 SMILES、算性质、InChIKey 去重
MarvinView 结构查看器 ChemAxon 官网 商业免费版 官方推荐的结构可视化工具

生态位小结:GDB-17 在化学数据生态中的位置是"枚举参照系"——它与可购买库(ZINC/Enamine)、已测库(ChEMBL/PubChem)、性质基准库(QM9)互补而非竞争。构建组合工作流时,常见用法是"GDB 出结构假设 → 可合成性子集收敛 → 可购买/可对接库验证邻域",工具链以 RDKit 为枢纽即可全部打通。


§9 相关资源与引用

§9.1 官方资源

§9.2 BibTeX 引用块

@article{Ruddigkeit2012,
  title   = {Enumeration of 166 Billion Organic Small Molecules in the Chemical Universe Database GDB-17},
  author  = {Ruddigkeit, Lars and van Deursen, Ruud and Blum, Lorenz C. and Reymond, Jean-Louis},
  journal = {Journal of Chemical Information and Modeling},
  year    = {2012},
  volume  = {52},
  number  = {11},
  pages   = {2864--2875},
  doi     = {10.1021/ci300415d}
}

@article{Ruddigkeit2013,
  title   = {Visualization and Virtual Screening of the Chemical Universe Database GDB-17},
  author  = {Ruddigkeit, Lars and Blum, Lorenz C. and Reymond, Jean-Louis},
  journal = {Journal of Chemical Information and Modeling},
  year    = {2013},
  volume  = {53},
  number  = {1},
  pages   = {56--65},
  doi     = {10.1021/ci300535x}
}

@article{Fink2007,
  title   = {Virtual Exploration of the Chemical Universe up to 11 Atoms of C, N, O, F: Assembly of 26.4 Million Structures (110.9 Million Stereoisomers) and Analysis for New Ring Systems, Stereochemistry, Physicochemical Properties, Compound Classes, and Drug Discovery},
  author  = {Fink, Tobias and Reymond, Jean-Louis},
  journal = {Journal of Chemical Information and Modeling},
  year    = {2007},
  volume  = {47},
  pages   = {342--353}
}

@article{Blum2009,
  title   = {970 Million Druglike Small Molecules for Virtual Screening in the Chemical Universe Database GDB-13},
  author  = {Blum, Lorenz C. and Reymond, Jean-Louis},
  journal = {Journal of the American Chemical Society},
  year    = {2009},
  volume  = {131},
  pages   = {8732--8733}
}

@article{Buhlmann2020,
  title   = {ChEMBL-Likeness Score and Database GDBChEMBL},
  author  = {B{\"u}hlmann, Sven and Reymond, Jean-Louis},
  journal = {Frontiers in Chemistry},
  year    = {2020},
  volume  = {8},
  pages   = {46},
  doi     = {10.3389/fchem.2020.00046}
}

@article{GomezBombarelli2018,
  title   = {Automatic Chemical Design Using a Data-Driven Continuous Representation of Molecules},
  author  = {G{\'o}mez-Bombarelli, Rafael and Wei, Jennifer N. and Duvenaud, David and Hern{\'a}ndez-Lobato, Jos{\'e} Miguel and S{\'a}nchez-Lengeling, Benjam{\'i}n and Sheberla, Dennis and Aguilera-Iparraguirre, Jorge and Hirzel, Timothy D. and Adams, Ryan P. and Aspuru-Guzik, Al{\'a}n},
  journal = {ACS Central Science},
  year    = {2018},
  volume  = {4},
  number  = {2},
  pages   = {268--276},
  doi     = {10.1021/acscentsci.7b00572}
}

§9.3 引用指南

官方要求:在涉及 GDB 的已发表研究中引用对应代际论文——使用 GDB-17 子集引 Ruddigkeit et al. 2012(及 2013 方法学论文);使用 FDB-17/GDBMedChem/GDBChEMBL 子集时同时引用各子集论文(见 §9.2 与 §3.0)。同时遵守条款:不得用于专利;不得再分发数据库或其大部分内容。

最小合规清单:论文方法节写明所用文件名(如 GDB17.50000000LL.smi.gz)与下载日期;参考文献含对应代际论文;数据可用性声明引导读者至官方下载页而非自建镜像;专利文件中不引用 GDB 内容作为权利要求依据。


§10 AI 使用声明卡

§10.1 AI 模型列表

模型 角色 用途
fast-model(千方病案医学编辑部配置) 条目起草 本页面文本起草、结构组织与文献整合

§10.2 AI 参与范围

AI 模型完成初稿撰写与资料汇总;事实核查基于 §10.3 所列公开来源;最终内容由千方病案医学编辑部人工审核校订(见 §10.4)。代码示例经编辑部复核,采用 RDKit/PyTorch 公开接口,未执行大规模生产验证。

AI 未参与的部分:原始数据的生成与发布(伯尔尼大学 Reymond 组)、论文结论的原始陈述、官方许可条款的制定。AI 生成内容中所有关键数字均可回溯至 §10.3 来源之一;无法核实的信息在成稿阶段被删除而非保留推测。本页面的 DAIMS 评分为编辑部依据 §7.7 逐项判断的结果,非自动评分工具输出。

§10.3 输入来源列表

  1. Reymond Research Group. “GDB Databases”(官方下载页与使用条款). https://gdb.unibe.ch/downloads/
  2. Reymond Research Group. “The Chemical Space Project”(项目主页). https://gdb.unibe.ch/research/
  3. Zenodo. “GDB Databases”(归档记录 7041051). https://zenodo.org/records/7041051
  4. Ruddigkeit, L.; van Deursen, R.; Blum, L. C.; Reymond, J.-L. J. Chem. Inf. Model. 2012, 52(11), 2864-2875. PubMed 23088335
  5. Ruddigkeit, L.; Blum, L. C.; Reymond, J.-L. J. Chem. Inf. Model. 2013, 53(1), 56-65. PubMed 23259841
  6. ACS Publications. “Enumeration of 166 Billion Organic Small Molecules in the Chemical Universe Database GDB-17”(全文,含立体异构体与形状统计). https://pubs.acs.org/jcisd8/article-split/52/11/2864/1665804/
  7. Rankless(OpenAlex 数据). “Enumeration of 166 Billion… GDB-17”(976 次索引引用,截至 2026-09). https://www.rankless.org/hit-papers/10.1021/ci300415d
  8. Bühlmann, S.; Reymond, J.-L. Front. Chem. 2020, 8, 46. PubMed 32117874
  9. Int. J. Mol. Sci. 2022, 23(19), 11262(ChemVAE on GDB-17 铅样集). https://www.mdpi.com/1422-0067/23/19/11262
  10. Commun. Chem. 2025(DAC 材料筛选). https://www.nature.com/articles/s42004-025-01819-1
  11. “Recent Developments in Structure-Based Virtual Screening Approaches”(GDB 系列定位与 ZINC15 对比). https://ar5iv.arxiv.org/html/2211.03208
  12. Heidenreich, H. “GDB-17: Chemical Universe Database (166.4B Molecules)”(第三方技术笔记:管线细节与限制). https://hunterheidenreich.com/notes/chemistry/datasets/gdb-17/
  13. Fink, T.; Reymond, J.-L. J. Chem. Inf. Model. 2007, 47, 342-353(GDB-11;经官方下载页 How to cite 与 PubMed 相似文献核实).
  14. Blum, L. C.; Reymond, J.-L. J. Am. Chem. Soc. 2009, 131, 8732-8733(GDB-13;经官方下载页核实).
  15. Fragment Database FDB-17. J. Chem. Inf. Model. 2017, 57(4), 700-709(经 PubMed 28375006 核实);GDBMedChem. Mol. Inform. 2019, 38(8-9), e1900031(经 PubMed 31169974 核实).

§10.4 人工校验记录

内容模块 审核者 审核方式 审核状态
规模数字(166,443,860,262 / 子集大小) 千方病案医学编辑部 对照官方下载页与 PubMed 摘要逐项核对 ✅ 已通过/已验证
论文出处与 DOI/引用数 千方病案医学编辑部 对照 PubMed 记录与 OpenAlex(Rankless)索引 ✅ 已通过/已验证
生成管线与统计(MQN/立体异构体) 千方病案医学编辑部 对照 ACS 全文与 2013 方法学论文 ✅ 已通过/已验证
许可条款(专利/再分发/引用) 千方病案医学编辑部 对照官方下载页 Terms and conditions 原文 ✅ 已通过/已验证
坑点与工程建议(§6.5) 千方病案医学编辑部(数据工程师) 依据官方格式说明+RDKit 标准行为+文献限制逐条溯源 ✅ 已通过/已验证
代码示例(§6) 千方病案医学编辑部 RDKit/PyTorch 接口复核与逻辑走查 ✅ 已通过/已验证

§10.5 AI 生成章节标注

本页面全部章节由 AI 起草,经人工校验后发布;其中 §6.5 坑点与 §7.7 DAIMS 评分的人工复核重点覆盖(评分权重与说明见 §10.4)。

§10.6 最后人工审核日期

2026-09-05(与 §0 审核日期一致)。

页面状态:published(全部内容已完成审核并发布)


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • coconut — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • uspto-50k — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • open-reaction-database — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • crossdocked2020 — 共享标签:药物发现与化学 / 化学信息学 / 分子生成
  • pdbbind — 共享标签:药物发现与化学 / 化学信息学
  • toxcast — 共享标签:药物发现与化学 / 化学信息学
  • davis — 共享标签:药物发现与化学 / 化学信息学
  • drugbank — 共享标签:药物发现与化学 / 化学信息学
  • guacamol-moses — 共享标签:药物发现与化学 / 分子生成
  • synthea — 共享标签:药物发现与化学 / 分子生成

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集