信息速览
TPDdb 是一个把靶向蛋白降解剂收进同一张表的专业库,2026 年 1 月发表在《核酸研究》的数据库专刊。它的规模由专利撑起:两万八千余个分子里,PROTAC 一类的绝大部分来自授权专利而非论文,这让它和以文献为主的同类资源在化学空间上几乎不重叠。
它要解决的不是「哪里能找到降解剂」,而是「降解剂这个新模态的数据该长什么样」。传统小分子的数据核心是结合亲和力,降解剂的数据核心是三元复合物能否形成、形成后能降多少、以及降解是不是真的走了泛素—蛋白酶体这条路。这三件事对应三类完全不同的测量,混在一张表里是灾难,分开存才有用。
本篇会先说清楚它给不了什么,再拆字段与取数路径,最后落到一个绕不开的问题:这个库没有把「降解证据有多硬」做成一个可机器判定的字段,而这个分级恰恰是它最有价值也最容易丢的东西。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 官方名称 | TPDdb — Targeted Protein Degradation database |
| 中文常用名 | 靶向蛋白降解数据库 |
| 建设方 | 浙江大学药学院 Zhu Feng 课题组牵头,多单位协作 |
| 首次发表 | Nucleic Acids Research,2026 年 1 月,数据库专刊 |
| DOI | 10.1093/nar/gkaf996 |
| 官方入口 | https://idrblab.org/TPDdb/ |
| 分子规模 | 两万八千余个,六类模态 |
| 活性测量 | 两万七千余条,覆盖 201 个细胞系 |
| 目标蛋白 | 580 个,标准化到 UniProtKB |
| 疾病覆盖 | 274 种,标准化到 ICD-11 |
| 模态覆盖 | 分子胶、PROTAC、LYTAC、ATTEC、AUTAC、AUTOTAC |
| 数据来源 | 同行评议文献 + 授权专利(USPTO/WIPO/EPO/JPO/CNIPA) |
| 策展方式 | 领域专家人工策展 |
| 三元复合物 | 仅收实验解析结构,不收计算预测 |
| 访问方式 | 免登录浏览、检索、下载 |
| 许可 | 论文 CC BY-NC 4.0;站点条款未单独声明 |
| 适合 | 新模态立项调研、专利化学空间探索、跨模态对比 |
§1 它要解决的具体麻烦
1.1 降解剂的数据问题不是「少」,是「错位」
药物化学熟悉的数据表结构是围绕「一个分子对一个靶点一个活性值」设计的。这套结构在抑制剂时代几乎万能:分子占住活性口袋,IC50 越低说明占得越牢。降解剂把它从根上拆了。
PROTAC 是一根两头带钩的绳子:一头钩住目标蛋白,一头钩住 E3 连接酶,靠连接链的长度与刚度把两者拉近,让泛素转到目标蛋白上,再被蛋白酶体销毁。分子本身不参与销毁,只促成一次「相遇」,事成后还能再来一次,这就是催化式机制。分子胶更极端,它没有两头,只是一颗小分子卡在两个蛋白之间,造出原本不存在的结合面。
直接后果是:分子对目标蛋白的亲和力与最终降解效率可以完全脱钩。微摩尔量级的分子可能是极好的降解剂,因为限速步骤是三元的协同性而非二元结合;纳摩尔级的强结合分子也可能完全不降解,因为它把口袋占死了,反而挡住泛素化。
TPDdb 想做的不是「多收分子」,而是「换一套表结构」:活性拆成降解、结合、细胞毒三类并列,E3 连接酶升格为与目标蛋白平级,三元复合物结构单独留位。这三处取舍比分子数更能说明它服务谁。
1.2 三条常见的错误期待
第一条,把它当成 ChEMBL 的降解剂切片。这条会落空:ChEMBL 以结合类活性为主,降解剂在里面只有零散记录;TPDdb 反过来,先把降解剂圈成封闭集合再填活性。两者补集远大于交集,取 ChEMBL 子集得不到近似版本。
第二条,把它当成随手可训练的干净监督集。错在两处:活性类型混放,没有公认规则说哪些算降解证据;阴性结果缺失,模型只见正例,判别边界是虚的。§7 展开。
第三条,认为记录数可换算成可用样本量。两万八千余个分子听起来充裕,但若任务要求三元结构、同细胞系可比 DC50、通路对照实验,子集会缩到很小的角落。§4.3 的案例走一遍这个缩水过程。
1.3 它能给到的与给不到的
这张表按需求列,不按字段列。左列是脑子里冒出来的一个念头,中间是库能不能接住,右列是够不够用。
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 查某个靶点有哪些降解剂 | 按目标蛋白筛选,返回跨模态全列表 | 够,且比文献检索快得多 |
| 查某个分子有没有人做过降解 | 分子层级页面,含活性明细与实验上下文 | 够,但要看活性类型是不是降解类 |
| 找 PROTAC 的连接链设计范式 | 有分子结构,但连接链未做分段拆解 | 不够,PROTAC-DB 更合适 |
| 判断一个分子的降解证据有多硬 | 三类活性并列,无证据分级字段 | 不够,需自己按规则重建分级 |
| 要三元复合物结构做对接 | 实验解析结构收录,数量有限 | 部分够,先确认靶点是否命中 |
| 要预测未见分子的 DC50 | 有结构-活性对,可做相似性检索 | 勉强够,见 §5 的建模纪律 |
| 要阴性样本做对比学习 | 无系统收录的失败案例 | 不够,这是结构性缺口 |
| 要疾病或适应症布局分析 | 274 种疾病,ICD-11 标准化 | 够,但疾病是映射推得的 |
| 要 linker 化学与降解效率的定量关系 | 需要自己从 SMILES 里切分 | 不够,得先做结构解析 |
| 要临床试验阶段与在研状态 | 仅在引言提到 3 个获批、30 余个在研 | 不够,需另找临床库 |
| 要批量的稳定 API | 网页检索可用,批量端点未公开 | 不够,需自建抓取并注意条款 |
| 要可商用的数据 | 论文 CC BY-NC,站点无单独开源声明 | 视用途而定,商用须先确认 |
「判断证据有多硬」这一行最值得强调:三类活性同表并列,却没有一个字段说「这条记录的降解是否被证实」。这个判断得按外部规则重建,重建规则的好坏直接决定后面所有结论的质量。
1.4 你的处境与它能帮到的事
下面这张表按处境列,左列写的是你此刻的处境,不是库的特性。
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 立项会上被问到「这个靶点有没有降解剂先例」 | 按目标蛋白一筛,十分钟内出跨模态清单 | 拿到清单后回查原始专利,确认权利状态 |
| 手上有一个新骨架,想知道有没有人做过类似的 | 结构相似性检索,Tanimoto 排序返回类似物 | 用返回的类似物反查专利族,判断规避空间 |
| 要写一篇降解剂领域的综述,需要量化描述 | 580 个靶点与 274 种疾病可做覆盖度描述 | 叠加 PROTAC-DB 再统计,避免专利偏置 |
| 要训练一个降解活性预测模型 | 有两万七千余条带细胞系的活性值 | 先做活性类型拆分与分组切分,见 §5.4 |
| 要解释某分子为什么降解效率低 | 有三元复合物结构可看界面与构象 | 未命中需回 PDB 自行检索 |
| 要从抑制剂转做降解剂,缺 E3 配体知识 | 每一类分子都标注了所用 E3 连接酶 | E3 分布极不均衡,见 §3.3 |
| 要评估某个适应症赛道的拥挤度 | 疾病关联可做分布观察 | 疾病为映射所得,需人工抽查确认 |
| 要做分子胶与 PROTAC 的跨模态对比 | 六类模态在同一张表里,字段同构 | 这是它相对同类库最独特的优势 |
第八行是典型价值点:跨模态比较在只收 PROTAC 的库和泛化学库里都做不到,因为后者不区分模态。
1.5 一句话判断
如果你的问题是「这类分子该怎么设计、化学空间长什么样、跨模态有没有共同规律」,TPDdb 是目前最省事的一站式入口;如果你的问题是「这条数据可不可信」,那么它只提供原料,分级要你自己砌。
这句判断可以直接当成选型的第一道筛子:它定位成一个覆盖面极宽的原料库,而不是已经做完质量分层的成品。
1.6 不适合谁:四条边界
第一条,不适合把降解证据当既成事实引用的人。库不提供证据分级,两万七千余条活性里既有确证的降解实验,也有只测了细胞活力的记录。对外发布候选清单这类对假阳性敏感的任务,直接取库会把未经证实的分子混进去。
第二条,不适合需要完整阴性对照集的人。失败案例基本不会出现,需要正负对比的任务必须另找来源补负例,否则模型学到的只是「什么样的分子容易被写进专利」。
第三条,不适合需要商用授权的人。论文 CC BY-NC,站点没有可商用的开源声明。企业内训、对外产品里用派生数据,都要先与作者确认。
第四条,不适合需要原生实验记录的人。人工策展是加工,会丢失上下文,比如完整剂量曲线的形状、重复实验的离散度、抗体货号。库里只有摘要式数值,要追这些必须回原文。
§2 数据构成与规格
2.1 六类模态是怎么分出来的
TPDdb 把降解剂分成两大类、六个组。第一大类劫持泛素—蛋白酶体通路,包含分子胶与 PROTAC;第二大类劫持自噬—溶酶体通路,包含 LYTAC、ATTEC、AUTAC、AUTOTAC。这个二分法的依据是「目标蛋白最终被谁销毁」,不是「分子长什么样」。
这个依据决定了字段组织方式。同样是双功能分子,走蛋白酶体路线的标注 E3 连接酶,走溶酶体路线的标注穿梭受体(如 M6PR 或 ASGPR)。前者是泛素转移的催化端,后者是内吞后送货进溶酶体的搬运工,混填会让字段语义崩掉。
| 类别 | 通路 | 结合方式 | 关键标注对象 | 分子量级 |
|---|---|---|---|---|
| 分子胶 | 泛素—蛋白酶体 | 诱导新结合面,无需连接链 | E3 连接酶与新生底物 | 六千余 |
| PROTAC | 泛素—蛋白酶体 | 双功能,两端分别结合 | E3 配体与连接链 | 两万二千余 |
| LYTAC | 自噬—溶酶体 | 双功能,一端结合溶酶体受体 | 穿梭受体(M6PR/ASGPR) | 二百余 |
| ATTEC | 自噬—溶酶体 | 把目标与自噬体拴在一起 | 自噬相关蛋白 | 一百六十余 |
| AUTAC | 自噬—溶酶体 | 双功能,带降解标签 | 标签与自噬通路 | 二十余 |
| AUTOTAC | 自噬—溶酶体 | 靶向自噬受体 | 自噬受体 | 二十余 |
六类之间差了两个数量级。PROTAC 与分子胶占绝大多数,溶酶体四类合计不到五百个。这不是设计出来的,而是领域真实状态:溶酶体降解剂起步晚。做跨模态对比时要意识到后四类统计量很薄,结论容易是噪声。
2.2 字段与记录的完整字典
字段按三个粒度切开:分子粒度回答「这是什么」,活性粒度回答「测出了什么」,关联粒度回答「连到哪里去了」。
| 字段组 | 字段 | 含义 | 取值形态 | 层级 | 使用注意 |
|---|---|---|---|---|---|
| 身份 | 分子名 | 常用名或代号 | 自由文本 | 分子 | 同类名可能对应不同盐型 |
| 身份 | 同义名 | 别名与专利编号 | 列表 | 分子 | 跨源去重的主要依据 |
| 身份 | 分子式 | 元素组成 | 标准字符串 | 分子 | 可用于粗筛 |
| 身份 | 规范 SMILES | 分子结构 | 字符串 | 分子 | 结构检索与建模的入口 |
| 理化 | 分子量 | 相对分子质量 | 数值 | 分子 | 分子胶偏小,PROTAC 常超 700 |
| 理化 | logP | 脂水分配系数 | 数值 | 分子 | 有来源差异,见 §2.5 |
| 理化 | 氢键供受体数 | 描述符 | 数值 | 分子 | 用于成药性粗判 |
| 靶点 | 目标蛋白 | 被降解的蛋白 | UniProtKB 标识 | 分子 | 已标准化,可直接连外部库 |
| 靶点 | 目标蛋白序列 | 氨基酸序列 | 序列 | 分子 | 取自 UniProtKB |
| 靶点 | 目标蛋白结构 | 单体三维结构 | PDB 标识 | 分子 | 取自 PDB |
| 机制 | E3 连接酶 | 泛素转移催化端 | UniProtKB 标识 | 分子 | 溶酶体类填受体而非 E3 |
| 机制 | 作用注释 | 降解/抑制/稳定 | 枚举 | 分子 | 分子胶字段,非全库通用 |
| 机制 | 三元复合物 | 实验解析结构 | PDB 标识 | 分子 | 仅实验结构,缺者为空 |
| 连接 | 连接链 | PROTAC 中间段 | 结构片段 | 分子 | 未单独拆解,需自切 |
| 活性 | 活性类型 | IC50/DC50/Dmax 等 | 枚举 | 活性 | 必须拆开,是全库最关键的字段 |
| 活性 | 活性值 | 测量值 | 数值 | 活性 | 需与单位同读 |
| 活性 | 单位 | 浓度或其他单位 | 字符串 | 活性 | 归一化前不可比较 |
| 活性 | 细胞系 | 实验所用细胞 | Cellosaurus 标识 | 活性 | 跨细胞系不可合并 |
| 活性 | 实验条件 | 处理时间等 | 自由文本 | 活性 | 时间是 DC50 的必要上下文 |
| 活性 | 检测方法 | 定量手段 | 文本 | 活性 | 方法差异会改变绝对值 |
| 关联 | 疾病 | 适应症关联 | ICD-11 编码 | 关联 | 映射推得,非原始标注 |
| 关联 | 文献来源 | 出处 | 文献标识 | 关联 | 可回溯 |
| 关联 | 专利来源 | 出处 | 专利号 | 关联 | 专利化学空间的主要证据 |
最需要盯住的是「活性类型」这一行:它是全库唯一能把降解证据与结合证据区分开的字段,抹掉它,整个库的语义就失效了。
2.3 一条记录的完整解剖
下面用一个分子层级的记录形态说明。这是按论文描述还原的字段排布,不是抓取得到的原始记录,数值仅为示意。
分子层级记录(示意)
{
"tpd_type": "PROTAC",
"name": "<分子代号>",
"synonyms": ["<专利中的编号>", "<文献中的代号>"],
"formula": "<分子式>",
"smiles": "<规范 SMILES>",
"properties": {"mw": 0.0, "logp": 0.0, "hbd": 0, "hba": 0},
"poi": {"uniprot": "<UniProtKB 标识>", "name": "<目标蛋白名>"},
"e3_ligase": {"uniprot": "<UniProtKB 标识>", "name": "<连接酶名>"},
"ternary_structure": "<PDB 标识或空>",
"source": {"type": "patent", "id": "<专利号>"}
}
一条活性格记录则是另一种形态,它挂在分子下面,一个分子可以有多条。
活性格记录(示意)
{
"molecule": "<分子代号>",
"activity_type": "DC50",
"value": 0.0,
"unit": "nM",
"cell_line": "<Cellosaurus 标识>",
"assay_method": "<检测方法>",
"treatment_hours": 0,
"source": {"type": "literature", "id": "<文献标识>"}
}
关键点是:证据强度不在任何单个字段里,而是多个字段的组合推论。判断某分子在某细胞里是否真被降解,至少要同时满足活性类型为降解类、检测为蛋白水平定量、处理时间足够长、细胞系确实表达该靶点。四项分散在不同字段,没有一处合成布尔值。
2.4 六类模态的规模分布
把记录数、通路、E3 依赖并列,能看出库的重心。
| 模态 | 记录量级 | 通路 | 是否依赖 E3 | 是否依赖连接链 | 结构复杂度 |
|---|---|---|---|---|---|
| PROTAC | 两万余 | 泛素—蛋白酶体 | 是 | 是 | 高,三部分需解析 |
| 分子胶 | 六千余 | 泛素—蛋白酶体 | 是 | 否 | 低,单体 |
| LYTAC | 二百余 | 自噬—溶酶体 | 否 | 是 | 高 |
| ATTEC | 一百六十余 | 自噬—溶酶体 | 否 | 视设计 | 中 |
| AUTAC | 二十余 | 自噬—溶酶体 | 否 | 是 | 高 |
| AUTOTAC | 二十余 | 自噬—溶酶体 | 否 | 视设计 | 中 |
隐藏含义是:E3 连接酶字段在溶酶体四类里为空或不适用。把 E3 当作全库必填字段的下游表会在这些记录上出错,正确做法是把它理解为泛素类专属字段,溶酶体类改用受体字段。
2.5 与同类资源的字段差异
论文表 1 做了六库对比,下面转成中文并补上使用视角。
| 资源 | 定位 | 覆盖模态 | 数据来源 | 策展方式 | 三元结构 | 检索方式 |
|---|---|---|---|---|---|---|
| TPDdb | 降解剂专业库 | 六类全覆盖 | 文献 + 专利 | 专家人工 | 实验结构 | 文本、结构、模态、靶点 |
| PROTAC-DB | PROTAC 专业库 | 仅 PROTAC | 仅文献 | 人工 | 实验 + 预测 | 文本、结构、靶点 |
| PubChem | 通用化学库 | 不区分 | 文献 + 专利 | 自动 + 提交 | 无 | 通用文本与结构 |
| ChEMBL | 通用活性库 | 不区分 | 文献 + 专利 | 自动 + 提交 | 无 | 通用文本与结构 |
| TTD | 药物靶点库 | 不区分 | 文献 + 专利 | 自动 + 人工 | 无 | 通用文本 |
| DrugBank | 药物知识库 | 不区分 | 文献 + 专利 | 自动 + 人工 | 无 | 通用文本 |
最值得注意的一格是「三元结构」:PROTAC-DB 兼收实验与预测结构,TPDdb 只收实验结构。这是两种取向——前者要多覆盖,接受不确定性;后者要每条可引用,接受低覆盖。做结构类研究时,这个差异决定你能不能把结构当标签用。
另一格是「数据来源」。五个专利局的覆盖带来一个副作用:同一专利族在不同国家的版本可能被重复采集。做专利族分析要先按结构去重再按专利号统计,顺序反了会高估。
§3 谁做的,凭什么可信
3.1 建设方与谱系
TPDdb 出自浙江大学药学院,通讯作者为 Zhu Feng,作者共十四人,另有西安交通大学-利物浦大学智慧湖畔药学院与系统生物学方向的研究者参与。团队所在的 IDRB Lab 长期维护多批药物—靶点数据库,方法论积累成熟。
这对使用策略有实际意义:可信度不只取决于这一版的质量,还取决于它会不会被维护。成熟团队按年更新的库可以长期追踪;一次性产物必须拿到那天就固化快照。
发表渠道同样是信号:《核酸研究》数据库专刊要求库必须免登录开放,这解释了数据可用性声明为何写得如此直白。
3.2 策展流程的三道筛
这三道筛决定了库里有什么、没什么。
第一道是定义筛:只有符合各类降解剂既定定义、且化学结构与连接链、结合端、靶向端都能明确确定的分子才纳入。它筛掉的是专利里只给通式、没有实例的分子。专利写作中「权利要求覆盖一大类、实施例只给几个」是常态,只存在于马库什通式里的结构进不了库。
第二道是证据筛:原始文献或专利没有提供直接实验证据支持预定功能(降解或稳定)的记录被排除。这至少做了证据存在性检查,但筛的是「有没有证据」而非「证据有多强」——只做了细胞活力检测却声称降解的专利,只要写了降解就有资格入库。
第三道是结构筛:结构常以图片或非标准格式给出,需重绘为规范形式,模糊到无法唯一确定连接位点的被筛掉。这是最费人力的一环,也是结构检索能成立的前提。
| 筛 | 筛掉什么 | 留下的保证 | 留下的盲区 |
|---|---|---|---|
| 定义筛 | 只有通式没有实例的分子 | 每条记录结构明确 | 覆盖不到权利要求层面的化学空间 |
| 证据筛 | 没有任何功能实验的分子 | 每条记录有实验支撑 | 不区分实验强度 |
| 结构筛 | 结构无法唯一确定的分子 | 结构可计算、可检索 | 可能丢掉部分真实分子 |
三道筛保证「每条记录都真实存在、结构清楚、且有人声称它能降解」。但三条都停在存在性层面,没有一条承诺质量。这是 §7 要处理的坑,也是 §4.3 的案例要演示的地方。
3.3 E3 连接酶的分布与真实瓶颈
论文在描述靶点图景时点出了几个被反复攻击的蛋白:GSPT1、IKZF 家族、CK1α、各类 CDK、雄激素受体、KRAS。这些名字背后是同一个现象:可降解的蛋白很多,但能用的 E3 配体极少。
人类基因组编码的 E3 连接酶有六百余个,真正用于双功能降解剂设计的长期集中在 CRBN、VHL、IAP、MDM2 几个上。这是配体可得性、表达丰度、组织分布三个约束共同造成的:CRBN 因沙利度胺类的历史积累而配体易得,VHL 因结构清晰成为另一主力。
瓶颈在库里的表现是 E3 字段取值高度集中。做「新 E3 拓展」分析必须先意识到:库里的 E3 多样性反映配体可得性,不是生物学上的可降解潜力。
| E3 连接酶 | 配体成熟度 | 组织表达特点 | 在库中出现的可能形态 | 拓展难点 |
|---|---|---|---|---|
| CRBN | 高,历史配体丰富 | 广泛表达 | 分子胶与 PROTAC 双线出现 | 底物谱窄,脱靶降解风险 |
| VHL | 高,结构清晰 | 广泛表达 | PROTAC 主力 | 配体多为肽模拟物,透膜受限 |
| IAP | 中 | 广泛 | PROTAC 有分布 | 配体本身有促凋亡活性 |
| MDM2 | 中 | 广泛 | 少量出现 | 配体同时影响 p53 通路 |
| 其他 | 低 | 各异 | 极稀疏 | 缺配体,需从头发现 |
3.4 三元复合物:收集了什么,没收集什么
论文明确写了三元复合物只收实验解析结构,且与分子、靶点、连接酶三方关联。这是有意为之的取舍。
预测结构的价值在覆盖率,局限在不确定性。三元构象高度依赖分子与两个蛋白的相对取向,对接或深度学习预测出的结构在界面细节上误差大,而这些细节恰恰是解释「为什么这个分子降解效率高」的关键。混入预测结构而不加区分,机制分析会被误导。
所以「只收实验结构」这个决定,把可靠性抬高了一档,代价是覆盖率下降。使用时的正确姿势是把它当作一个小而精的结构集,样本量按结构记录数计,不能按分子数计。
另一个没说的是结构的解析质量。实验结构的分辨率跨度可以从一点几埃到四埃以上,低分辨率结构的侧链取向不可靠。库没有给出分辨率字段,做精细界面分析时还得回 PDB 逐个核对。
3.5 与库内其他化学资源的层次关系
TPDdb 在库内不属影像或临床数据,而是分子层级的化学与生物活性数据,与 ChEMBL、DrugBank 同处一个生态位,但服务的问题不同。
| 层级 | 代表资源 | 回答的问题 | 与 TPDdb 的关系 |
|---|---|---|---|
| 通用分子层 | PubChem | 这个结构有没有人合成过 | 提供结构查询的下游兜底 |
| 通用活性层 | ChEMBL | 这个分子对靶点的结合有多强 | 提供非降解活性的对照 |
| 上市药物层 | DrugBank | 这个分子是不是药、怎么用 | 提供临床端的确认 |
| 降解剂专层 | TPDdb | 这个分子能不能把蛋白清掉 | 本层 |
| PROTAC 专层 | PROTAC-DB | 文献里报告过哪些 PROTAC | 互补,来源侧不同 |
层次关系决定查证路径:遇到陌生分子,先在 TPDdb 看是不是降解剂,再去 ChEMBL 看是不是抑制剂,最后到 PubChem 看存不存在。
§4 证据质量与特色
4.1 三类活性为什么必须分开存
降解剂的活性测量可以粗略分成三类,各自的生物学含义完全不同。
第一类是结合类:IC50、Kd、Ki,测的是分子与某个蛋白(往往是目标蛋白或 E3 连接酶)的结合强度。无论生化体系还是细胞体系,测的都是「结合」,不是「降解」。
第二类是降解类:DC50 是让目标蛋白丰度下降一半所需浓度,Dmax 是饱和浓度下的最大降解幅度。两者都以蛋白丰度定量为基础,通常用免疫印迹、流式或质谱读出,这才是真正的降解证据。
第三类是表型类:细胞活力、凋亡率、增殖抑制,测的是细胞状态而非某个蛋白的丰度。一个分子让细胞死掉,可能因为降解了关键蛋白,也可能因为本身有毒或代谢产物有毒,单看这类数据无法区分。
| 活性类别 | 典型指标 | 测量对象 | 能证明降解 | 典型混杂 |
|---|---|---|---|---|
| 结合类 | IC50、Kd、Ki | 分子与蛋白的结合 | 不能 | 结合不等于降解 |
| 降解类 | DC50、Dmax | 目标蛋白丰度 | 能 | 需确认通路依赖性 |
| 表型类 | 细胞活力、凋亡率 | 细胞状态 | 不能 | 脱靶毒性无法排除 |
| 结构类 | 三元复合物结构 | 复合物构象 | 间接支持 | 体外构象不等于细胞内行为 |
| 机制类 | 通路抑制对照 | 泛素—蛋白酶体依赖 | 能,且最强 | 需原始实验设计支持 |
论文把降解活性、结合亲和力、细胞毒并列存放,还区分生化与细胞两类实验。这个设计是诚实的,承认三类并列的事实,没替使用者做判断——代价是判断责任落到了使用侧。
4.2 降解证据的六个层级
如果要给这个库补一个证据分级,最自然的做法是按「离降解这一步有多近」来分层。下面这套分层是本篇提出的操作性建议,不是官方字段。
| 层级 | 判据 | 需要的数据 | 可信度 | 库里可查性 |
|---|---|---|---|---|
| L0 表型 | 只有细胞活力或增殖数据 | 表型值 | 最低 | 高,大量存在 |
| L1 结合 | 仅证明与目标蛋白结合 | IC50 或 Kd | 低 | 高 |
| L2 丰度 | 蛋白水平有下降但无剂量关系 | 单点蛋白定量 | 中 | 中 |
| L3 剂量 | 有 DC50 或完整剂量曲线 | DC50、Dmax | 较高 | 中 |
| L4 通路 | 有蛋白酶体抑制剂或泛素化对照 | 对照实验记录 | 高 | 低 |
| L5 结构 | 有三元复合物实验结构 | PDB 标识 | 最高,但覆盖面窄 | 最低 |
L4 与 L5 要分开,因为证明的东西不同:L4 证明降解走了泛素—蛋白酶体通路,排除溶酶体或转录抑制等替代解释;L5 证明复合物真能形成并给出构象。满足 L4 未必满足 L5(有对照但没解结构),反之亦然(有结构但没在细胞里验证降解)。
这套分层的用途是给下游任务设门槛。比如训练「给定分子预测能否降解」的二分类器,正例应取 L3 及以上,负例另找来源。门槛若放到 L0,模型学到的其实是「什么分子会让细胞死」,那是个已被研究得很透的另一个问题。
4.3 案例:KRAS G12C 降解剂的三元结构覆盖率
用 KRAS 走一遍,能看到证据层级的具体缩水。论文把 KRAS 列为库内重点攻击的靶点之一,按目标蛋白筛它会返回一个不小的列表。
第一步按靶点筛出全部 KRAS 降解剂,这一步会返回跨模态的记录。第二步拆活性类型,只留 DC50 与 Dmax——大量专利只报了细胞活力或结合数据,没做丰度定量,这一步砍掉相当一部分。第三步按细胞系分层:同一个分子在结直肠癌与肺癌细胞系里的 DC50 可能差一个数量级,因为靶点周转速率、E3 表达、外排能力都随细胞类型变化,要跨分子比较必须锁定细胞系。第四步筛有三元结构的分子,KRAS 与 CRBN 的复合物在 PDB 里有,但覆盖不到大部分分子。第五步筛有通路对照的,要求原始实验做过蛋白酶体抑制剂的回复实验或泛素化检测,成本高,通常只在少数候选分子上做。
| 步骤 | 操作 | 剩余量级 | 主要损失 |
|---|---|---|---|
| 起点 | 按目标蛋白筛 KRAS | 数百 | 无 |
| 拆活性类型 | 只留 DC50/Dmax | 数十到百余 | 只有活力或结合数据的记录 |
| 锁细胞系 | 取单一细胞系 | 数十 | 跨细胞系不可比 |
| 筛三元结构 | 要求实验结构 | 个位数 | 结构解析覆盖率低 |
| 筛通路对照 | 要求回复实验 | 个位数或更少 | 对照实验成本高 |
这条路径解释了为什么不能用记录数当样本量:记录数是「被记录过多少分子」,可用样本量是「在统一条件下被验证过多少分子」,两者差一到两个数量级。
4.4 Dmax 这个指标为什么常被忽略
Dmax 与 DC50 并列,讨论热度却远低于后者,这个不对称有代价。
DC50 是浓度尺度的指标,回答「要多浓才降一半」,直观、好比较、易与药代对接;Dmax 是效率尺度的指标,回答「最多能降多少」,反映降解的饱和上限。
两者描述不同的失败模式:DC50 差说明效力不足,Dmax 低说明无论加多少都降不下去,问题在机制。一个 Dmax 只有三四成的分子,即使 DC50 漂亮,治疗上也有天花板——清不掉大部分目标蛋白,下游效应就达不到。
忽略 Dmax 的后果在做化合物排序时最明显:按 DC50 选出的头部化合物,可能清一色是 Dmax 只有五六成的分子,体外看着很强,体内蛋白残留始终下不去。
| 情形 | DC50 | Dmax | 机制解读 | 开发建议 |
|---|---|---|---|---|
| 理想 | 低 | 高 | 高效且彻底 | 优先推进 |
| 有限清除 | 低 | 低 | 催化效率受限于某一步 | 查三元协同性与泛素化效率 |
| 弱效 | 高 | 高 | 需要高暴露但能清干净 | 优化理化性质与暴露 |
| 双重失败 | 高 | 低 | 机制层面不通 | 换 E3 或换靶点结合端 |
| 数据不足 | 有 | 无 | 未测饱和 | 补做剂量曲线 |
把两个指标做成四象限,落在低 DC50、高 Dmax 那格才是第一梯队;只用 DC50 排序等于把四象限压成一维。
4.5 跨模态对比:这个库真正独特的地方
只收 PROTAC 的库做不了跨模态对比,泛化学库不区分模态也做不了。TPDdb 把六类放进同一张表、字段同构,因此能回答一类只有它能回答的问题。
一类问题是:分子胶与 PROTAC 在靶点选择上有没有系统差异?分子胶依赖 E3 表面的天然可塑性,倾向攻击能被 CRBN 识别的底物;PROTAC 依赖两端配体,几乎任何有配体的蛋白都能被拉过去。若差异真实存在,库里的表现应是分子胶靶点更集中、PROTAC 更分散。
另一类是:溶酶体降解剂的靶点谱与蛋白酶体降解剂是否互补?前者能降解蛋白聚集体与细胞器这类大底物,后者进不去。
这两个问题在没有统一表结构时根本提不出来,因为得先在两套格式之间对齐,而对齐时引入的假设会污染结论。TPDdb 把对齐做在了上游,这是它最不容易被替代的地方。
| 对比维度 | 分子胶 | PROTAC | 可观察结论 |
|---|---|---|---|
| 靶点集中度 | 高,依赖 CRBN 表面 | 低,依赖配体可得性 | 靶点谱宽度差异 |
| 分子量 | 小,类药性好 | 大,常超常规上限 | 理化空间差异 |
| 连接链 | 无 | 有,长度影响协同 | 结构设计复杂度差异 |
| 透膜性 | 通常较好 | 常受限制 | 给药路径差异 |
| 发现方式 | 多靠表型筛选 | 多靠理性设计 | 发现范式差异 |
§5 怎么拿到数据
5.1 访问形态与边界
官方入口是 Web 应用,提供文本检索、结构检索、模态筛选、靶点筛选。论文声明所有数据可查看、可访问、可下载,无需登录。
必须诚实交代一个情况:抓取该入口时返回的是需要等待脚本加载的空壳页面,本身不带数据。它不是静态导出站,数据由前端脚本从后端接口拉取。影响有两层:无法用命令行工具直接下载全量包;批量获取需先找到后端接口或借浏览器渲染。
论文没有公布稳定、有文档的批量端点,这一点按「未核实」处理。若流程必须脚本化批量获取,最稳妥的路径是联系作者说明用途并索取数据包,而不是逆向接口。
| 获取方式 | 可用性 | 适用场景 | 风险 |
|---|---|---|---|
| 网页文本检索 | 确认可用 | 查单个分子或靶点 | 需人工操作 |
| 网页结构检索 | 确认可用 | 找类似物 | 需 JSME 或 SDF 上传 |
| 网页模态筛选 | 确认可用 | 按类别浏览 | 只适合少量浏览 |
| 全量数据包 | 未核实 | 批量建模 | 端点未公开 |
| 后端接口 | 未核实 | 自动化管线 | 无文档,可能变动 |
| 联系作者索取 | 可行 | 正式研究 | 需等待回复 |
5.2 结构检索的机制
结构检索用分子指纹加 Tanimoto 系数。输入可以是在线绘制、SDF 或 SMILES,后端把查询分子转成指纹、与库内全部分子比对后按相似度排序。
两个注意点。一是相似度依赖指纹类型,论文未说明用的是哪一种,这影响可复现性:同一对分子在不同指纹下相似度可能差很多,大分子量 PROTAC 尤其明显,常规指纹的分辨力会下降。二是阈值,零点七这个经验门槛来自小分子筛选,对大而柔的 PROTAC 未必合适,更稳妥的做法是取前若干名再人工看结构。
#-- 用 RDKit 在本地复现类似的结构相似性检索,不依赖站点接口
#-- 前置:pip install rdkit
from rdkit import Chem, DataStructs
from rdkit.Chem import AllChem
import json
#-- 读取本地整理好的 SMILES 列表(需自行从站点整理或向作者索取)
with open("tpddb_smiles.json", encoding="utf-8") as f:
records = json.load(f)
def morgan_fp(smiles: str):
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return None
return AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048)
query_smiles = "CC1=C(C=C(C=C1)C2=NC=CC(=N2)N3CCN(CC3)C)NC(=O)C4=CC=CC=C4"
query_fp = morgan_fp(query_smiles)
if query_fp is None:
raise ValueError("查询结构无法解析,请检查 SMILES 合法性")
hits = []
for rec in records:
fp = morgan_fp(rec.get("smiles", ""))
if fp is None:
continue
sim = DataStructs.TanimotoSimilarity(query_fp, fp)
hits.append((rec.get("name", ""), round(sim, 3)))
hits.sort(key=lambda x: -x[1])
for name, sim in hits[:20]:
print(f"{sim:.3f}\t{name}")
这段代码让结构检索脱离站点也可复现,指纹半径与位数换一组,结果就会变,可借此评估结论对指纹选择的敏感度。
5.3 分子层与活性层的关联
第一件事是建立分子与活性的关联键。库是分子一层、活性一层,活性挂在分子下。最容易出的错是把分子名当主键,而分子名在同义名、盐型、专利代号之间并不唯一。
正确做法:规范 SMILES 作结构层键,来源标识作记录层键,中间用内部标识串联。这样同结构不同名能识别为同一化合物,同一化合物在文献与专利的两条记录也都保留。
#-- 把分子表与活性表按内部标识对齐,并按结构去重统计真实化合物数
import json
from collections import defaultdict
with open("tpddb_molecules.json", encoding="utf-8") as f:
molecules = json.load(f)
with open("tpddb_activities.json", encoding="utf-8") as f:
activities = json.load(f)
mol_by_id = {m["molecule_id"]: m for m in molecules}
#-- 活性表可能引用了不存在的分子标识,先做完整性检查
orphan = [a for a in activities if a["molecule_id"] not in mol_by_id]
print(f"孤儿活性行 {len(orphan)} 条")
#-- 按规范 SMILES 归并,得到真实化合物数(去盐型、去重复专利族)
by_smiles = defaultdict(list)
for m in molecules:
by_smiles[m.get("smiles", "")].append(m["molecule_id"])
print(f"记录 {len(molecules)} 个,去重后结构 {len(by_smiles)} 个")
#-- 统计每个化合物有多少类降解活性
deg_types = {"DC50", "Dmax"}
per_mol = defaultdict(set)
for a in activities:
if a.get("activity_type") in deg_types:
per_mol[a["molecule_id"]].add(a["activity_type"])
n_with_deg = len(per_mol)
print(f"有降解类活性的分子 {n_with_deg} 个,占比 {n_with_deg / max(len(molecules), 1):.1%}")
跑完会得到两个关键数:去重后的真实化合物数,和有降解类活性的分子数。后者往往远小于前者,前者往往小于记录数,这两个数才是规划下游任务的起点。
5.4 建模前的切分纪律
拿它做机器学习,切分方式比模型选择更重要,因为库里同时存在结构泄漏与细胞系泄漏。
结构泄漏来自专利:同族实施例常是同一骨架换取代基,随机切分会让测试集分子与训练集高度相似,模型只要学会「这个骨架大概率有活性」就能拿高分,但没有泛化意义。
细胞系泄漏来自测量条件:同一分子在多个细胞系有值,按记录随机切分会把同一分子拆到两边,模型学到的是「这个分子」而非「这个结构」。
正确的做法是两层切分:先按骨架或指纹聚类做分组切分,保证同一簇的分子不跨集;再在同一组内按细胞系锁定,保证可比。切完之后通常会得到一个让人清醒的结果——分数比随机切分低很多,但那个低分才是真实的。
#-- 按骨架分组切分,防止专利同族分子跨训练/测试集泄漏
from rdkit import Chem
from rdkit.Chem.Scaffolds import MurckoScaffold
import random
def scaffold_of(smiles: str) -> str:
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return ""
return MurckoScaffold.MurckoScaffoldSmiles(mol=mol, includeChirality=False)
groups = {}
for rec in records:
sc = scaffold_of(rec.get("smiles", ""))
groups.setdefault(sc, []).append(rec)
keys = list(groups.keys())
random.Random(42).shuffle(keys)
n_total = len(records)
target_test = int(n_total * 0.2)
test, train = [], []
for k in keys:
if len(test) < target_test:
test.extend(groups[k])
else:
train.extend(groups[k])
print(f"训练 {len(train)} / 测试 {len(test)},骨架组数 {len(keys)}")
骨架切分不是万能的。PROTAC 的 Murcko 骨架往往只剩连接链的核心环系,两端配体被剥掉,分组效果会比小分子弱。如果要做更严格的切分,应该按两端配体的组合做分组,这需要先做结构分段,见 §5.5。
5.5 从 SMILES 切出 linker 与两端配体
TPDdb 没有把 PROTAC 拆成分段字段,这是相对 PROTAC-DB 的明显缺口。做「连接链长度与降解效率」分析必须自己切。
自动切分没有唯一解,「哪里算连接链」取决于化学家判断。工程上常用做法是先识别两端结合基团(通常是有明确药效团的环系),剩下的链状部分算连接链。这做法在规整分子上可行,复杂分子上会错,切完必须抽样人工核对。
#-- 用可断裂键把分子切成片段,粗略估计连接链长度
from rdkit import Chem
def cleave_linker(smiles: str):
mol = Chem.MolFromSmiles(smiles)
if mol is None:
return None
#-- 酰胺键与酯键是双功能分子里最常见的连接位点
patterns = ["[CX3](=O)[NX3]", "[CX3](=O)[OX2]"]
frags = []
for smarts in patterns:
patt = Chem.MolFromSmarts(smarts)
frags.extend(mol.GetSubstructMatches(patt))
#-- 只报告命中数,作为连接链复杂度的粗指标
return {"n_amide_or_ester": len(frags), "n_heavy": mol.GetNumHeavyAtoms()}
for rec in records[:5]:
print(rec.get("name", ""), cleave_linker(rec.get("smiles", "")))
这段代码只给粗指标。务实的顺序是先用粗指标看趋势,确认有信号再投入人力精细切分;反过来先精细切分,时间很容易在切分这一步就花光。
5.6 用靶点与疾病维度做布局分析
除了分子层面,它还适合做布局观察:580 个靶点与 274 种疾病配上 ICD-11 标准化,可直接描述赛道拥挤度与疾病覆盖。
做这类分析有三个纪律。一是要用去重后的结构数而不是记录数,否则专利同族会把某个靶点的热度虚高。二是要把肿瘤与非肿瘤分开看,论文提到疾病类型里肿瘤一百一十二种、非肿瘤一百六十二种,非肿瘤占比不小,但成药进展远慢于肿瘤。三是要注意疾病关联是映射推得的,一条「某分子关联某疾病」的记录,实际含义是「该分子在来源于该疾病的细胞系里被测过活性」,不是「该分子在该疾病里被验证有效」。
#-- 按靶点统计去重后的化合物数,识别拥挤靶点
from collections import defaultdict
target_to_smiles = defaultdict(set)
for m in molecules:
poi = m.get("poi", {}).get("uniprot", "")
sm = m.get("smiles", "")
if poi and sm:
target_to_smiles[poi].add(sm)
ranked = sorted(target_to_smiles.items(), key=lambda x: -len(x[1]))
print(f"覆盖靶点 {len(ranked)} 个")
for poi, smis in ranked[:15]:
print(f"{poi}\t{len(smis)} 个不重复结构")
输出会显示靶点的严重不均衡:少数靶点聚集大量化合物,长尾只有个位数。这个形态在做竞争情报时比任何综述都直观。
§6 与库内记录的关系
6.1 关系图谱
TPDdb 在库内并非孤立,它与已有的化学与药物库构成从「通用」到「专用」的收敛结构。
| 库内记录 | 关系类型 | 互补点 | 冲突点 |
|---|---|---|---|
| chembl | 上游通用活性源 | 提供非降解活性的对照与背景 | 活性类型口径不同,不可直接拼接 |
| drugbank | 上市药物确认 | 确认某分子是否已成为药物 | 覆盖范围是药物不是降解剂 |
| binding-moad | 结合数据方法层 | 提供结合亲和力建模的思路 | 面向蛋白—配体,非三元体系 |
| gaitpdb | 无关 | 名称相似,实质无关 | 需在检索时避免混淆 |
gaitpdb 这一行值得单列,因为它是库内唯一的名称混淆风险点。TPD 与 gait 这两个缩写在某些检索里会出现相近的字符串匹配结果,站内搜索时要看全名而不是缩写。
6.2 检索路径
入口不同,路径也不同。下面按常见入口给出最短路径。
| 你的入口 | 最短路径 | 大概步数 | 常见卡点 |
|---|---|---|---|
| 知道分子名 | 首页搜索框直接输入 | 一步 | 别名可能搜不到,需换成规范名 |
| 知道靶点名 | 按目标蛋白筛选 | 两步 | 靶点名要能对上 UniProtKB |
| 知道结构 | 结构检索上传或粘贴 SMILES | 两步 | 大分子指纹区分度下降 |
| 只知道疾病 | 按疾病筛选 | 两步 | 疾病是映射所得,可能有遗漏 |
| 想找某类分子 | 按模态筛选后浏览 | 两步 | 记录太多时排序方式影响判断 |
| 想找类似物 | 结构检索取排名靠前者 | 三步 | 阈值需人工判断 |
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
在打分之前,必须先纠正一个认知错位:不要按通用化学库的标准来评价这个库。
通用库的标准侧重覆盖与自动化:记录越多越好,去重越彻底越好,字段越全越好。按这套标准,TPDdb 在许多地方失分——自动化不如 ChEMBL,去重没做到结构级,疾病字段是推得的。
但它的目标不是覆盖,而是把降解机制的数据结构表达出来。按这个标准重看,失分处多是有意取舍:专利来源导致记录数虚高,因为专利本就是化学空间的真实所在;疾病用映射生成,因为原始实验根本没有疾病标注这一栏;三元结构只收实验的,因为预测结构会污染机制解释。
前置校正的核心是:评价这个库,要看它有没有把「降解证据的层次」表达清楚。它表达了一半——把三类活性并列了,但没有给出分级字段。这一半的表达,是它最大的优点,也是它最大的缺口。下面所有评分都以此为基准,凡是把它的缺口服当成误判,都会得到错误结论。
7.1 五维评分
评分采用十分制,五个维度分别衡量不同侧面。
| 维度 | 分数 | 主要依据 | 扣分原因 |
|---|---|---|---|
| 覆盖广度 | 9 | 六类模态全覆盖,专利化学空间为同类最广 | 溶酶体四类数量很薄 |
| 结构表达力 | 8 | 分子层与活性层分离,E3 升格为一等字段 | 无 linker 分段,无证据分级 |
| 数据可追溯 | 8 | 每条有文献或专利来源,靶点与疾病有外部标识 | 追踪粒度停在摘要层 |
| 接入便利 | 6 | 免登录、有结构检索、可下载 | 批量端点未公开,页面需 JS 渲染 |
| 许可清晰度 | 5 | 论文明确 CC BY-NC | 站点无独立开源许可声明 |
综合下来,这是一个在专业深度上明显强于通用库、在工程质量上弱于顶级基础设施的资源。它的强项恰好是别人补不上的,弱项恰好是别人做得更好的,所以它更像一个专用组件,而不是一个通用底座。
7.2 DAIMS 数据 AI 就绪度
| 维度 D | 检查项 | 评分 | 说明 |
|---|---|---|---|
| D1 | 数据完整性 | 8/10 | 六类模态字段同构,但不同类的必填字段不同 |
| D2 | 标注质量 | 6/10 | 专家人工策展,但无标注一致性报告 |
| D3 | 来源可溯 | 8/10 | 文献与专利双源,逐条可回溯 |
| A1 | 机器可读 | 6/10 | 网页为主,批量格式未公开 |
| A2 | 文档完备 | 6/10 | 论文有方法描述,无独立字段文档 |
| A3 | 接入成本 | 6/10 | 免登录但需自行解决批量获取 |
| A4 | 更新机制 | 5/10 | 首版发布,更新频率未公布 |
| I1 | 指标标准化 | 8/10 | UniProtKB、ICD-11、Cellosaurus 三重对齐 |
| I2 | 可复现性 | 6/10 | 无版本号与快照机制,复现需固化副本 |
| I3 | 语义互操作 | 7/10 | 外部标识齐全,缺降解剂专有本体 |
| M1 | 多模态对齐 | 7/10 | 结构、活性、疾病三模态同卡对齐 |
| M2 | 阴性覆盖 | 2/10 | 系统性缺失,是最严重的单点失分 |
| S1 | 数据安全 | 9/10 | 无患者数据,隐私面为零 |
| S2 | 合规负担 | 6/10 | CC BY-NC 限制商用,需逐案确认 |
总分落在中间偏上。真正拉低分数的只有两项:阴性覆盖与更新机制。前者是领域共性难题,后者是首版资源的常态,两者都不构成「不该用」的理由,但都构成「用之前要补」的理由。
7.3 已知的、可枚举的偏差
这里的偏差取严格的统计学含义:系统性偏离真实分布的方向。
第一条是专利偏差。库里的 PROTAC 绝大多数来自授权专利,而专利的写作动机是保护化学空间,不是报告完整构效关系。结果是分子偏向「结构多样、取代基丰富」而非「活性最优」,用它估计平均活性水平会偏低。
第二条是发表偏差。文献侧同样只报成功案例:一个课题组做了三十个分子只写三个最好的,是常态,库收的是那三个。
第三条是细胞系偏差。201 个细胞系分布极不均匀,常见癌细胞系占绝大部分记录,原代细胞、干细胞、体内模型几乎不存在,结论很难外推到生理相关场景。
第四条是模态偏差。PROTAC 与分子胶的数据密度远高于其余四类,跨模态统计不做样本量校正,就会把「数据多的类」误判为「更常见的类」。
| 偏差 | 方向 | 影响 | 缓解办法 |
|---|---|---|---|
| 专利偏差 | 偏向结构多样而非活性最优 | 低估平均效力 | 与文献源合并后重估 |
| 发表偏差 | 只收成功案例 | 阳性率虚高 | 另找失败案例补负例 |
| 细胞系偏差 | 偏癌细胞系 | 外推性差 | 按细胞类型分层报告 |
| 模态偏差 | 偏 PROTAC 与分子胶 | 跨类比较失真 | 做样本量校正 |
| 来源地理偏差 | 专利局覆盖影响分布 | 区域创新被过度或不足代表 | 按专利局拆开看 |
7.4 外部验证矩阵
要判断它说了算不算数,得拿外部参照来对。三列分别是库内说法、外部对照点、对照结论。
| 库内陈述 | 外部参照 | 对照结论 |
|---|---|---|
| 两万八千余个分子为同类最大 | PROTAC-DB 文献分子六千余个 | 数量优势主要来自专利,成立但需注明来源 |
| 覆盖六类模态 | 多数同类库只覆盖一类 | 跨模态覆盖成立 |
| 三元结构仅收实验解析 | PROTAC-DB 兼收预测结构 | 可靠性更高、覆盖率更低,取舍成立 |
| 疾病 274 种经 ICD-11 标准化 | 原始文献少有疾病标注 | 映射成立,但含义是细胞系来源疾病 |
| 580 个靶点经 UniProtKB 标准化 | UniProtKB 为权威蛋白标识源 | 标识层面成立 |
| 专家人工策展 | 论文宣称,无一致性指标 | 无法外部验证,只能采信 |
最后一行要单独说:人工策展的质量通常用双人独立标注加 Kappa 系数证明,论文没给这类指标,因此策展质量只能作为假设接受,不能当作已验证事实引用。
7.5 它为何能持续:专利化学空间的独占性
这类库能活下去,靠的不是比谁收得多,而是占住了一块别人不愿意做的地。
文献策展有明确的学术回报:读论文、抽数据、发文章。专利策展没有这个回报——费力、枯燥、法律语言晦涩、还要处理马库什通式。但恰恰是这块地藏着降解剂化学空间的绝大部分,谁翻过一遍,谁就有别人短期内无法复制的位置。
这就是它的生存逻辑:文献侧的库会不断被新库追平,因为读论文这件事门槛在下降;专利侧的库会被时间加固,因为每多翻一年专利,复利的优势就多一层。加之团队本身有维护多个数据库的工程能力,更新是可预期的。
反过来说,这也意味着它的风险点很明确:一旦专利检索与解析的自动化程度大幅提升,这块独占性会被稀释。到那时,它的护城河就要从「谁翻了专利」转向「谁把证据分得更细」。
§8 生态位与历史
8.1 历史沿革
降解剂的历史比直觉要长。二十年前学界已提出「把目标蛋白送进蛋白酶体」,早期工作用肽段做 E3 识别元件,分子量大、透膜差,只能算概念验证。
转折发生在小分子 E3 配体普及之后:CRBN 与 VHL 配体易得,双功能分子的设计门槛骤降,PROTAC 从精巧想法变成了可高通量探索的化学问题。分子胶的复兴是另一条线索,来那度胺这类老药的新机制被阐明后,「不设计连接链也能降解」这条路一下子打开了。
数据库的出现晚于这两条线索——领域要先积累到数据散落在几百篇论文和上千件专利里,才值得建库。TPDdb 出现在 2026 年,正对应这个时点。
| 阶段 | 时间感 | 主要形态 | 数据状态 |
|---|---|---|---|
| 概念期 | 二十年前 | 肽段类双功能分子 | 零星个案 |
| 配体成熟期 | 十余年前 | 小分子 E3 配体普及 | 文献快速增长 |
| 分子胶复兴期 | 近年 | 单体诱导降解 | 与 PROTAC 并行 |
| 溶酶体拓展期 | 近年 | LYTAC 等新通路 | 数量少但增速快 |
| 建库期 | 当前 | 跨模态统一表结构 | 本库所处的阶段 |
8.2 在同类资源里的位置
同类资源可以按「覆盖模态」与「数据来源」两个轴排布。TPDdb 落在「全模态 × 文献加专利」这个角上,这个角目前是空的。
| 资源 | 模态覆盖 | 来源 | 角落 |
|---|---|---|---|
| TPDdb | 六类 | 文献 + 专利 | 全模态 × 双源 |
| PROTAC-DB | 一类 | 文献 | 单模态 × 单源 |
| ChEMBL | 不区分 | 文献 + 专利 | 泛化 × 双源 |
| PubChem | 不区分 | 文献 + 专利 | 泛化 × 双源 |
| TTD | 不区分 | 文献 + 专利 | 泛化 × 双源 |
这个位置的优势是稀缺,劣势是没有参照:找不到可直接对标的同类,只能拆成多个维度分别比。
8.3 与临床进展的距离
论文引言提到,目前有三个降解剂被美国食品药品监督管理局批准,三十余个在临床试验中。这两个数字与库里的两万八千余个分子之间,隔着一条极长的死亡谷。
这个距离意味着库里的绝大多数分子永远不会进入临床,它们的存在意义是化学空间探索与构效关系归纳。把库当候选池用,会严重高估领域成熟度。
| 层级 | 数量级 | 数据可用性 | 本库覆盖 |
|---|---|---|---|
| 已上市 | 个位数 | 高 | 部分覆盖 |
| 临床在研 | 数十 | 中 | 部分覆盖 |
| 临床前候选 | 数百 | 低 | 部分覆盖 |
| 专利与文献分子 | 数万 | 本库主要覆盖 | 主体 |
| 未发表的失败分子 | 未知 | 无 | 未覆盖 |
表的最下面一行是全库最大的空洞:真实的化学空间里,做过但失败的分子远超成功分子,而它们在公开渠道几乎不存在。
8.4 生态影响与衍生用途
专业库的影响往往不在它自己,而在它被谁拿去做了什么。
第一类是基准集。比较两个降解活性预测模型需要一个公认测试集,本库的专利化学空间天然提供了「训练集在文献、测试集在专利」的划分,比随机划分更接近真实场景。
第二类是靶点可降解性研究。580 个靶点及其化合物数量可支撑「哪些蛋白容易被降解」的统计,进而提出可降解蛋白组的假设。
第三类是专利情报。按专利局拆分统计,能看出不同区域的研发重心差异。
§9 使用指引
9.1 三种角色的路径
角色不同,最短路径差别很大,硬套一套流程反而低效。
| 角色 | 首要问题 | 第一站 | 最短路径 | 时间感 |
|---|---|---|---|---|
| 药物化学家 | 这个骨架有没有人做过 | 结构检索 | 上传 SDF 看相似物,再按靶点核实 | 十分钟级 |
| 计算化学家 | 能不能拿到干净训练集 | 数据获取 | 先解决批量获取,再做活性拆分与分组切分 | 天级 |
| 立项与情报 | 这个赛道挤不挤 | 靶点筛选 | 按靶点数去重结构,看长尾与头部 | 小时级 |
| 生物学家 | 这个分子的降解靠不靠得住 | 分子页 | 看活性类型与是否有通路对照 | 小时级 |
| 专利分析 | 哪些专利族覆盖了关键化合物 | 来源字段 | 按专利号聚合,再做结构去重 | 天级 |
9.2 一条最短的可用流程
从零到能用,最短的流程是四步:拿到数据、拆开活性类型、重建证据层级、做分组切分。下面把四步压成一段代码,可以直接改路径运行。
#-- 从整理好的本地数据出发,产出可分层的训练集
import json
from collections import defaultdict
DEGRADATION = {"DC50", "Dmax"}
BINDING = {"IC50", "Kd", "Ki"}
PHENOTYPE_HINT = ("viab", "cytotox", "prolif", "apopt")
def classify(activity_type: str) -> str:
t = (activity_type or "").strip()
if t in DEGRADATION:
return "L3_degradation"
if t in BINDING:
return "L1_binding"
if any(k in t.lower() for k in PHENOTYPE_HINT):
return "L0_phenotype"
return "L2_other"
with open("tpddb_activities.json", encoding="utf-8") as f:
acts = json.load(f)
buckets = defaultdict(list)
for a in acts:
buckets[classify(a.get("activity_type", ""))].append(a)
for k in sorted(buckets):
print(f"{k}: {len(buckets[k])} 条")
#-- 只保留降解类,且要求有明确细胞系(无细胞系的记录无法做分组)
usable = [a for a in buckets["L3_degradation"] if a.get("cell_line")]
by_cell = defaultdict(int)
for a in usable:
by_cell[a["cell_line"]] += 1
top_cells = sorted(by_cell.items(), key=lambda x: -x[1])[:10]
print("可用记录最多细胞系:", top_cells)
#-- 锁定单一细胞系做可比子集,这是建模的起点
anchor_cell = top_cells[0][0] if top_cells else None
anchor = [a for a in usable if a.get("cell_line") == anchor_cell]
print(f"锁定 {anchor_cell} 后可用记录 {len(anchor)} 条,涉及分子 {len({a['molecule_id'] for a in anchor})} 个")
跑完会得到一个明确的数字:单一细胞系条件下可用的降解活性记录有多少。它通常比直觉小得多,而这才是应该拿来规划的基数。
9.3 引用方式
引用这个库要落到两处:论文与站点。论文是学术引用的正式来源,站点是数据访问的正式来源,缺一个都不完整。
Qin X, Zhang Y, Wang Y, et al. TPDdb: the comprehensive database of
targeted protein degrader. Nucleic Acids Research. 2026;54(D1).
doi:10.1093/nar/gkaf996
数据访问:TPDdb, https://idrblab.org/TPDdb/ (访问日期:YYYY-MM-DD)
访问日期必须写,因为库没有版本号。没有版本号的数据集,锁定复现的唯一手段就是访问日期加一份本地快照。
§10 AI 使用声明
| 项目 | 说明 |
|---|---|
| 写作方式 | 由 AI 辅助起草,人工按编辑纪律校订 |
| 事实来源 | 论文全文(Europe PMC 开放版本)与官方站点入口 |
| 规模数字 | 全部取自论文摘要与引言原文,未做二次统计 |
| 结构描述 | 取自论文方法节与图表说明,未逐页核对站点 |
| 分级建议 | §4.2 的六级分层与 §7.1 的五维评分为编者提出的操作性建议,非官方字段 |
| 案例数据 | §4.3 的缩水量级为基于论文陈述的推理,非逐条统计结果 |
| 未核实项 | 批量下载端点、站点条款、结构检索所用指纹类型 |
| 更新状态 | 首版,截至访问日期未见新版本发布 |
常见误读(避坑清单)
| 常见说法 | 实际 | 证据 |
|---|---|---|
| IC50 低就说明这个分子能降解 | IC50 测结合或抑制,不测蛋白丰度,两者可以完全脱钩 | 论文把结合亲和力与降解活性列为并列的两类活性 |
| 细胞活力下降说明降解成功 | 活力下降可能来自脱靶毒性,单一表型无法区分 | 论文单列细胞毒活性,与降解活性分栏 |
| 库里的记录数就是可用样本数 | 按证据层级与细胞系收敛后会缩一到两个数量级 | §4.3 的案例展示了逐层筛除的过程 |
| 有两万八千个分子,三元结构也差不多 | 三元结构只收实验解析的,且明确不收预测结构 | 论文方法节的采集说明与表 1 的对照 |
| DC50 越小分子越好 | 还要看 Dmax,低 DC50 配低 Dmax 意味着清不干净 | 论文把 DC50 与 Dmax 并列为活性指标 |
| 疾病标签说明分子对该病有效 | 疾病由细胞系来源与基因—疾病关联映射推得,非疗效验证 | 论文方法节的双源映射策略 |
| 人工策展意味着数据一定准确 | 人工策展保证结构明确与证据存在,不保证证据强度 | 三道筛的判据均停在存在性层面 |
| 可以和 PROTAC-DB 直接拼接去重 | 两者来源侧不同,重叠部分需按结构而非名称去重 | 论文指出文献侧与专利侧的互补关系 |
| 免登录就等于可以商用 | 论文为 CC BY-NC,站点未声明独立开源许可 | 论文许可为 CC BY-NC |
| 溶酶体类与泛素类字段一致可以直接合并 | 溶酶体类不填 E3 连接酶,填的是穿梭受体 | 论文对两类通路的分别描述 |
FAQ
Q1:TPDdb 和 PROTAC-DB 到底是什么关系?
互补而非替代:TPDdb 的主体是专利化学空间,PROTAC-DB 的主体是文献。最常见的做法是两个都拿,按结构去重后合并,再用各自的来源字段溯源。
Q2:为什么说三元复合物是这个库最有价值的部分?
因为它是唯一能直接解释「为什么能降解」的结构证据。DC50 与 Dmax 告诉你降了多少,三元结构告诉你靠什么降的。没有结构,构效关系只能统计归纳;有结构,才能做基于机制的改造。
Q3:库里有没有负面结果?
没有系统性的负面结果。文献与专利都不报失败案例,这是领域报告习惯而非采集疏漏,需要负例的任务必须另找来源。
Q4:疾病字段能直接当适应症标签用吗?
不能当疗效标签。它的生成路径是「细胞系 → 来源疾病」加「基因 → 疾病关联」两路映射,含义只是「这个分子在来源于该疾病的细胞里被测过」。
Q5:为什么论文里的分子数这么大,真正能用的却这么少?
因为分子数统计「被记录过的化合物」,可用性统计「在统一条件下被验证过的化合物」,中间隔着活性类型、细胞系、通路对照三道筛。
Q6:能不能用它做虚拟筛选的靶点?
可作先验知识,不能当筛选引擎。它告诉你哪些靶点被攻击过、用的什么 E3、有哪些已知活性分子,但不做对接也不打分。
Q7:分子胶的数据为什么值得单独看?
因为两者发现范式完全不同:PROTAC 靠理性设计,分子胶多靠表型筛选与偶然发现。库里的表现是分子胶靶点更集中、分子量更小、透膜性更好,§4.5 给了对比维度。
Q8:怎么判断一个分子在库里是不是真的被测过降解?
看活性类型字段:DC50 与 Dmax 是降解类,IC50 与 Kd 是结合类,细胞活力与凋亡是表型类。只有降解类能直接支持「该分子造成蛋白减少」。
Q9:站点的结构检索可靠吗?
可以用于找类似物,但要注意两点:大分子量的 PROTAC 在常规指纹下区分度会下降;相似度阈值需要自己按场景调,不能照搬小分子的经验值。
Q10:这个库会不会更新?
首版 2026 年发表,更新频率未公布。团队有长期维护多库的记录,预期会更新;但在机制确定前,每次使用都应固化快照并记录访问日期。
Q11:做可复现研究,最少要保存什么?
三样:数据副本、访问日期、重建的证据分级规则。第三样最易被忽略也最重要——同一份数据在不同规则下会得出不同的可用样本量。
Q12:它适合教学吗?
很适合讲「新模态为什么需要新数据表结构」:分子胶与 PROTAC 的机制差异、三类活性区分、证据层级构建都能直接拿它做例子。但别把库里的数据当已验证结论直接讲。
术语表
| 术语 | 英文 | 含义 |
|---|---|---|
| 靶向蛋白降解 | Targeted Protein Degradation | 用分子把目标蛋白送去销毁,而非抑制其功能 |
| 降解剂 | Targeted Protein Degrader | 执行上述过程的分子总称 |
| PROTAC | Proteolysis-Targeting Chimera | 双功能分子,两端分别结合目标蛋白与 E3 连接酶 |
| 分子胶 | Molecular Glue | 单体小分子,诱导两个蛋白之间形成新结合面 |
| LYTAC | Lysosome-Targeting Chimera | 把目标蛋白送往溶酶体降解的双功能分子 |
| ATTEC | Autophagosome-Tethering Compound | 把目标与自噬体拴在一起的化合物 |
| AUTAC | Autophagy-Targeting Chimera | 带降解标签的自噬靶向降解分子 |
| AUTOTAC | Autophagy-Targeting Compound | 靶向自噬受体的降解分子 |
| 三元复合物 | Ternary Complex | 目标蛋白、降解剂、E3 连接酶三者形成的复合物 |
| E3 连接酶 | E3 Ligase | 负责把泛素转移到目标蛋白上的酶 |
| CRBN | Cereblon | 最常用的 E3 连接酶之一,沙利度胺类药物的靶点 |
| VHL | von Hippel-Lindau | 另一个常用 E3 连接酶,结构清晰 |
| DC50 | Half-degradation Concentration | 使目标蛋白丰度下降一半所需的浓度 |
| Dmax | Maximum Degradation | 饱和条件下能达到的最大降解幅度 |
| 泛素—蛋白酶体通路 | Ubiquitin-Proteasome System | 目标蛋白被泛素标记后送进蛋白酶体销毁的通路 |
| 自噬—溶酶体通路 | Autophagy-Lysosome Pathway | 目标蛋白经自噬送入溶酶体销毁的通路 |
| Tanimoto 系数 | Tanimoto Coefficient | 分子指纹相似度的常用度量 |
| 分子指纹 | Molecular Fingerprint | 把分子结构编码成比特向量的方法 |
| 骨架 | Murcko Scaffold | 去掉侧链后的分子核心结构 |
| 分组切分 | Group Split | 按结构聚类切分数据集,防止相似分子跨集泄漏 |
| ICD-11 | International Classification of Diseases 11th | 世界卫生组织的疾病分类标准 |
| UniProtKB | UniProt Knowledgebase | 蛋白序列与功能的权威标识库 |
| Cellosaurus | Cellosaurus | 细胞系的权威标识与注释库 |
| 马库什通式 | Markush Structure | 专利里用通式覆盖一大类结构的写法 |
| 阴性结果 | Negative Result | 做了实验但未观察到预期效应的结果 |
| 催化式机制 | Catalytic Mechanism | 分子促成反应后自身不被消耗,可循环使用 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 分子胶数量 | 六千零二个 | 论文摘要与引言 | 论文摘要 |
| PROTAC 数量 | 两万二千一百八十三个 | 论文摘要与引言 | 论文摘要 |
| LYTAC 数量 | 二百四十九个 | 论文摘要 | 论文摘要 |
| ATTEC 数量 | 一百六十九个 | 论文摘要 | 论文摘要 |
| AUTOTAC 数量 | 二十九个 | 论文摘要 | 论文摘要 |
| AUTAC 数量 | 二十三个 | 论文摘要 | 论文摘要 |
| 目标蛋白数 | 五百八十个 | 论文摘要 | 论文摘要 |
| 疾病数 | 二百七十四种 | 论文摘要 | 论文摘要 |
| 肿瘤类疾病数 | 一百一十二种 | 论文引言 | 论文正文 |
| 非肿瘤类疾病数 | 一百六十二种 | 论文引言 | 论文正文 |
| 活性测量数 | 两万七千七百九十六条 | 论文摘要 | 论文摘要 |
| 细胞系覆盖 | 二百零一个 | 论文摘要 | 论文摘要 |
| 疾病关联总数 | 九万八千六百八十条 | 论文方法节 | 论文正文 |
| 节点药物数 | 三个已获批 | 论文引言 | 论文正文 |
| 临床在研数 | 三十余个 | 论文引言 | 论文正文 |
| 论文授权 | CC BY-NC | Europe PMC 元数据 | 论文摘要 |
附录 B:数字的来源分层
第一层,论文摘要与正文。 六类模态的分子数、580 个靶点、274 种疾病、两万七千余条活性、201 个细胞系、疾病关联九万八千余条,均可直接引用。
第二层,论文间接陈述。 三个获批、三十余个在研、肿瘤与非肿瘤拆分、专利局覆盖范围,适合做背景,不适合精确统计。
第三层,未核实。 批量下载端点的形式、三元复合物的准确记录数、结构检索所用指纹、站点独立许可条款、更新频率。这些论文未明确交代,一律标注未核实。
第四层,编者推理。 §4.3 的缩水量级、§7.1 的五维评分、§4.2 的六级分层,均为操作性建议,不是官方数据。
附录 C:完整参考文献
| 编号 | 文献或资源 | 标识 |
|---|---|---|
| 1 | Qin X, Zhang Y, Wang Y, et al. TPDdb: the comprehensive database of targeted protein degrader. Nucleic Acids Research, 2026, 54(D1) | doi:10.1093/nar/gkaf996 |
| 2 | Europe PMC 开放全文版本 | PMC12807599 |
| 3 | TPDdb 官方入口 | https://idrblab.org/TPDdb/ |
| 4 | PROTAC-DB(文中对比参照) | https://protacdb.unibo.it/ |
| 5 | UniProtKB 蛋白标识库 | https://www.uniprot.org/ |
| 6 | Cellosaurus 细胞系库 | https://www.cellosaurus.org/ |
| 7 | 世界卫生组织 ICD-11 | https://icd.who.int/ |
| 8 | PubChem 化合物库 | https://pubchem.ncbi.nlm.nih.gov/ |
| 9 | Protein Data Bank 结构库 | https://www.rcsb.org/ |
| 10 | ChEMBL 生物活性库 | https://www.ebi.ac.uk/chembl/ |
附录 D:证据分级对照代码
不想从零搭分级逻辑,可以直接用下面这份实现:把每条活性记录映射到一个层级,并输出判据说明。
#-- 把活性记录映射到 §4.2 定义的证据层级,并输出层级分布
import json
from collections import Counter
LEVEL_RULES = {
"L0_phenotype": "仅有细胞活力或增殖数据,无法区分降解与毒性",
"L1_binding": "仅有结合类测量,结合不等于降解",
"L2_abundance": "有蛋白丰度下降但缺剂量关系",
"L3_degradation": "有 DC50 或 Dmax,可证明剂量依赖的降解",
"L4_pathway": "有通路对照,证明降解依赖泛素—蛋白酶体",
}
def level_of(rec: dict) -> str:
t = (rec.get("activity_type") or "").lower()
if t in ("dc50", "dmax"):
return "L3_degradation"
if t in ("ic50", "kd", "ki"):
return "L1_binding"
if "abundance" in t or "remaining" in t:
return "L2_abundance"
if "viab" in t or "cytotox" in t or "prolif" in t:
return "L0_phenotype"
if "pathway" in t or "ubiquitin" in t:
return "L4_pathway"
return "L1_binding"
with open("tpddb_activities.json", encoding="utf-8") as f:
acts = json.load(f)
dist = Counter(level_of(a) for a in acts)
total = sum(dist.values()) or 1
for lv in sorted(dist):
print(f"{lv}\t{dist[lv]}\t{dist[lv] / total:.1%}\t{LEVEL_RULES[lv]}")
跑完最该看 L4 那一行。若它接近零,说明库内几乎没有通路对照层面的证据,涉及降解机制的陈述都必须回原文确认。
附录 E:如果只记五件事
第一,主体是专利化学空间,不是文献;它与 PROTAC-DB 互补远大于重叠,两个都拿才完整。
第二,三类活性必须分开看:IC50 与细胞活力都不是降解证据,只有 DC50 与 Dmax 才是。
第三,没有官方证据分级字段,分级要自己砌,规则直接决定可用样本量,差一到两个数量级。
第四,阴性结果系统性缺失,需要负例必须另找来源。
第五,论文是 CC BY-NC,商用须单独确认。
编辑说明
核验时间为 2026 年 10 月 26 日。核验方式:以 Europe PMC REST 检索定位到论文记录(PMID 41091922 / PMC12807599),取开放全文 XML 与 DOI 落地页正文;官方入口 idrblab.org/TPDdb/ 多次请求返回前端加载占位页,未取到静态内容,故站点层面的字段与下载细节按「未核实」处理,正文中所有规模与结构描述均以论文为依据。
未覆盖内容:三元复合物结构的准确记录数、站点独立许可条款、批量下载端点的存在性与形式、结构检索所用指纹类型、更新频率与版本号机制。上述五项如需引用,建议直接联系通讯作者确认,不宜由第三方推测。
本篇中属于编者分析而非原始事实的部分:§4.2 的六级证据分层、§4.3 案例的缩水量级估计、§7.1 的五维评分与 §7.2 的 DAIMS 评分、附录 D 的分级实现。这些内容可用于工程实现,但对外引用时应标注为分析性建议,不构成对原库的评价结论。
文中出现的对比性判断(如与 PROTAC-DB 的取舍)均基于论文表 1 的公开信息,不涉及对任何资源的优劣定性。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- davis — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- drugbank — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- npass — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- chembl — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- drugtargetcommons — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- iuphar-bps — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- hetionet — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- chembl — 共享标签:药物发现与化学 / 化学信息学 / 药物-靶点相互作用
- zinc — 共享标签:药物发现与化学 / 化学信息学
- pdbbind — 共享标签:药物发现与化学 / 化学信息学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

