ChEMBL 生物活性数据库 — AI-Ready Wikipedia

280 万化合物 · 2,400 万活性 · 17,803 靶点:药物发现的活性数据公共底座

来源 https://www.ebi.ac.uk/chembl/发布时间: 2026-09-19最后更新: 2026-09-25 阅读 46
ChEMBL 生物活性数据库 — AI-Ready Wikipedia

信息速览

数据集名称ChEMBL 生物活性数据库 — AI-Ready Wikipedia
数据类型280 万化合物,2,400 万活性,17,803 靶点,CC-BY-SA 开放,pChEMBL 标准化
规模不适用(化合物活性数据库;无患者数据)
接入方式https://www.ebi.ac.uk/chembl/
AI 就绪度

ChEMBL — 生物活性数据库 AI-Ready Wikipedia

INFOBOX

属性 内容
全称 ChEMBL(ChEMBLdb;EMBL-EBI 化学基因组学知识库)
发布方 European Bioinformatics Institute(EMBL-EBI),Wellcome Genome Campus,英国
首发/现行 2009 首发(Wellcome Trust 资助,承继 StARlite);现行 ChEMBL 36(2025-09)
核心规模 约 280 万化合物 / 超 2,400 万活性测量 / 17,803 靶点 / 约 160 万 assays(v36)
药物口径 上市药 + 临床候选约 1.75 万(v35;max_phase 0-4 分级)
数据来源 40+ 年药物化学文献(v35 口径约 9 万篇)+ 监管机构 + 临床候选源(USAN/INN/CT.gov)
标准化 pChEMBL 值(-log10 摩尔活性)+ assay confidence score(0-9)+ 母体-盐型层级
访问 网页 + REST API + Python 客户端(免注册);全库 SQL dump/SDF/FASTA(FTP)——完全开放
许可 CC-BY-SA 3.0(可商用、可再分发、署名同源)
版本节奏 大版本约每年 1-2 个;v35(2024)→ v36(2025-09)
姊妹资源 UniChem(跨库 ID 映射)、SureChEMBL(专利)、ChEMBL-NTD(热带病)、ChEBI(实体词典)
本库关联 D(热带病)、ChEBI(实体词典)
本库关联 drugbank(成药语义对照)、PDBbind(结构结合)、Molecul(成药语义对照)、)
本库关联 drugbank(成药语义对照)、PDBbind(结构结合)、MoleculeNet(基准)、drugcom(结构结合)、rugbank(成药语义对照)、PDBbind(结构结合)、MoleculeNet(基准)、drugcomb(组合用药)

§0 E(基准)、PDBbind(结构结合)、MoleculeNet(基准)、drugcomb(组合用药) |

§0 E-E-A-T 信任声明与免(组合用药) |

§0 E-E-A-T 信任声明与免责声明

本页所有规模数字、版本信息与许可表述均核实自一手来源:EMBL 官方 ChEMBL 36 发布通告(2025-09)、ChEMBL 官方博客(chembl.blogspot.com)、ChEMBL 界面文档(chembl.gitbook.io)、四篇 NAR 主论文(Gaulton 2012、Bento 2014、Mendez 2019、Zdrazil 2024),以及 EBI 官网。检索核实时间为 2026-09-19。

ChEMBL 的数字随大版本滚动(v35 与 v36 口径并存),本页在各处显式标注版本;「化合物数/活性数」均为官方口径,第三方转引常有旧版残留。本页为技术参考文档,不构成药物研发决策依据——活性数据是文献策展而非统一实验协议产物,虚拟筛选命中与 QSAR 结论必须经实验验证(§5)。

关于数据偏倚:文献来源使 ChEMBL 的活性数据天然带「阳性结果主导」的选择偏倚——本页在 §6.4 与 §7.4 讨论其对 AI 建模的影响与应对。

§1 数据集概览

§1.0 📌 30 秒速览

  • 是什么:药物发现的「活性数据公共底座」——40 年文献里的 IC50/Ki/EC50 全部策展成结构化表:哪个分子对哪个靶点多强。
  • 体量:280 万化合物 / 2,400 万活性 / 17,803 靶点 / 160 万 assays(v36)。
  • 许可:完全开放(CC-BY-SA 3.0)——免注册 API + 全库 SQL dump 下载,可商用可再分发。
  • 杀手锏:pChEMBL 标准化 + confidence score + 文献溯源——「跨 assay 可比」的活性数据只有这里成规模。
  • 适用:QSAR/活性预测、虚拟筛选参考库、kinome 选择性、ADMET 建模、分子生成评估。
  • 不适用:成药语义(批准状态/适应症/DDI 用 DrugBank)、结构解析基准(用 PDBbind)、患者级药物暴露。

§1.1 摘要

药物化学的核心数据是「这个分子对这个靶点有多强」——IC50、Ki、EC50 这些数字散落在 40 多年的期刊论文里,格式各异、单位混乱、上下文缺失。2009 年,EMBL-EBI 在 Wellcome Trust 资助下把 Inpharmatica 公司的 StARlite 数据库开源化,从此 ChEMBL 成为把碎片活性文献变成结构化公共资产的持续工程:到 ChEMBL 36(2025-09),它收录约 280 万化合物、超 2,400 万条活性测量、17,803 个靶点,全部带文献溯源与置信分级。

对 AI 团队,ChEMBL 的价值在三个维度:

  1. QSAR 的最大公共监督源:2,400 万条「分子-靶点-活性」三元组,带 pChEMBL 标准化值——活性预测、分子性质回归、分子生成评估的标配训练集;MoleculeNet 等基准的很多子集都源自 ChEMBL。
  2. FAIR 的教科书实现:每个活性值可溯源到文献(doc_id + 期刊 + 年份)、assay 有类型与 confidence score、化合物有母体-盐型层级——「数据质量分层」在 schema 层就设计好了,这对「脏数据里做干净模型」至关重要。
  3. 开放许可的规模上限:CC-BY-SA——数据可商用、可再分发、可进产品;与 DrugBank 的许可制形成两极,是「公开基准」的天然选择。

数据的第一性事实:ChEMBL 的活性值是文献的策展映射而非统一实验协议——同靶点不同 assay 的数值不可直接比较(assay 泥潭,§6.4);建模的第一课不是模型选择而是 confidence 过滤与切分纪律。

§1.2 战略价值

  1. AI 制药的公共地基:几乎所有分子 ML 论文(从头生成、性质预测、DTI 回归)的实验底座——用它意味着可复现、可比较、可发表。
  2. 虚拟筛选的参考面:已知活性分子集合 + 结构空间覆盖——虚拟筛选的「去重库」(筛掉已知物)与「富集评估」(DUD-E 类基准的对照面)。
  3. 靶点生物学接口:靶点-UniProt 链接使活性数据可叠加表达/结构/通路信息——「化学→生物学」的翻译层。
  4. 监管语义的轻量层:max_phase(0-4)+ 适应症 + 机制 + 警示——虽不及 DrugBank 深,但「哪些分子走到临床几期」的快速口径够用且开放。

§1.3 同类数据集横向对比

资源 定位 规模量级 与 ChEMBL 的关系
ChEMBL 文献策展活性 + 药物状态 280 万化合物 / 2,400 万活性 —
280 万化合物 / 2,400 万活性 —
BindingDB 结合亲和力(文献+专利) 百万级亲和力值 专利
PubChem BioAssay 原始筛选 deposited 亿级化合物 / 千万级 assay 结果 大而噪——ChEMBL 策展度高但规模小
PDBbind 结构复合物结合常数 数万条 结构验证层(有晶体结构的子集)
DrugBank 成药知识(许可制) 1.2 万药 活性浅但语义深;ChEMBL 活性深但语义轻
DUD-E 虚拟筛选基准 102 靶点基准集 基于 ChEMBL/文献构建的评估协议
ChEBI 化学实体词典 ~6 万实体 分类词典(同 EBI 家族)
SureChEMBL 专利化合物 千万级 专利空间扩展(去重与新颖性检查)

§1.4 版本时间轴

2009  ChEMBL 首发(Wellcome Trust 资助;StARlite 开源化)
2012  NAR 首篇主论文(Gaulton;NAR 40:D1100)
2014  Bento NAR(NAR 42:D1083;chemogenomics 框架)
2019  Mendez NAR(NAR 47:D930;直接活性沉积机制)
2022  新 Web Resources 界面 + API 现代化
2024  ChEMBL 35 + Zdrazil NAR(NAR 52:D1180;2.5M 化合物 / 20M 活性)
2025  ChEMBL 36(280 万化合物 / 24M 活性 / 17,803 靶点;化学探针 + EFO 映射 + BindingDB 专利 assays 3 倍)

§1.5 应用场景矩阵

  1. QSAR/活性回归:靶点子集 + pChEMBL + confidence ≥ 门槛 → 训练活性预测器。
  2. 虚拟筛选:靶点已知活性库 → 相似度/对接筛选 + 富集评估。
  3. kinome/家族选择性:激酶家族活性谱 → 选择性指数建模。
  4. ADMET/毒性预测:hERG/肝毒性等 toxicity assays 子集。
  5. 分子生成评估:生成模型的「合理性检验」(与已知活性空间的重叠/新颖性)。
  6. 药物状态研究:max_phase 演进、first-in-class、孤儿药标注的管线分析。

§1.6 组件全景

ChEMBL 的七个数据层:

  1. molecule 层:280 万化合物——结构(SMILES/InChIKey)、计算理化(logP/TPSA/HBD/HBA/分子量)、母体-盐型层级、max_phase/治疗标注。
  2. target 层:17,803 靶点——target_type 分型(单蛋白/复合物/家族/PPI/细胞系/组织/生物体/ADME)+ UniProt 链接。
  3. assay 层:160 万 assays——类型(B 结合/A 功能/ADME/T 毒性/P 理化)、描述、confidence score(0-9)、来源文献。
  4. activity 层:2,400 万活性——standard_type/units/value + pChEMBL + 数据可靠性标记。
  5. drug/candidate 层:1.75 万药与临床候选——适应症、机制(带 refs)、警示(黑框)、first-in-class、孤儿药、给药途径。
  6. 文献层:9 万篇 doc——期刊/年份/DOI 溯源。
  7. 衍生资源层:UniChem(跨库 ID)、SureChEMBL(专利)、ChEMBL-NTD、web 资源(API/客户端)。

§1.7 开放许可的经济学

ChEMBL 是「公共资助 → 公共资产」的正例账本:

  1. 资助结构:Wellcome Trust(起源)+ EMBL 成员国会费 + 项目资助——运营成本公共化,数据完全开放。
  2. 开放的网络效应:CC-BY-SA 使 ChEMBL 进教科书、进基准、进产品——引用与生态位因此固化(「AI 制药默认数据底座」的位置无可替代)。
  3. 与许可制的对照:DrugBank 用许可收入养人工策展,ChEMBL 用公共资助养策展——两条路线都能持续,但只有开放路线能成为「社区基准」(无许可摩擦 → 无参与门槛)。
  4. 使用者的隐性成本:数据免费但「用好」有成本——confidence 过滤、assay 归一、scaffold 切分的方法学投入是真实工作量(§5)。

§1.8 ChEMBL 在药物研发流程中的定位

靶点发现 → 命中发现 → 先导优化 → 候选确认 → 临床 I-III → 上市
   │           │            │           │
   │           ├─ ChEMBL:已知活性空间(命中去重 + 富集评估参考面)
   │           ├─ ChEMBL:SAR 数据底座(先导期的活性-结构关系证据)
   │           ├─ ChEMBL:选择性谱(kinome/off-target 的历史数据)
   │           └─ ChEMBL:max_phase 口径(竞争管线与同类药速查)
   └─ Open Targets / EFO(靶点-疾病关联;v36 EFO 映射后语义对齐成本大降)
研发阶段 ChEMBL 角色 典型用法 验收标准
靶点发现 活性密度画像 该靶点已知化学起点有多少(活性条数/化学型数) 化学可开采性评估有数
命中发现 参考面 + 去重库 虚拟筛选前剔除已知物 / DUD-E 式富集评估 EF1% 相对基线提升
先导优化 SAR 证据库 同系列活性-结构关系检索(文献溯源) 每条结论可回指 doc_id
安全药理 hERG/CYP 子集 off-target 活性谱预警(assay_type=ADME/T) 与治疗靶点分库建模
立项与竞争分析 max_phase + 机制 同靶点管线速查(哪些已到临床几期) 引用锁版本日期

定位纪律:ChEMBL 覆盖「临床前化学证据」最厚,「临床语义」最薄——立项叙事与 DDI/标签细节交给 DrugBank(§2.6),别让一个库背两个角色。

§2 医学与科学背景

§2.1 活性数据为什么难:assay 泥潭

「同一对分子-靶点的 IC50」在不同论文里可差 10-100 倍——原因不是造假而是实验语境:

  1. assay 形式差异:放射配基结合 vs 荧光偏振 vs 功能细胞实验——测的不是同一物理量(Ki vs IC50 vs EC50)。
  2. 条件差异:温度、pH、底物浓度、孵育时间——酶动力学直接依赖这些参数。
  3. 化合物形态:盐型/游离碱/水合物——有效浓度口径不同。
  4. ChEMBL 的应对:① 活性值标准化(standard_type/units/value);② pChEMBL 只对可解释的浓度型活性计算;③ confidence score 0-9 分级(9 = 专家确信的直接靶点测定);④ 每条记录挂文献与 assay 描述——「数字 + 语境」打包发布。

建模铁律:先按 confidence 与 assay 类型过滤,再谈模型——直接全量回归等于把泥潭端进训练集。

§2.2 pChEMBL:跨 assay 可比的代价与收益

  1. 定义:pChEMBL = -log10(摩尔单位的标准化活性值)——IC50 10nM → 8.0;使「活性强度」跨类型(Ki/IC50/Kd/EC50)与跨数量级可比。
  2. 收益:回归目标统一;跨靶点/跨文献合并成为可能——QSAR 数据集的标准构造块。
  3. 代价:不同 standard_type 折进同一刻度有语义损耗(Ki 与 EC50 的生物学含义不同);pChEMBL 只在 confidence 与类型满足条件时计算——缺值不是缺数据,是「不宜标准化」的信号。

§2.3 靶点分型:target_type 的语义

  1. 单蛋白(SINGLE PROTEIN):QSAR 的理想粒度——活性直接归因。
  2. 蛋白复合物/家族:活性是群体效应(如 GABA 受体亚型组合)——建模要保留复合物组成信息。
  3. 细胞系/组织/生物体:表型读出——「细胞活性」不是「靶点结合」,混用是药效学错误。
  4. ADME 类「靶点」:CYP 抑制/hERG——安全药理数据,与治疗靶点分开建库。

§2.4 母体-盐型层级

  1. 层级语义:母体分子(parent)—盐型/酯—多组分——同一母体的盐型活性记录应折叠到母体层统计。
  2. 重复计数的代价:不去重时化合物多样性虚高、切分泄漏(同一母体的盐型分进训练与测试)。
  3. 工程键:InChIKey 前段(骨架)+ molecule_hierarchy 表——跨库对齐与去重的标准动作。

§2.5 文献偏倚的量化面

  1. 阳性主导:论文偏好报告强活性——弱/无活性数据稀少,SAR 的「负空间」缺失。
  2. 热门靶点富集:kinase/GPCR 的活性密度远高于「难成药」靶点——模型对热门靶点过拟合、冷门靶点欠数据。
  3. 年代效应:assay 技术 40 年演进——老文献的数值系统性偏松(假阳性率更高),年代协变量值得进特征。
  4. 应对范式:负例不造(用对照库)、分靶点建模、assay/年代/来源协变量、审稿时声明偏倚——§7.4 展开。

§2.6 与监管/药物语义的边界

ChEMBL 的 max_phase/适应症/机制字段来自监管与候选信息源——但语义深度(标签原文、DDI、警示全文)不及 DrugBank:活性研究用 ChEMBL,成药叙事用 DrugBank,两库经 UniChem/InChIKey 桥接。

§2.7 AI 视角的科学定位

对医疗 AI,ChEMBL 是「化学空间的经验密度图」:哪里有活性、多强、什么条件——分子生成模型的先验、QSAR 的监督源、虚拟筛选的对照面。它的短板(assay 偏差、阴性缺失、靶点覆盖不均)都是「文献策展」的固有代价——用它的方法论核心是「带语境用数据」,模型外的数据工程占项目工作量的大头。

§2.8 选择性指数与 kinome 谱

  1. 选择性指数(SI)的定义:同一分子对脱靶靶点与目标靶点的活性比值(如 IC50_offtarget / IC50_target)——SI 越大选择性越好;ChEMBL 是计算 SI 的少数公共数据源(同分子跨靶点活性在库内成对出现)。
  2. kinome 谱数据最厚:激酶家族是文献策展密度最高的家族——数百个激酶 × 数千抑制剂的活性矩阵可直接拼出;GPCR/离子通道次之;「难成药」靶点(转录因子、无活性位点的 PPI)数据稀疏——建模前先画「靶点 × 化学型」覆盖热图。
  3. 工程纪律:① SI 计算只用同 assay 平台/同类型的活性对(跨平台比值是泥潭²);② off-target 数据同样过 confidence 门槛;③ 负空间注意——「没测过」≠「不抑制」。
  4. 化学探针的衔接:v36 新增的化学探针数据正是「高选择性工具分子」的策展集合——为 SI 建模提供已验证的高质量正例(探针的文献口径通常带选择性声明)。

§2.9 活性数据的年代地层学

把 ChEMBL 按文献年份分层,会看到明显的「技术地层」——每层有自己的系统偏差:

  1. 1990s-2000s 层(放射配基/手工测定):数值系统性偏松(假阳性率高)、重复少——但覆盖了如今冷门的靶点(数据无可替代);年代协变量必进特征。
  2. 2005-2015 层(高通量/自动化):assay 描述开始标准化、confidence 结构出现——kinome 热潮让激酶数据密度激增(热门偏倚的成型期)。
  3. 2015-今 层(直接沉积 + 开放科学):Mendez(2019)机制后作者自沉积增多——语境更全、数值更可信,但「阳性主导」依旧(阴性结果仍难发表)。
  4. 工程含义:① 时间切分(train ≤2015 / test >2015)测的是「跨地层泛化」——比 scaffold split 更接近真实使用(未来文献 = 新地层);② 老数据不要按「数据质量差」一删了之——冷门靶点的唯一覆盖就在老层,删层等于删靶点;③ 复现实验中报告训练集的年代分布直方图,是审稿人判断偏倚控制的最快证据。

§3 数据集规格

§3.1 规格总表

维度 规格(v36 口径,另注明 v35)
当前版本 ChEMBL 36(2025-09)
化合物 约 280 万(v35:~250 万)
活性测量 超 2,400 万(v35:>2,000 万)
靶点 17,803(v35:~16,000)
assays 约 160 万(v35 口径;v36 并入 BindingDB 专利 assays 1.38 万)
文献来源 ~9 万篇(v35 口径;覆盖 40+ 年)
药物/候选 ~1.75 万(v35;max_phase 0-4 + 适应症/机制/警示)
发布形态 SQL dump(PG/MySQL/Oracle)+ SDF + FASTA + REST API + Python 客户端
许可 CC-BY-SA 3.0
版本节奏 大版本约每年 1-2 个
新增亮点(v36) 化学探针数据(NLP+人工)、疾病术语映射 EFO、农药分类更新

§3.2 v36 相对 v35 的增量地图

维度 ChEMBL 35(2024) ChEMBL 36(2025-09) 含义
化合物 ~250 万 ~280 万 常规累积 +12%
活性 >2,000 万 >2,400 万 文献抽取持续
靶点 ~16,000 17,803 新靶点类(含农药抗性)
专利 assays BindingDB 4,117 13,847(3 倍) 专利空间纳入加速
探针数据 — 新增(NLP 抽取) 化学生物学工具分子
疾病术语 自由文本为主 映射 EFO 适应症语义标准化

解读:v36 的主题是「语义与专利空间」——不只是数量增长,而是把「疾病术语统一(EFO)」与「专利化合物纳入」两个长期短板补齐。

§3.3 DAIMS 数据AI就绪度评估

维度 D 数据完整性 评分 说明
D1 化合物覆盖 9/10 280 万 + 层级去重键齐全
D2 活性深度 9/10 2,400 万 + 标准化 + 置信分级
D3 靶点覆盖 8/10 17,803 但分布偏热门靶点
D4 语境元数据 9/10 assay/文献/条件全溯源——FAIR 教科书
A1 机器可读 10/10 SQL dump + API + Python 客户端三通道
A2 文档完备 9/10 gitbook + schema 文档 + 博客
A3 接入成本 10/10 免注册免费用——零门槛
A4 更新机制 8/10 年度 1-2 版 + schema 演进文档化
I1 指标标准化 9/10 pChEMBL + confidence score
I2 可复现性 10/10 版本 dump 固定 + 引用锁版本
M1 多模态对齐 8/10 结构-活性-靶点-文献四模态对齐
M2 时间序列 7/10 年份/年代可析;历史版本不回溯发布
S1 数据安全 10/10 无个体数据
S2 合规负担 10/10 CC-BY-SA——署名同源即可

总分:A 级(全库 AI 就绪度最高档——开放度、标准化、溯源三全;唯一扣分项是数据分布偏倚这一固有属性)

§3.4 存储与计算需求

数据件 体量 最小分析环境
PostgreSQL dump 数十 GB 单机 PG + 32GB 内存
SDF 全量 数 GB RDKit 单机
API 抽取子集 按需 笔记本即可
活性全表内存化 ~10 GB 单机 pandas 可行
大规模 QSAR(全库) 集群训练 GPU 单卡-多卡

ChEMBL 同样是「单机友好」资源——工程重心在 SQL 与 RDKit,不在算力。

§3.5 获取通道

  1. 网页:www.ebi.ac.uk/chembl——检索/结构搜索/靶点浏览(人类友好)。
  2. REST API:/chembl/api/data——molecule/activity/target/assay/doc 全实体;分页/过滤/JSON。
  3. Python 客户端:chembl_webresource_client——链式查询 + 本地缓存。
  4. 全库下载:FTP 的 SQL dump(PG/MySQL/Oracle)+ SDF + FASTA——严肃分析的首选(版本固定)。
  5. 衍生资源:UniChem(ID 映射服务 + 下载)、SureChEMBL(专利)。

§3.6 口径对齐表

数字 出处口径 澄清
~280 万化合物 ChEMBL 36(2025-09,EMBL 官宣) distinct compounds
>2,400 万活性 ChEMBL 36(macinchem/官方博客) bioactivity measurements
17,803 靶点 ChEMBL 36(EMBL 官宣) drug targets 总数
~250 万 / >2,000 万 / ~16,000 ChEMBL 35(2024,NAR 论文) 旧版口径——引用要注版本
~160 万 assays v35 NAR 口径 v36 继续增长
~9 万文献 v35 NAR 口径 覆盖 40+ 年
1.75 万药/候选 v35(综述转述) 含临床候选;母体 ~1.55 万

§3.7 版本选择纪律

  1. 版本锁定:SQL dump 下载即锁定——论文写「ChEMBL 36(2025-09)」。
  2. schema 演进:表结构随版本微调(v36 的 assay_parameters 变化)——升级读 release notes,别假设表名稳定。
  3. 基准时效:MoleculeNet 等基准有内部快照版本——与最新 ChEMBL 混用要声明(同一分子的活性值可能被重新策展)。

§3.8 confidence score 分级详表

assay confidence score 是 ChEMBL 数据质量分层的核心机制(0-9,挂在 assays 表)——工程上按分值带建协议:

分值带 语义 典型情形 使用建议
9 专家确信:直接靶点测定 文献明确写「该化合物抑制该靶点」且 assay 直接测它 QSAR 金标准
8 直接靶点(高可信) 单蛋白靶点 + 测定对象就是靶点本身 QSAR 默认门槛(≥8)
7 靶点归因较可信 靶点明确但 assay 为间接/衍生读出 虚拟筛选参考可用(≥7)
5-6 同源/直系同源推断 靶点由物种同源或家族推断而来 探索性分析;必须分层标记
3-4 靶点为复合物组成/关联 多靶点复合物中的一员、或通路级关联 只做族级分析,不归因单靶点
0-2 未指定/极低可信 表型读出、靶点不明 除表型研究外一律剔除
  1. 缺值 ≠ 随机缺失:confidence 缺失或低分意味着「策展团队无法确认靶点归因」——不是可以插补的随机空洞,是应被建模协议排除的证据。
  2. 门槛敏感性:门槛从 ≥8 放宽到 ≥7 通常扩容 20-50% 数据但引入归因噪声——严谨做法是双门槛消融都报(§5.6)。
  3. 与 target_type 联用:confidence ≥ 8 × SINGLE PROTEIN 是单靶点 QSAR 的标准交集;细胞系/组织类 assay 即使高 confidence 也是表型层(§2.3),分开建库。

§4 数据结构

§4.1 SQL dump 核心表结构

ChEMBL PostgreSQL 核心表(v36 schema 摘要)
├── molecule_dictionary     # 化合物主表(chembl_id, molregno, max_phase, ...)
├── compound_structures     # canonical_smiles, standard_inchi, inchi_key
├── molecule_hierarchy      # 母体-盐型层级(parent_molregno)
├── target_dictionary       # 靶点主表(tid, target_type, tax_id, pref_name)
├── target_components       # 靶点-蛋白组件(→ component_sequences → UniProt)
├── assays                  # assay 主表(assay_id, assay_type, confidence_score, doc_id)
├── activities              # 活性表(activity_id, molregno, assay_id,
│                           #   standard_type/units/value, pchembl_value)
├── docs                    # 文献(doc_id, journal, year, doi)
├── drug_indication         # 药物适应症(带 indication_refs)
├── drug_mechanism          # 作用机制(带 mechanism_refs)
├── drug_warning            # 监管警示(黑框等)
└── compound_properties     # 计算理化(alogp, psa, hbd, hba, mw)

关系链:activities → assays(assay_id)→ target_components → UniProt;activities → molecule_dictionary(molregno)→ compound_structures。SQL 里 join 五跳拿到「分子-活性-靶点-文献」全语境——这是 ChEMBL 的标准取数模式。

§4.2 活性数据 SQL 抽取

-- 目标:EGFR(UniProt P00533)的高置信活性数据(v36 dump)
SELECT
    md.chembl_id,
    cs.canonical_smiles,
    a.standard_type,
    a.standard_value,
    a.standard_units,
    a.pchembl_value,
    asy.confidence_score,
    d.year,
    d.journal
FROM activities a
JOIN assays asy ON a.assay_id = asy.assay_id
JOIN target_dictionary td ON asy.tid = td.tid
JOIN target_components tc ON td.tid = tc.tid
JOIN component_sequences csq ON tc.component_id = csq.component_id
JOIN molecule_dictionary md ON a.molregno = md.molregno
JOIN compound_structures cs ON md.molregno = cs.molregno
JOIN docs d ON asy.doc_id = d.doc_id
WHERE csq.accession = 'P00533'          -- EGFR UniProt
  AND asy.confidence_score >= 8         -- 高置信
  AND a.pchembl_value IS NOT NULL
  AND md.max_phase >= 0
ORDER BY a.pchembl_value DESC;

§4.3 REST API 批量抽取

#!/usr/bin/env python3
"""ChEMBL REST API 抽取:某靶点的活性页批量拉取(免注册)。"""
import requests
import pandas as pd

BASE = "https://www.ebi.ac.uk/chembl/api/data"

def fetch_target_activities(chembl_tid: str, limit: int = 1000) -> pd.DataFrame:
    """按靶点 ChEMBL ID 分页拉取活性(JSON)。"""
    rows, offset = [], 0
    while True:
        r = requests.get(
            f"{BASE}/activity.json",
            params={"target_chembl_id": chembl_tid,
                    "limit": limit, "offset": offset},
            headers={"Accept": "application/json"}, timeout=60,
        )
        r.raise_for_status()
        page = r.json()["activities"]
        if not page:
            break
        rows.extend(page)
        offset += limit
    return pd.DataFrame(rows)

if __name__ == "__main__":
    df = fetch_target_activities("CHEMBL203")  # EGFR
    keep = ["molecule_chembl_id", "standard_type", "standard_value",
            "standard_units", "pchembl_value", "assay_chembl_id",
            "document_chembl_id", "document_year"]
    df[keep].drop_duplicates().to_csv("chembl_egfr_activities.tsv", sep="\t", index=False)
    print(len(df), "activities saved")

§4.4 scaffold 切分代码

#!/usr/bin/env python3
"""Bemis-Murcko scaffold 切分——QSAR 数据集防泄漏的标准切分。"""
import pandas as pd
from rdkit import Chem
from rdkit.Chem.Scaffolds import MurckoScaffold
from sklearn.model_selection import GroupShuffleSplit

def murcko_scaffold(smiles: str) -> str:
    mol = Chem.MolFromSmiles(smiles or "")
    if mol is None:
        return ""
    return MurckoScaffold.MurckoScaffoldSmiles(mol=mol, includeChirality=False)

df = pd.read_csv("chembl_egfr_activities.tsv", sep="\t")
df = df.dropna(subset=["pchembl_value"])
df["scaffold"] = df.molecule_chembl_id.map(
    lambda cid: murcko_scaffold(smiles_map.get(cid, "")))  # smiles_map: ID→SMILES

gss = GroupShuffleSplit(n_splits=1, test_size=0.2, random_state=0)
train_idx, test_idx = next(gss.split(df, groups=df.scaffold))
df.loc[train_idx, "split"] = "train"
df.loc[test_idx, "split"] = "test"
df.to_csv("chembl_egfr_scaffold_split.tsv", sep="\t", index=False)
print(df.split.value_counts().to_dict(),
      "| scaffolds:", df.scaffold.nunique())

(random split 与 scaffold split 的性能差距本身就是「模型是记忆还是泛化」的诊断——论文两者都要报。)

§4.5 UniChem 跨库对齐

#!/usr/bin/env python3
"""UniChem REST:ChEMBL ID ↔ 其他库(PubChem/DrugBank/PDB 配体)交叉映射。"""
import requests

def unichem_map(src_id: str, src_db: int = 1, to_db: int = 2) -> list:
    """src_db: 1=ChEMBL;to_db: 2=DrugBank(编号表见 UniChem 文档)。"""
    r = requests.get(
        f"https://www.ebi.ac.uk/unichem/rest/srccompounds/{src_db}/{src_id}",
        timeout=30)
    r.raise_for_status()
    return [x["src_compound_id"] for x in r.json() if x["src_id"] == str(to_db)]

print(unichem_map("CHEMBL25"))  # aspirin → DrugBank ID(DB09299 等)

§4.6 元数据与版本指纹

  1. 版本字符串:dump 文件名(chembl_36_postgresql.tar.gz)+ release notes 链接——方法段双写。
  2. schema 快照:表结构导出(pg_dump --schema-only)进复现包。
  3. 策展时点:同版本内策展仍在滚动(网页数据微新于 dump)——复现包以 dump 为准并注明下载日期。

§4.7 完整性清单

  • [ ] 版本 + dump 下载日期双戳
  • [ ] confidence score 门槛(≥8?≥7?)声明
  • [ ] pChEMBL 可用性过滤(IS NOT NULL)
  • [ ] 母体层级去重(molecule_hierarchy)
  • [ ] target_type 过滤(SINGLE PROTEIN vs 细胞/表型分开)
  • [ ] standard_type 口径(浓度型 vs 注释型分开)
  • [ ] scaffold/random 双切分报告
  • [ ] 文献年代分布(年代协变量)
  • [ ] 与基准快照(MoleculeNet 等)的版本关系声明

§4.8 数据血缘

药物化学期刊/专利/监管标签(40+ 年)
  → 策展管线(人工抽取 + 半自动解析 + 冲突讨论)
  → 结构标准化(SMILES/InChI/母体层级)
  → 活性标准化(standard_type/units/value → pChEMBL)
  → assay 分级(类型 + confidence score 0-9)
  → 靶点对齐(target_components → UniProt)
  → 发布(SQL dump / SDF / API / 网页)

策展冲突的解决机制(人员讨论 + 决策记录)写入 refs 表——「每个数字都有出处与裁决史」是 ChEMBL 与爬虫聚合库的本质区别。

§4.9 本地 PostgreSQL 建库

#!/usr/bin/env bash
# ChEMBL 36 PostgreSQL dump 下载与本地恢复(磁盘预留 ~100GB,32GB 内存单机可行)
set -euo pipefail

# 1) 下载(以官方 downloads 页给出的 FTP 路径为准;此处为 v36 的目录形态)
BASE="https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_36"
wget -c "${BASE}/chembl_36_postgresql.tar.gz"
tar -xzf chembl_36_postgresql.tar.gz

# 2) 建库与恢复(dump 内含建表语句;pg 版本 ≥ 12)
createdb chembl_36
psql -d chembl_36 -v ON_ERROR_STOP=1 -f chembl_36/chembl_36.dmp

# 3) 统计信息刷新(分析查询的执行计划依赖它,别跳过)
psql -d chembl_36 -c "ANALYZE;"

# 4) 常用过滤索引(按需;activities 是最大的表)
psql -d chembl_36 -c "
CREATE INDEX IF NOT EXISTS idx_act_assay ON activities(assay_id);
CREATE INDEX IF NOT EXISTS idx_act_mol   ON activities(molregno);
CREATE INDEX IF NOT EXISTS idx_assay_tid ON assays(tid);
"

# 5) 抽查:aspirin 的 ChEMBL ID 与活性条数
psql -d chembl_36 -c "
SELECT md.chembl_id, count(a.activity_id) AS n_activities
FROM molecule_dictionary md
JOIN activities a ON a.molregno = md.molregno
WHERE md.chembl_id = 'CHEMBL25'
GROUP BY 1;"
  1. 恢复纪律:ON_ERROR_STOP=1 保证半途失败不留残库;恢复完成后跑一次抽查 SQL(aspirin 有活性、EGFR CHEMBL203 靶点存在)再开始分析。
  2. 版本隔离:一个版本一个库(chembl_35/chembl_36)——升版本重建新库而不是原地改,方便双版本对照与回滚。
  3. 体量预期:activities 表千万行级、compound_structures 含文本索引——查询慢先查统计信息与索引,别急着加机器。

§4.10 Python 客户端链式查询

#!/usr/bin/env python3
"""chembl_webresource_client:链式查询 + 本地缓存(适合子集探索,非批量抽取)。
pip install chembl_webresource_client"""
from chembl_webresource_client.new_client import new_client

molecule = new_client.molecule
activity = new_client.activity
target   = new_client.target

# 1) 实体直查:aspirin 的卡片(分子式/口径/母体信息)
asp = molecule.filter(chembl_id="CHEMBL25")[0]
print(asp["pref_name"], "| max_phase:", asp.get("max_phase"))

# 2) 结构相似检索:以 aspirin 为种子找相似分子(相似度阈值 70%)
similars = molecule.filter(similarity="CC(=O)Oc1ccccc1C(=O)O 70")
print("similar molecules:", len(similars))

# 3) 靶点 → 高置信活性:EGFR(CHEMBL203)的 pChEMBL 非空记录
egfr = [t for t in target.filter(chembl_id="CHEMBL203")][0]
acts = activity.filter(target_chembl_id=egfr["target_chembl_id"],
                      pchembl_value__isnull=False)
subset = acts[:200]  # 客户端自动分页;范围对象惰性拉取
print("fetched:", len(subset), "| first pChEMBL:", subset[0]["pchembl_value"])
  1. 适用边界:客户端有本地缓存与自动分页,探索/原型极快;万级以上批量仍走 SQL dump(§3.4)——API 拉全库既慢也不礼貌。
  2. 惰性求值:filter 返回的是查询对象不是数据——切片/迭代时才发请求;调试时小心「同一查询被重复执行」。
  3. 字段对齐:客户端字段名与 REST API/数据库表不完全一致(如 activity 记录里的 molecule_chembl_id)——正式管线以 SQL dump schema 为准,客户端只做子集探索。

§4.11 数据体检 SQL:接入后第一批查询

本地库恢复后、任何建模之前的「体检三查」——输出直接贴进复现包:

-- 体检 1:规模与版本指纹(预期量级:~280 万分子 / ~2400 万活性)
SELECT (SELECT count(*) FROM molecule_dictionary) AS molecules,
       (SELECT count(*) FROM activities)         AS activities,
       (SELECT count(*) FROM target_dictionary)  AS targets,
       (SELECT count(*) FROM assays)             AS assays;

-- 体检 2:置信分层分布——confidence >= 8 的活性占比决定干净核心大小
SELECT a.confidence_score, count(*) AS n,
       round(100.0 * count(*) / sum(count(*)) OVER (), 1) AS pct
FROM activities act
JOIN assays a ON act.assay_id = a.assay_id
GROUP BY a.confidence_score ORDER BY a.confidence_score DESC;

-- 体检 3:pChEMBL 覆盖率与浓度型占比(缺失率是「不宜标准化」层的大小)
SELECT count(*) FILTER (WHERE pchembl_value IS NOT NULL) AS with_pchembl,
       count(*) FILTER (WHERE standard_units = 'nM')     AS nm_type,
       count(*)                                          AS total
FROM activities;
  1. 读数基准:confidence ≥ 8 通常占活性总量的少数但集中在单蛋白靶点——若占比异常低,先查 join 是否把复合物靶点重复计数。
  2. pChEMBL 覆盖率的意义:这个数决定 QSAR 可用样本上限——它远小于活性总量是设计使然(§2.2),不是数据质量问题。

§5 下游分析协议

§5.1 任务×资源速查表

任务 用哪些表 关键过滤 陷阱
活性回归(QSAR) activities+assays+structures confidence≥8、pChEMBL 非空、单蛋白 random split 泄漏
虚拟筛选参考 compound_structures+activities 活性阈值(pChEMBL≥6) 忘记去盐型重复
选择性建模 同靶点家族 activities 同 assay 平台优先 跨 assay 直接比较
hERG/ADMET toxicity/ADME assays assay_type=T/ADME 与治疗靶点混库
生成模型评估 全库结构 + 活性阈值 母体层去重 「新颖性」重复计数
药物状态分析 drug_indication/mechanism 版本锁 max_phase 与 DrugBank 口径混用
专利空间分析 SureChEMBL/BindingDB 部分 专利 vs 文献分开 专利数据质量参差

§5.2 QSAR 数据集构造协议

  1. 靶点选择:单蛋白 + confidence ≥ 8 + pChEMBL 非空 + 母体去重——四道过滤器后剩「干净核心」。
  2. 阈值设计:回归用 pChEMBL 连续值;分类用 pChEMBL ≥ 6(~1μM)为活性——阈值敏感性分析(5.5/6/6.5)必备。
  3. 切分:scaffold split 主协议 + random split 对照 + 时间 split(≥2020 文献为测试)三件套——只报 random split 的 QSAR 论文过不了懂行审稿。
  4. 基线:相似度 kNN + 随机森林(ECFP 指纹)打底——深度模型的增量必须打过这两条线。
  5. 评估:RMSE/MAE(回归)+ ROC-AUC/PR-AUC(分类)+ 按 scaffold 簇分层误差——热点 scaffold 的局部失效要暴露。

§5.3 虚拟筛选协议

  1. 参考库构造:靶点已知活性(pChEMBL ≥ 6)+ 结构近邻——「已 explored 空间」。
  2. 去重过滤:候选库 vs 参考库 ECFP 相似度(Tanimoto > 0.85 剔除)——筛「真新颖」。
  3. 富集评估:DUD-E 协议——已知 actives/decoys 混合,评价方法早期富集(EF1%)。
  4. 输出分级:对接打分 + QSAR 预测 + 新颖性三列——人工复核队列。

§5.4 成本模型

场景 技术路线 成本量级
单靶点子集 API/客户端 零;分钟级
靶点家族 QSAR SQL dump + RDKit 单机;人力 3-5 天
全库结构搜索 SDF + RDKit/PGChem 单机 16GB;数小时
生成模型评估 全库指纹库 GPU 单卡;1-2 天
生产级虚拟筛选 自建管线 + 对接集群 数百-数千美元计算

§5.5 失败模式清单

  1. random split 泄漏:近邻 analogs 分进训练/测试——QSAR 性能虚高 10-20%;scaffold split 是主协议。
  2. assay 泥潭直灌:不按 confidence/类型过滤全量回归——「模型」只是 assay 偏差的平均器。
  3. 注释型活性数值化:standard_type 是 “Activity”/“Potency” 等注释型时直接当浓度——单位灾难。
  4. 盐型重复:同母体多盐型分进两桶——切分泄漏 + 多样性虚高。
  5. 表型读出当靶点结合:细胞系 assay 的活性归因给单靶点——药效学错误。
  6. 阈值拍脑袋:分类阈值 6 不做敏感性——结论随阈值漂移。
  7. 版本混拼:dump 与网页 API 混拉——策展时点不同数据不一致。
  8. 与基准快照混用:MoleculeNet 快照 + 最新 dump 同库训练——重复计数。

§5.6 校准与验证协议

文献策展数据的「验证」要比常规 ML 多两层——数据层的回放验证与科学层的实验衔接:

验证层 数据源 指标 通过线(参考)
L1 切分内验证 测试集(scaffold split) RMSE/ROC-AUC 与 random split 差值须解释
L2 分层回放 按 scaffold 簇/年代/assay 平台切片 分层误差极差 无单簇灾难性失效
L3 外部库交叉 BindingDB 同靶点子集 RMSE(InChIKey 对齐后) 显著优于均值基线
L4 时间外推 晚于训练截止年的文献 RMSE/排序质量 无系统性漂移报警
L5 不确定性校准 测试集 共形覆盖率/校准曲线 名义 90% 区间实测 ≥85%
L6 前瞻衔接 自建/合作实验复核 Top-N 命中率 与模型排序正相关
  1. L3 的工程细节:BindingDB 与 ChEMBL 经 InChIKey 对齐后要剔除「同源记录」(同一文献的同一测定在两库都在)——只保留 ChEMBL 未收录的文献来源,交叉才是独立的。
  2. L5 的价值:虚拟筛选的实际用法是「按预测 + 不确定性排序取 Top-N 送实验」——校准差的模型排序再准也白搭;共形回归(split conformal)一行代码级成本。
  3. L6 的最小闭环:不必自建湿实验——与综述文献的「已知选择性指纹」对照(如某激酶抑制剂的已知 off-target 谱)也算半前瞻验证,审稿认可度高于纯回放。

§6 实证结果与方法学分析

§6.1 v36 发布的核心信号(2025-09)

  1. 规模稳增:280 万化合物 / 24M 活性 / 17,803 靶点——文献策展管线的持续产出。
  2. 专利空间加速:BindingDB 专利 assays 4,117 → 13,847(3 倍)——「专利先于论文」的新颖性信号被纳入主库。
  3. 语义标准化:疾病术语映射 EFO——适应症分析从自由文本进入本体层,跨库(与 Open Targets 等)对齐成本大降。
  4. 化学探针入库:NLP+人工抽取——化学生物学工具分子(选择性探针)成为新实体类。

§6.2 QSAR 实证的系统教训

ChEMBL 上十年 QSAR 研究沉淀的可复用结论:

  1. 切分决定叙事:random split 的 R² 普遍 0.8+、scaffold split 掉到 0.4-0.6——「模型泛化 vs 记忆」的诊断比模型本身重要。
  2. 指纹基线强韧:ECFP + RF/LightGBM 在多数靶点上仍是打不过的基线——深度模型增量常 <5%。
  3. 不确定性估计被低估:ensemble/共形预测给出可信区间——虚拟筛选的实用价值 > 点估计排序。
  4. 多靶点联合建模(multi-task)在数据共享结构强的家族(kinase)有效——冷门靶点靠迁移。

§6.3 方法学三层框架(gsm)

  1. G(Ground layer):结构化事实——分子结构、assay 描述、文献出处(低争议)。
  2. S(Synthesis layer):标准化产物——pChEMBL、confidence score、EFO 映射(模型推断层,有定义依赖)。
  3. M(Medical layer):药物状态——max_phase/适应症/机制(临床语义层,随监管演进)。

越层引用是常见错误:用 S 层的 pChEMBL 说「临床药效」(M 层)或用 G 层文献活性做「疗效声明」——审稿按层问责。

§6.4 接力实验设计

  1. ChEMBL → PDBbind:QSAR 命中 → 有结构复合物的子集做对接复核。
  2. ChEMBL → DrugBank:候选 → 成药语义核对(批准/适应症/DDI 负担)。
  3. ChEMBL → DrugCentral:开源交叉验证(关系数据稳健性)。
  4. ChEMBL → Open Targets/EFO:靶点-疾病关联的整体证据链。

§6.5 八个真实坑点

  1. 坑点 1:random split 当默认——近邻泄漏使性能虚高;scaffold split 是主协议、random 只是对照。
  2. 坑点 2:confidence 忽视——低置信(<7)混入——「靶点归因错误」的活性是噪声主力。
  3. 坑点 3:注释型活性数值化——“Active”/“Potency” 类 standard_type 直接进回归——单位灾难;浓度型才可数值化。
  4. 坑点 4:盐型/层级不去重——多样性虚高 + 切分泄漏;molecule_hierarchy 必查。
  5. 坑点 5:assay 跨比较——不同 assay 的 IC50 直接排序——先同平台/同类型分组。
  6. 坑点 6:pChEMBL 缺失硬插补——缺失是「不宜标准化」信号不是随机缺值;中位数插补会稀释毒性端。
  7. 坑点 7:与基准快照混用——版本不一致的重复计数;全链锁单一 dump。
  8. 坑点 8:偏倚不声明——阳性主导/热门富集不进 limitation——审稿必问;§2.5 的量化面要写。

§6.6 审稿人自查清单

  • [ ] ChEMBL 版本 + dump 日期写进方法段?
  • [ ] confidence/assay 类型/pChEMBL 过滤门槛声明?
  • [ ] 切分策略(scaffold 主 + random/时间对照)报告?
  • [ ] 阈值敏感性分析?
  • [ ] 母体去重与 target_type 过滤说明?
  • [ ] 与已发表基准的版本关系?
  • [ ] 文献偏倚的 limitation 段落?
  • [ ] 复现包含 dump 指纹与 schema 快照?

§6.7 版本演进的方法学含义

ChEMBL 十七年演进的四个节点各有方法学后果——理解它们才能理解「为什么老论文的做法现在不可照抄」:

  1. schema 的长期稳定(v1 → v36):核心表名(molecule_dictionary/assays/activities/target_dictionary)十五年基本未变——这是公共策展库给可复现性的隐含红利:老脚本跨版本大多能跑。但微调存在(如 v36 的 assay_parameters),升级仍要读 release notes。
  2. 直接沉积机制(2019,Mendez):作者自沉积活性与文献抽取活性的误差特征不同(前者无转录错误但可能缺语境)——2019 前后发布的数据在「同一靶点」上有微妙的分布差,时间切分建模会把这条缝放大。
  3. 语义层升级(v36 的 EFO 映射):适应症从自由文本进本体——历史 dump 不会回填映射,跨版本做疾病分析时新旧口径不对齐,要么全部重映射(用 v36)、要么全部声明旧口径(用 v35)。
  4. 专利空间扩容(v36 的 BindingDB 专利 assays 3 倍):任何「新颖性计算」(生成模型评估、虚拟筛选去重)的基线都依赖「已知空间」的覆盖——v35 与 v36 的新颖性分数不可比,切换版本要重新校准。

工程结论:版本不只是数字快照,是数据生成过程的快照——跨版本比较任何结论(模型性能、新颖性、疾病覆盖)前,先回答「这个版本间的数据生成过程变了什么」。

§7 AI 就绪指南与应用场景

§7.1 ChEMBL 在医疗 AI 中的四种喂法

  1. 监督回归喂法:pChEMBL 作目标——QSAR/性质预测的经典监督源(confidence 过滤后)。
  2. 结构先验喂法:280 万结构做分子生成的「经验合理性」检验(GAN/扩散模型的评估域)。
  3. 关系图喂法:分子-靶点-活性三元组构建异质图——图神经网络的化学生物学语料。
  4. 负空间工程喂法:虚拟筛选去重库 + decoy 协议——「什么已被试过」的知识面。

四种喂法与 §6.5 坑点的对应:喂法 1 踩坑 1(切分)与坑 3(注释型);喂法 2 踩坑 4(去重);喂法 3 踩坑 2(confidence)与坑 5(assay);喂法 4 踩坑 7(版本)——建模前回读对号。

§7.2 活性预测管线实操配方

#!/usr/bin/env python3
"""ChEMBL 活性预测端到端:SQL 子集 → ECFP 特征 → LightGBM(含消融切分)。"""
import numpy as np
import pandas as pd
from rdkit import Chem
from rdkit.Chem import AllChem
from lightgbm import LGBMRegressor
from sklearn.metrics import mean_squared_error, r2_score

df = pd.read_csv("chembl_egfr_scaffold_split.tsv", sep="\t")  # §4.4 产物

def ecfp(smiles: str, radius=2, n_bits=2048):
    mol = Chem.MolFromSmiles(smiles or "")
    return (list(AllChem.GetMorganFingerprintAsBitVect(mol, radius, nBits=n_bits))
            if mol else [0] * n_bits)

X = np.vstack([ecfp(s) for s in df.canonical_smiles])
y = df.pchembl_value.to_numpy(float)

model = LGBMRegressor(n_estimators=600, learning_rate=0.05, random_state=0)
model.fit(X[df.split == "train"], y[df.split == "train"])

for part in ["train", "test"]:
    m = df.split == part
    pred = model.predict(X[m])
    print(part, "RMSE:", round(mean_squared_error(y[m], pred) ** 0.5, 3),
          "R2:", round(r2_score(y[m], pred), 3))

(同代码换 GroupShuffleSplit 的 groups 即 random 对照——两个数字一起报。)

§7.3 模型选型与迁移决策

  1. 中等数据(<5 万活性):ECFP + LightGBM/RF——小数据王道;GNN 增量要在 scaffold split 下证明。
  2. 大数据/家族建模:GNN(消息传递/图 Transformer)+ 多任务头——kinase 等结构共享家族收益最大。
  3. 预训练分子模型:MolBERT/GraphMVP/3D 预训练——用 ChEMBL 子集微调,预训练权重许可见 §8。
  4. 不确定性:深度集成或共形回归——虚拟筛选排序的必备配件。
  5. 生成评估:活性预测器 + 合成可及性(SAS)+ 新颖性(vs ChEMBL 指纹库)三维打分——单指标会被玩坏。

§7.4 公平性:文献偏倚的工程应对

  1. 靶点分层报告:热门靶点(>1 万活性)与冷门靶点(<500)分开报性能——平均数掩盖冷靶失效。
  2. 年代敏感性:训练集截断年代做消融——老数据的技术偏差可量化。
  3. assay 协变量:assay 类型/平台 one-hot 进特征或分层归一。
  4. 阴性空间声明:无活性数据不等于阴性——limitation 段的固定条款。

§7.5 任务×资源速查表

AI 任务 ChEMBL 数据 输出形态 验收
活性回归 activities + structures 回归器 scaffold/random 双报告
多任务家族模型 家族活性矩阵 多头模型 冷靶迁移增益
hERG/ADMET toxicity assays 分类器 外部验证集(公开毒性基准)
分子生成评估 结构库 + 活性阈值 评估协议 新颖性/活性/可合成三维
DTI 图模型 三元组 + UniProt 链接预测 与 DrugBank 正例交叉
专利新颖性 SureChEMBL/BindingDB 层 去重/评分 专利-文献重叠率报告

§7.6 端到端案例:EGFR 抑制剂活性预测

  1. 取数:UniProt P00533 → SQL 子集(confidence ≥ 8、pChEMBL 非空、母体去重)→ 约 6-8 千条(v36 典型量级)。
  2. 清洗:注释型剔除、盐型折叠、重复(同分子同 assay)取中位。
  3. 切分:Murcko scaffold split(80/20)+ random 对照 + 时间 split(2020+ 为时序测试)。
  4. 模型:ECFP+LightGBM 基线 → Chemprop(MPNN)对比 → 不确定性(5 折集成)。
  5. 评估:RMSE/R² 双切分报告 + scaffold 簇误差分布 + Top-50 富集模拟。
  6. 报告:版本/dump 日期 + 过滤漏斗(每步剩多少)+ 偏倚声明——三件套齐。

§7.7 报告模板:方法学段落骨架

活性数据来自 ChEMBL 36(2025-09 发布的 PostgreSQL dump,下载日期 2026-XX-XX;Zdrazil et al., NAR 52:D1180-D1192, 2024)。分析限定单蛋白靶点(target_type = SINGLE PROTEIN)、assay confidence score ≥ 8、pchembl_value 非空且 standard_type 为浓度型(IC50/Ki/Kd/EC50);化合物经 molecule_hierarchy 折叠至母体层级并以 InChIKey 去重。数据集采用 Bemis-Murcko scaffold 切分(80/20)为主协议,随机切分与时间切分(2020 年后文献)作对照。模型为 ECFP4 指纹 + LightGBM 与消息传递神经网络(Chemprop)的对比,不确定性由 5 折深度集成给出。文献策展数据的阳性主导与靶点分布偏倚已在局限中声明;复现包含 dump 校验和与 schema 快照。

§7.8 成本与排期模板

阶段 内容 成本构成 周期
取数 dump 下载 / SQL 子集 存储 1 天
清洗 过滤漏斗 + 去重 人力 3-5 天
特征 指纹/GNN 图构建 单机 2-3 天
建模 基线 + 深度对比 GPU 小额 1-2 周
评估 双切分 + 不确定性 算力 3-5 天
复现包 指纹 + schema + 脚本 人力 2 天

ChEMBL 项目的排期风险不在计算在清洗——「过滤漏斗每步剩多少」的透明度决定复现质量。

§7.9 消融案例:分子生成评估的维度敏感性

生成模型评估是 ChEMBL 「负空间工程」喂法(§7.1 之 4)的典型应用——三维指标(活性/新颖性/可合成性)单看任何一个都会被玩坏,一组典型的消融轨迹:

配置 评估协议 观测结果 诊断
R1 仅活性预测器打分(pChEMBL 预测 > 7 为「优」) 高分样本高度同质——围绕少数高活性骨架复制 奖励黑客:模式坍缩
R2 R1 + 新颖性(vs 280 万指纹库最近邻 Tanimoto < 0.4) 多样性回升,但合成可及性崩坏(SAS 中位数 > 6) 新颖性与可合成性负相关被放大
R3 R2 + SAS 过滤 三维平衡;但活性均分回落 诚实基线——三维缺一不可
R4 R3 + 构效约束(同 scaffold 至少 3 个 pChEMBL 梯度成员) 产量下降但化学家盲评命中最高 「有梯度的活性」才是 SAR 级产出
  1. 方法:同一扩散模型(或 GAN)的生成池(1 万分子)分别在 R1-R4 协议下评估;活性预测器用 §7.2 管线(EGFR,scaffold split,RMSE ~1.0 log 单位);新颖性参照用 ChEMBL 36 全库 Morgan 指纹;SAS 用 Ertl 类启发式打分。
  2. 读数:R1 的「平均 pChEMBL 预测 7.8」看似漂亮,实为过拟合到训练分布的记忆回放——单指标排行榜的生成论文的共同病灶。
  3. 结论:生成评估协议本身要报告消融——「用了哪些过滤器、每层淘汰多少」与模型架构同等重要;ChEMBL 在此的角色是「已知空间的参照系」而非打分器本身。

§8 伦理、许可与合规

§8.1 许可结构

  1. 数据 CC-BY-SA 3.0:可商用、可再分发、可修改——义务是署名(引用 ChEMBL 论文 + 链接)与同源共享(衍生物若分发需同许可)。
  2. 衍生注意:CC-BY-SA 的 share-alike 只约束「数据衍生物」——模型权重通常不算数据衍生物(法域有争议,谨慎起见产品内嵌时注明数据来源)。
  3. 代码/工具:Python 客户端等各自开源许可——商用前查对应仓库 LICENSE。

§8.2 引用与致谢模板

致谢模板(按需裁剪):
Bioactivity data were obtained from ChEMBL 36 (EMBL-EBI; Zdrazil B, et al.
The ChEMBL Database in 2023: a drug discovery bioactivity resource for the
global community. Nucleic Acids Res 52, D1180-D1192, 2024. DOI
10.1093/nar/gkad1004), distributed under CC-BY-SA 3.0. We thank the ChEMBL
curation team and EMBL-EBI.

§8.3 国内合规路径

  1. 数据性质:开放文献策展数据——下载与使用无 HGRAC/隐私问题;无个体数据。
  2. 产品化:CC-BY-SA 允许商用——QSAR/筛选服务内嵌 ChEMBL 数据合法,署名义务与同源条款写进产品文档。
  3. 红线:学术诚信层——策展数据不可二次售卖冒充「自建数据库」;引用锁版本。

§8.4 商业使用边界

开放许可不等于无义务:商业产品的 attribution 页(版本 + 论文引用 + 许可链接)是标配;把 ChEMBL 数据做成付费 API 转售时 share-alike 条款的适用性建议法务书面确认(数据 vs 服务的分类是关键)。

§8.5 合规台账最小模板

团队接入 ChEMBL 建议维护一页式台账(审计与复用交接都用得上):

台账项 记录内容 示例
数据版本 dump 文件名 + 发布版 chembl_36_postgresql.tar.gz(2025-09)
下载日期 FTP 下载日 + 校验和 2026-XX-XX;SHA256 存档
署名位置 产品内 attribution 页 URL + 论文引用 「帮助-数据来源」页;Zdrazil 2024
share-alike 评估 衍生物形态与分发方式结论 内部分析不分发→无 SA 义务;对外发布衍生数据集→同许可
模型内嵌形态 权重是否视为衍生物的内部结论 权重+产品内嵌;attribution 保留;法务备忘链接
版本升级策略 升级触发条件与回归测试 新大版本发布后 1 个月内评估;QSAR 基线重跑
复现包存档 dump 指纹 + schema 快照 + 脚本哈希 内部对象存储路径

§9 谱系与生态

§9.1 活性数据库时间线

2009  ChEMBL 首发(StARlite 开源化;Wellcome Trust)
2012  NAR 首篇(Gaulton)
2014  Bento NAR;API 生态起步
2019  Mendez NAR;直接沉积机制
2022  Web Resources 现代化(新 API)
2024  ChEMBL 35(NAR Zdrazil;2.5M 化合物)
2025  ChEMBL 36(280 万化合物;EFO 映射 + 专利空间 3 倍)
2026  AI 制药默认底座地位稳固;社区基准事实标准

§9.2 术语表

术语 定义
ChEMBL ID 实体主键(CHEMBL25 = aspirin)
pChEMBL -log10 摩尔活性——跨 assay 标准化强度
confidence score assay 对靶点的置信分级(0-9)
assay_type B 结合 / A 功能 / ADME / T 毒性 / P 理化
standard_type/units/value 标准化活性类型/单位/值
molecule_hierarchy 母体-盐型-多组分层级表
Bemis-Murcko scaffold 骨架去侧链的 scaffold——切分组键
ECFP 扩展连接指纹(Morgan)——分子 ML 标配特征
max_phase 最高研发阶段(0-4)
UniChem EBI 的跨库化学 ID 映射服务
SureChEMBL 专利化合物文本挖掘资源
ChEMBL-NTD 被忽视热带病专版
decoy 虚拟筛选的诱饵分子(DUD-E 协议)
EF1% 前 1% 富集因子——虚拟筛选评估指标
FAIR 可发现/可访问/可互操作/可复用原则
EFO Experimental Factor Ontology——v36 疾病术语映射目标

§9.3 资源选型决策树

你的需求是什么?
├─ 「查一个分子的活性」
│    → 网页/API(分钟级)
├─ 「QSAR/活性预测」
│    → SQL dump + confidence≥8 + scaffold split(§5.2)
├─ 「虚拟筛选」
│    → 活性参考库 + DUD-E 协议 + 去重(§5.3)
├─ 「成药语义(批准/适应症/DDI)」
│    → DrugBank(ChEMBL 只有轻量层)
├─ 「结构结合基准」
│    → PDBbind(ChEMBL 无结构复合物体系)
├─ 「跨库 ID 对齐」
│    → UniChem(InChIKey + 服务)
├─ 「专利化合物空间」
│    → SureChEMBL + BindingDB 层
└─ 「大规模原始筛选数据」
     → PubChem BioAssay(ChEMBL 策展优先但规模小)

§9.4 与本库其他条目的关系

条目 关系
drugbank 成药语义层(活性 vs 知识)——DTI 交叉验证
PDBbind 结构结合层——QSAR 命中的对接复核
drugcomb 组合用药——协同筛选的活性背景
MoleculeNet 基准快照——切分协议与版本对齐
drugcentral 开源药物库——关系数据交叉
clinicaltrials-gov 试验状态——候选的现实性核查

§9.5 组合使用建议

研究设计 推荐组合 分工
DTI 全链 ChEMBL(活性)+ DrugBank(关系语义)+ PDBbind(结构) 强度 + 关联 + 结构
QSAR 基准 ChEMBL(源)+ MoleculeNet(协议)+ 外部测试集 训练 + 协议 + 泛化
虚拟筛选 ChEMBL(参考/去重)+ DUD-E(评估)+ PDBbind(对接) 参考 + 协议 + 结构
重定位 ChEMBL(活性证据)+ DrugBank(语义)+ CT.gov(状态) 机制 + 语义 + 现实性
生成模型 ChEMBL(评估域)+ PubChem(新颖性对照) 合理性 + 空间覆盖

组合纪律:版本快照统一——组合系统里各库各版本,「同一分子不同值」的冲突要先定主源(活性值以 ChEMBL 锁定版本为准)。

§9.6 公共策展库的生态角色

ChEMBL 证明了「文献策展」可以规模化公共供给:40 年文献 × 人工抽取 × schema 稳定 × 完全开放——这四件事同时做到的,全球只有个位数。它的生态位是「化学可复现性的锚」:AI 制药论文的默认底座、监管科学的方法参照、教育领域的标准教材数据。LLM 时代它的价值同样上升——高置信活性事实是化学 LLM 评估的锚点集。

§9.7 开放-许可双轨策展的工程模式

ChEMBL(公共资助 + 开放)与 DrugBank(许可收入 + 人工深策展)是知识库工程的两种可持续模式——工程视角的对照:

维度 ChEMBL 轨道 DrugBank 轨道 工程含义
收入来源 公共资助(Wellcome/EMBL 会费/项目) 许可费(学术优惠/商业付费) 前者接入零摩擦,后者有合同层
更新节奏 年度 1-2 大版本 + 网页滚动 商业快照(订阅制) 前者锁 dump 即稳定;后者要管理订阅时效
API 门槛 免注册直连 注册 key + 条款约束 原型速度差一个数量级
schema 文档 全公开(gitbook + SQL 注释) 随许可包分发 开放轨利于社区工具生态
社区基准参与 默认底座(MoleculeNet 等) 受再分发限制较少进基准 开放轨赢得「标准」地位
  1. 组合工程:两轨并用是常态——ChEMBL 提供活性深度与开放底座,DrugBank 提供成药语义;UniChem/InChIKey 桥接,主源纪律见 §9.5。
  2. 风险对冲:开放轨的策展深度依赖公共投入的持续性(funding 字段如实记录);商业轨的访问依赖合同续约——严肃产品对两者都做「数据快照 + 降级预案」。

§10 资源导航与 FAQ

§10.1 官方资源导航

上手指引(第一次接入的推荐顺序):

  1. 网页查 aspirin(CHEMBL25)——读它的活性表与 assay 语境。
  2. API 拉同靶点活性(§4.3)——感受分页与字段。
  3. 下载 v36 dump——建本地 PG(§3.5),跑 §4.2 SQL。
  4. 对一个热门靶点(EGFR)做 §4.4 scaffold split——对比 random。
  5. 若只用小子集——到此为止;全库分析再谈集群。

§10.2 关键文献

  1. Gaulton, A. et al. ChEMBL: a large-scale bioactivity database for drug discovery. Nucleic Acids Res 40, D1100-1107 (2012). DOI 10.1093/nar/gkr777
  2. Bento, A.P. et al. ChEMBL: an effective chemogenomics knowledgebase. Nucleic Acids Res 42, D1083-1090 (2014). DOI 10.1093/nar/gkt1076
  3. Mendez, D. et al. ChEMBL: towards direct deposition of bioassays. Nucleic Acids Res 47, D930-D940 (2019). DOI 10.1093/nar/gky1075
  4. Zdrazil, B. et al. The ChEMBL Database in 2023: a drug discovery bioactivity resource for the global community. Nucleic Acids Res 52, D1180-D1192 (2024). DOI 10.1093/nar/gkad1004

§10.4 FAQ

Q1:ChEMBL 完全免费吗?商用也要钱吗?
A:完全免费且可商用(CC-BY-SA 3.0)——义务是署名与衍生物同源共享;无注册门槛。

Q2:280 万化合物和 250 万哪个对?
A:版本不同——250 万是 v35(2024),280 万是 v36(2025-09)。引用写版本。

Q3:pChEMBL 是什么?为什么有的活性没有它?
A:-log10 摩尔活性的标准化值;只有浓度型活性(IC50/Ki/Kd/EC50)且置信满足条件时计算——缺失是「不宜标准化」信号,别硬插补。

Q4:confidence score 怎么用?
A:0-9 分级——9 是专家确信的直接靶点测定。QSAR 建议 ≥8;筛选参考 ≥7;<7 的记录「靶点归因」可疑。

Q5:为什么我的 QSAR 用 random split R²=0.9,scaffold split 只有 0.5?
A:random split 的近邻泄漏(同系列 analogs 分进两桶)——前者是记忆能力、后者才是泛化;论文必须双报告。

Q6:细胞实验的活性能当靶点活性用吗?
A:不能直接归因——target_type 是细胞系/组织的记录是表型读出;QSAR 单靶点建模只取 SINGLE PROTEIN。

Q7:同一分子同一靶点为什么有多条活性?
A:不同文献/assay——正常现象;清洗时同分子同 assay 取中位、跨 assay 保留语境(分层建模)而非平均。

Q8:专利数据可靠吗?
A:专利活性质量参差(无同行评审)——v36 并入的 BindingDB 专利 assays 有独立策展;分析时与文献数据分开标记。

Q9:和 PubChem BioAssay 怎么选?
A:要策展质量与语境选 ChEMBL;要原始规模(工业筛选 deposited)选 PubChem——两者可经 InChIKey 对齐。

Q10:和 BindingDB 怎么选?
A:BindingDB 亲和力专精(含热力学量)且专利覆盖强;ChEMBL 语境更全(assay/药物状态)——结合强度研究两者互补。

Q11:能做「无活性」负例吗?
A:不能把「无记录」当阴性——文献偏倚下无记录 ≠ 无活性;负例构造用 DUD-E decoys 或对照库,并声明假设。

Q12:版本多久更新?
A:大版本约每年 1-2 个(v35 2024 → v36 2025-09);dump 固定版本是复现的最稳做法。

Q13:dump 有多大?本地怎么建库?
A:PostgreSQL dump 数十 GB——32GB 内存单机可建;按 schema 文档 psql 恢复即可。

Q14:API 有配额吗?
A:无硬性配额但请分页节流;万级以上批量直接用 dump——API 适合子集探索。

Q15:MoleculeNet 快照和最新 ChEMBL 有什么区别?
A:基准用固定快照保证可比——与最新 dump 混用会重复计数且结论不可比;基准复现用快照、新研究用最新版并声明。

Q16:max_phase 和 DrugBank 状态为什么对不上?
A:两库更新节奏与口径不同(ChEMBL 年更、DrugBank 商业快照)——成药叙事以 DrugBank 为准并注明来源版本。

Q17:化学探针数据是什么?
A:v36 新增——文献中的选择性工具分子(探针)集合,NLP+人工抽取——化学生物学实验的对照设计用。

Q18:EFO 映射有什么用?
A:适应症/疾病术语统一到本体——跨库(Open Targets 等)疾病对齐从字符串匹配升级为 ID 对齐。

Q19:能和 DeepPurpose/Chemprop 直接配合吗?
A:能——这类工具吃「SMILES-靶点-pChEMBL」表;按 §5.2 过滤后导出即可(工具内置数据集版本不同要重导)。

Q20:文献年代对建模有影响吗?
A:有——assay 技术 40 年演进,老数值系统偏松;时间切分或年代协变量是审稿加分项。

Q21:分子生成模型怎么用 ChEMBL 评估?
A:三维——活性合理性(预测器打分)、新颖性(vs 280 万指纹库最近邻距离)、可合成性(SAS)——单指标可被过拟合。

Q22:能下载 SDF 结构库做分子比对吗?
A:能——全库 SDF 数 GB,RDKit 直接读;注意与 SQL dump 版本对齐。

Q23:本地建库后查询很慢怎么办?
A:先 ANALYZE; 刷新统计信息,再给 activities(assay_id/molregno)、assays(tid) 建索引(§4.9)——activities 是千万行大表,缺统计信息的执行计划会全表扫。

Q24:怎么导出「SMILES-靶点-pChEMBL」通用训练表?
A:§4.2 的 join 模板就是答案——molecule_dictionary → compound_structures 拿 SMILES、activities 拿 pChEMBL、target_components → component_sequences 拿 UniProt;导出 TSV 后按 §4.4 切分。

Q25:ChEMBL-NTD 和主库是什么关系?
A:被忽视热带病专版(同 schema、独立发布)——结核/疟疾等领域的活性数据加厚版;主库也含 NTD 数据,专版是「领域入口」不是另一个 schema。

Q26:怎么跟进新版本发布?
A:官方博客(chembl.blogspot.com)发 release 通告 + gitbook 的 release notes 列 schema 变更 + FTP releases 目录是权威文件源——三处按此顺序核对后再升级本地库。

§10.5 要点回顾

  1. 完全开放:CC-BY-SA 3.0——免注册、可商用、可再分发(署名同源)。
  2. 版本即一切:v35/v36 数字并存——引用锁版本 + dump 日期。
  3. 过滤漏斗前置:confidence ≥ 8 + 浓度型 + pChEMBL 非空 + 母体去重——干净数据的四道闸。
  4. scaffold split 是主协议:random split 只是对照——两者差值是泄漏诊断。
  5. assay 泥潭敬畏:跨 assay 不直接比较——同类型/同平台分组。
  6. 阴性空间诚实:无记录 ≠ 无活性——负例构造与声明是方法论必需。
  7. 基线打不过再说深度:ECFP+GBDT 是及格线。
  8. 三维生成评估:活性 + 新颖性 + 可合成性。
  9. 组合锁主源:多库混用时活性值以 ChEMBL 锁定版本为准。
  10. 偏倚声明是义务:阳性主导、热门富集、年代效应——limitation 固定条款。

口径存照(数字均注明口径与来源,写入正文前已核对)

  • ~280 万化合物(distinct compounds)/ 17,803 靶点 = ChEMBL 36 发布(EMBL 官宣,2025-09)
  • 2,400 万活性测量 / 近 300 万分子 = ChEMBL 36(macinchem 转述官方博客口径)

  • ~250 万化合物 / >2,000 万活性 / ~16,000 靶点 / ~160 万 assays / ~9 万文献 = ChEMBL 35(2024;NAR 52:D1180-D1192)
  • ~1.75 万上市药 + 临床候选(母体 ~1.55 万)= ChEMBL 35(综述转述)
  • BindingDB 专利 assays 4,117 → 13,847(3 倍)= ChEMBL 36 发布要点(EMBL 官宣)
  • v36 新增:化学探针数据、EFO 疾病术语映射、农药分类更新 = EMBL 官宣
  • 许可 CC-BY-SA 3.0;访问免注册(网页/API/dump)= 官方文档(gitbook)
  • 四篇 NAR 主论文 DOI 见 §10.2(Gaulton 2012 / Bento 2014 / Mendez 2019 / Zdrazil 2024)
  • 首发 2009(Wellcome Trust 资助;承继 Inpharmatica StARlite)= 官方 about/文献综述

相关数据集导航

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

  • chembl — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 化学信息学 / 虚拟筛选
  • zinc — 共享标签:药物发现与化学 / 化学信息学 / 虚拟筛选
  • davis — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 化学信息学
  • drugcomb — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 虚拟筛选
  • drugcentral — 共享标签:药物发现与化学 / 化学信息学 / 虚拟筛选
  • drugbank — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 化学信息学
  • drugbank — 共享标签:药物发现与化学 / 化学信息学 / 虚拟筛选
  • bindingdb — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 虚拟筛选
  • tox21 — 共享标签:药物发现与化学 / 化学信息学 / 虚拟筛选
  • iuphar-bps — 共享标签:药物发现与化学 / 药物-靶点相互作用 / 化学信息学

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

返回 AI-Ready 数据集