信息速览

KIBA(激酶抑制剂结合亲和力数据集)— 药物发现与化学信息学 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | KIBA |
| 英文全称 | Kinase Inhibitor BioActivity(官方仓库称 KiBA — Kinase Inhibitor Bioactivity Score) |
| 别名/简称 | KiBA、KIBA score 数据集、KIBA benchmark、TDC-KIBA |
| 疾病分类 | 恶性肿瘤相关激酶靶点(ICD-11:2A00-2F9Z 恶性肿瘤范畴,见 §2.1) |
| SNOMED CT | 363346000 malignant neoplastic disease(应用领域映射,见 §2.1b) |
| 数据模态 | 化合物-激酶结合亲和力(IC50/Ki/Kd 模型化整合 KIBA score)+ 化合物 SMILES + 激酶氨基酸序列 |
| AI 任务类型 | 药物-靶点亲和力(DTA)回归、DTI 二分类、冷启动推荐、激酶选择性谱预测 |
| 样本总数 | 原始发布:52,498 化合物 × 467 激酶 × 246,088 个 KIBA scores;DeepDTA 基准版:229 蛋白 × 2,111 化合物 × 118,254 相互作用 |
| 数据大小 | 29.8 MB(Zenodo 官方 kiba.zip) |
| 数据格式 | ZIP(Excel/CSV 亲和力矩阵);社区基准版 JSON + pickle 矩阵;TDC 版 DataFrame |
| 许可证 | 未明确声明(官方未附许可条款;TDC 收录时标注 Not Specified) |
| 访问级别 | 开放(无需注册、无需申请) |
| DUO 标签 | 不适用(非人类受试者数据) |
| 语言 | 英文 |
| 首发日期 | 2014-03(JCIM 论文 2014-03-24 出版) |
| 最后更新 | 官方包 2021-06 归档于 Zenodo;官方 GitHub 仓库最后提交 2022-03-29;TDC 版持续维护(v0.3.2 更新了统计口径) |
| 发布机构 | University of Helsinki — Institute for Molecular Medicine Finland (FIMM) |
| 官方主页 | Helsinki 网络药理学组软件页 |
| 下载地址 | Zenodo record 5105698 |
| DOI | 10.1021/ci400709d(论文);10.5281/zenodo.5105697(数据) |
| 引用次数 | 735+(Google Scholar,截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 有官方数据包、DeepDTA 官方划分与 TDC 一行加载;扣分项:三种统计口径版本并存需自行抉择,标签为整合分数而非直接测量值 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(激酶药理学背景、ICD-11 与 SNOMED CT 映射、临床任务定义、金标准描述)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
审核方式:交叉审核
利益冲突声明:千方病案医数集与 University of Helsinki、FIMM、Zenodo 及相关研究团队无任何商业利益关联。本页面不销售 KIBA 数据集本身,仅提供 AI 就绪指南与学术信息服务。编辑者未接受上述机构任何形式的资助。
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。KIBA 官方论文与数据托管页未附明确许可条款,TDC 收录时标注为 Not Specified;使用者应自行确认学术使用范围并规范引用原始论文。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? KIBA 是一个激酶抑制剂结合亲和力数据库,由芬兰赫尔辛基大学 FIMM 研究团队的 Tang 等人在 2014 年整理发布。人体细胞内有大量蛋白激酶,癌症往往与激酶活性异常有关,因此激酶是重要的抗癌药物靶点。不同实验室测量药物与激酶结合强度时使用三种不同指标(IC50、Ki、Kd),数值之间无法直接比较;KIBA 用一个基于模型的整合方法把它们换算成统一的"KIBA score",最终给出 52,498 个化合物对 467 个激酶的 246,088 个亲和力分数。
为什么重要? 在深度学习药物-靶点亲和力(DTA)预测领域,KIBA 与 Davis 数据集并列为事实上的两大标准基准:DeepDTA、GraphDTA、MATT-DTI 等几乎所有主流模型都在它的过滤版本(229 蛋白 × 2,111 化合物 × 118,254 相互作用)上报告成绩,原始论文已被引用 735+ 次(Google Scholar,截至 2026-09)。它也是 Therapeutics Data Commons(TDC)收录的标准数据集之一,一行代码即可加载。
我能用它做什么? 你可以训练一个模型,输入化合物的 SMILES 分子式和激酶的氨基酸序列,预测两者结合有多强,用于虚拟筛选、药物重定位和激酶选择性分析;也可以研究"模型在新药物或新靶点上是否还能预测得好"(冷启动问题)。注意:KIBA score 越大结合越强,但它不是物理单位,不能直接当作 Kd 或 Ki 解读(见坑点 2)。
§1.1 摘要
KIBA 数据集源自对三个大规模激酶抑制剂生化测定研究的系统比较,并将这些标准化活性数据与 ChEMBL、STITCH 数据库中报告的值进行交叉核对(Tang 等,2014,J Chem Inf Model. DOI 10.1021/ci400709d)。三种活性类型中,IC50 反映抑制一半活性所需浓度,Ki 反映抑制常数,Kd 反映解离常数,三者物理含义不同、实验来源不同、数值分布不同。作者提出的 KIBA 整合方法基于矩阵分解思想,利用三者在重叠化合物-激酶对上的一致性,将异构活性值投影到统一分数空间,最终发布 52,498 化合物 × 467 激酶的稀疏活性矩阵,含 246,088 个 KIBA scores。
后续 SimBoost(2017)为保证相似度计算可行性做了激进过滤(保留观测值 ≥10 的药物与靶点),得到 229 蛋白 × 2,111 化合物 × 118,254 相互作用的稠密子矩阵;DeepDTA(2018)沿用该版本并附带官方 5 折交叉验证划分,使其成为社区基准。KIBA score 数值越大代表结合越强,TDC 版本标签范围为 0.0-17.20。值得注意的方法学细节是:基准版使用的标签值经过了 SimBoost 流程的预处理,这使它既不同于原始 Zenodo 矩阵中的分数,也不同于任何单一活性类型的原始测定值——三口径版本并存且数值不可互换,是使用本数据集的第一认知门槛(详见 §3.0 与坑点 1)。
§1.2 战略价值
维度一:DTA 预测的标准试金石。 与只有 442 蛋白 × 68 配体的 Davis 数据集相比,KIBA 基准版的化合物空间大 30 倍以上(2,111 vs 68),标签分布更宽(0-17.2 vs pKd 约 5-10),对模型分子表征能力的考验更全面。一条模型在 KIBA 上 CI 达 0.88+ 已是近年主流水平,任何新 DTA 架构都绕不开与它在同一协议下的对比(见 §8.1)。
维度二:多模态活性整合的方法学范本。 KIBA 的核心贡献不是"又一个数据集",而是"异构活性值的整合范式":先用三源测定的重叠对校准系统性偏差,再用矩阵分解补全与统一。这一思路直接影响了后续 DrugTargetCommons 等大型活性整合数据库的数据处理哲学。对做数据清洗与标签工程的研究者,原始论文对 ChEMBL/STITCH 数据库人工整理偏倚的定量分析至今仍有参考价值。
维度三:冷启动与药物重定位研究的理想载体。 化合物多、靶点相对少的结构,天然适合研究"新药能否推荐到正确靶点"这一药物重定位核心问题。TDC 官方提供 Random / Cold Drug / Cold Protein 三种划分,使冷启动实验可以开箱即做,无需自行构造划分协议。
§1.3 同类数据集横向对比
| 数据集 | 规模(蛋白 × 化合物 × 相互作用) | 活性类型与标签 | 结构特点 | 与 KIBA 的差异化 |
|---|---|---|---|---|
| KIBA(DeepDTA 版) | 229 × 2,111 × 118,254 | IC50/Ki/Kd 整合 KIBA score(连续,越大越强) | 化合物远多于靶点,稀疏度高 | 多源活性整合,标签范围宽,化合物空间大 |
| Davis et al. 2011 | 442 × 68 × 30,056 | 实验测定 Kd → pKd = -log10(Kd/1e9) | 靶点多、配体少,矩阵稠密 | 单一物理单位 Kd,标签干净、噪声低 |
| Metz et al. 2011 | 激酶 panel 测定数据 | Kd(连续) | 规模介于 Davis 与 KIBA 之间 | 常与 Davis/KIBA 一起作为 SimBoost 三基准 |
| BindingDB(TDC Kd 子集) | 1,413 × 10,665 × 52,284 | 实验 Kd(连续) | 跨蛋白家族,类型杂 | 覆盖面广但激酶深度不如 KIBA |
| DrugTargetCommons | 社区众包整合 | IC50/Ki/Kd 原始值 | 动态更新 | KIBA 是其方法学先驱,DTC 保留原始单位不整合 |
对比解读:若研究目标是"标签物理含义明确、噪声可控",Davis 是更干净的选择;若研究目标是"化合物空间广、考验分子表征泛化",KIBA 不可替代;两者同协议成对报告已成为 DTA 论文的通行做法。
§1.4 版本时间轴
| 时间 | 版本/事件 | 说明 |
|---|---|---|
| 2014-03 | 原始发布 | Tang 等于 JCIM 发表论文,发布 52,498 × 467 × 246,088 整合矩阵(Excel 格式,附论文 Supporting Information) |
| 2015 | KronRLS 整理版 | Pahikkala 等为 KronRLS 基准重新整理 KIBA 数据,与原始版本略有差异(后续被 PADME 作者指出) |
| 2017 | SimBoost 过滤版 | He 等为可行性做 ≥10 观测值过滤,得 229 蛋白 × 2,111 化合物 × 118,254 相互作用 |
| 2018 | DeepDTA 基准化 | Öztürk 等随代码发布 ligands_can.txt / proteins.txt / Y / folds 官方划分,成为社区事实标准 |
| 2021-06 | Zenodo 归档 | 官方原始包 kiba.zip(29.8 MB,md5 ad2312340873cc7c775092aedbecf39a)归档于 Zenodo record 5105698 |
| 2022-03 | GitHub 仓库 | TangSoftwareLab/KiBA 仓库建立(2022-03-29 初始提交),提供下载指引 |
| 2021 起 | TDC 收录 | Therapeutics Data Commons 收录 KIBA;v0.3.2 更新后为 117,657 对、2,068 药物、229 蛋白(此前 118,036 对) |
时间轴的读法:KIBA 的"版本演化"不是数据内容的更新,而是不同研究团队为各自方法学需求对同一原始矩阵做的不同整理。这决定了它的引用方式——引用数据本体引 Tang et al. 2014 与 Zenodo 包;引用基准协议引 SimBoost 与 DeepDTA;引用加载接口引 TDC。三层引用缺一,都可能被审稿人指出口径不明。
§1.5 典型应用场景
- DTA 模型基准测试:在官方 5 折交叉验证协议下与 DeepDTA(CI 0.863)、GraphDTA(CI 0.883)等主流模型对比,验证新架构的亲和力预测能力。
- 大规模虚拟筛选:对候选化合物打分预测其与癌症相关激酶的结合强度,缩小湿实验筛选空间。
- 药物重定位:预测已上市/在研化合物对非预期激酶的亲和力,发现新适应症线索。
- 冷启动泛化研究:用 TDC Cold Drug / Cold Protein 划分量化模型对全新分子骨架或全新靶点的外推能力。
- 分子表征学习评估:将 KIBA 作为下游任务,检验预训练分子图/蛋白语言模型表征的迁移价值。
场景与数据版本的匹配建议:场景 1、5 用 DeepDTA 版(可比性优先);场景 2、3 用 TDC 版(接口效率优先);场景 4 必须用 TDC 三划分或自行实体分组划分;任何场景若需回溯物理活性含义,回到 Zenodo 原始版的 IC50/Ki/Kd 对照列。
§2 医学背景
§2.1 ICD-11 疾病领域映射
KIBA 是按"化合物-靶点"组织的化学基因组学数据集,不携带疾病编码;其激酶靶点对应的药物应用领域集中于肿瘤学。下表给出研究相关疾病领域的 ICD-11 映射:
| 标签/领域 | ICD-11 编码 | ICD-11 中文名称 | 与本数据集的关系 |
|---|---|---|---|
| 恶性肿瘤(总体) | 2A00-2F9Z | 恶性肿瘤(Neoplasms 章节编码范围) | 激酶抑制剂最主要的治疗领域,数据集靶点谱系主要服务肿瘤药物发现 |
| 白血病等血液系统恶性肿瘤 | 2A60-2A7Z 区段 | 白细胞/造血组织恶性肿瘤范畴 | 多个经典激酶抑制剂的代表性疾病场景,靶点集中于细胞质酪氨酸激酶等 |
| 实体瘤相关激酶异常 | 2B00-2F5Z 区段 | 呼吸系统/消化系统等器官实体瘤范畴 | EGFR、ALK 等受体酪氨酸激酶相关靶向治疗的研究场景 |
注:KIBA 的组织维度是激酶靶点与化合物,而非患者疾病诊断;上述编码用于说明数据集的疾病应用域,不能反推每条记录的疾病归属。
§2.1b SNOMED CT 映射
| 标签 | ICD-11 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| 恶性肿瘤性疾病 | 2A00-2F9Z | 363346000 | Malignant neoplastic disease(恶性肿瘤性疾病) |
| 数据集对象:蛋白激酶靶点 | 无对应疾病码 | 以靶点分子维度组织 | SNOMED CT 以临床疾病为核心,不设逐一激酶分子编码;激酶-疾病关联需经 UniProt/ChEMBL 靶点库中转 |
§2.2 疾病背景:激酶、激酶抑制剂与肿瘤治疗
蛋白激酶(protein kinase)是一类催化 ATP 的 γ-磷酸基转移到底物蛋白上的酶家族,人类基因组编码 500 余种,通过磷酸化级联调控细胞增殖、凋亡、迁移等几乎所有关键信号通路。当激酶发生突变或过度激活时,细胞增殖失控,这正是许多癌症的核心机制——例如 BCR-ABL 融合激酶之于慢性粒细胞白血病、EGFR 突变之于肺腺癌。因此,激酶家族自 20 世纪末以来一直是靶向肿瘤治疗最成功的药物靶点家族,“可成药激酶组”(druggable kinome)成为药物发现的高频词。
不同激酶的 ATP 结合口袋结构高度保守,这带来两个直接后果。其一是选择性风险:抑制剂常常同时抑制多个激酶,产生脱靶毒副作用;其二是机会:多靶点抑制(polypharmacology)有时恰恰是疗效来源。准确刻画"一个化合物对一整片激酶组的亲和力谱"(selectivity profile),因此成为激酶药物研发的关键数据需求——这正是 KIBA 类大规模亲和力矩阵的立身之本。原始论文明确指出,忽视 IC50、Ki、Kd 之间的数据异质性与数据库人工整理偏倚,会导致对药物多向药理效应的建模偏差,以及对计算方法的不切实际的评估。
从数据建模视角看,激酶-抑制剂系统有三个对 AI 友好的性质:其一,靶点家族内序列与结构同源性高,跨激酶的知识迁移有生物学基础;其二,结合位点以 ATP 竞争型抑制为主,构效关系(SAR)相对规律,适合序列/结构驱动的表征学习;其三,活性测定可高通量并行,同一化合物可在一组 panel 中系统测活,天然形成矩阵结构。KIBA 与 Davis 的互补也源于此:Davis 稠密而标签物理含义明确,KIBA 稀疏但化合物空间宽、标签信息量更大。
§2.3 临床与计算任务定义
| 任务 | 类型 | 输入 | 输出 | 临床/研发意义 |
|---|---|---|---|---|
| 药物-靶点亲和力预测(DTA) | 回归 | 化合物 SMILES + 激酶序列 | KIBA score(连续) | 虚拟筛选排序,减少湿实验成本 |
| 药物-靶点相互作用预测(DTI) | 二分类 | 化合物 SMILES + 激酶序列 | 是否结合(KIBA score ≥ 12.1 为阳性,社区约定) | 快速缩小候选空间 |
| 激酶选择性谱预测 | 多任务回归 | 化合物 SMILES | 对一组激酶的分数向量 | 预判脱靶毒性与治疗窗 |
| 冷启动药物重定位 | 回归/排序 | 新化合物(训练中未出现) | 靶点排序列表 | 旧药新用的候选发现 |
需要强调:DTA 预测属于临床前早期发现环节,其结果距离临床应用尚需药代动力学、安全性、有效性验证等多道关口;“亲和力强"不等于"成药”。
各任务与评估指标的对应关系如下:
| 任务 | 主指标 | 辅助指标 | 对应章节 |
|---|---|---|---|
| DTA 回归 | CI、MSE | rm²、Pearson、AUPR | §6.9 |
| DTI 二分类 | AUPR(类别不平衡) | Accuracy、F1 | §4.2、§6.9 |
| 选择性谱预测 | 逐靶点 CI 的均值与尾部 | 拓-k 召回 | §6.9 |
| 冷启动重定位 | Cold Split 下的 top-k 命中 | nDCG | §5.3、TDC 划分 |
§2.4 数据对象构成
KIBA 的"样本"不是患者,而是化合物-激酶对。下表刻画其数据对象的来源构成:
| 对象维度 | 来源 | 数量(原始发布) | 说明 |
|---|---|---|---|
| 生化测定研究 | 三个大规模激酶 panel 测定研究 | 重叠活性值经标准化比较 | 提供实验测定值主体 |
| 公共数据库活性 | ChEMBL | 挖掘 IC50/Ki/Kd 值 | 论文对其中人工整理偏倚做了定量分析 |
| 公共数据库活性 | STITCH | 挖掘药物-靶点关联 | 与 ChEMBL 交叉核对 |
| 化合物实体 | — | 52,498 个(基准版 2,111 个) | 以 SMILES 表示 |
| 激酶实体 | — | 467 个(基准版 229 个) | 以 UniProt 映射与氨基酸序列表示 |
| 整合标签 | KIBA 整合模型 | 246,088 个 KIBA scores | 非直接测量,是模型整合值 |
§2.5 临床价值定位
对药物研发流程而言,KIBA 类数据支撑的 DTA 模型处于"靶点确认 → 先导化合物发现"早期阶段:它把昂贵的体外测活实验前置为廉价计算筛选,将候选化合物空间从百万级压缩到百级。对转化医学而言,激酶选择性谱数据帮助预测脱靶效应谱,间接服务安全窗口评估。对计算方法学而言,KIBA 提供了标签连续、规模适中、划分标准化的基准,使"亲和力预测"从定性分类走向定量回归,推动了化学语言模型与蛋白语言模型的融合研究。但应清醒认识到:从计算预测到改变临床实践之间,仍隔着候选确认、结构优化、动物实验、临床试验的完整链条。
§2.6 金标准与参考标准描述
| 维度 | KIBA 基准实践 |
|---|---|
| 划分方式 | DeepDTA 官方 5 折交叉验证(folds 文件提供固定 train/test fold 索引);TDC 提供 Random / Cold Drug / Cold Protein 三种划分 |
| 标注方式 | 计算整合(matrix-based integration):以三源测定重叠对校准,将 IC50/Ki/Kd 融合为 KIBA score;非人工逐条标注 |
| 标注者 | Tang 等(FIMM/University of Helsinki)自动化方法生成;原始活性值来自各测定实验室与数据库人工整理(论文分析了其中的整理偏倚) |
| 参考性质 | 社区事实基准(community benchmark),非临床参考标准;标签为连续整合分数,二分类化时社区约定阈值 12.1 |
金标准定位的解读:与临床数据集"标注者=医生"的模式不同,KIBA 的"金标准"地位来自社区共识协议(DeepDTA folds)的广泛采纳,而非标注权威性。这意味着:跟随协议是可比性的来源;质疑协议(如冷启动公平性)时,应并列报告而非取代协议。
§3 数据集规格
§3.0 版本抉择矩阵
KIBA 存在三个统计口径不同的公开版本,选错版本是新手最常见的失败起点(见坑点 1)。按下表抉择:
| 你的需求 | 推荐版本 | 获取位置 | 大小 | 理由 |
|---|---|---|---|---|
| 与主流 SOTA 论文可比(DeepDTA/GraphDTA 协议) | DeepDTA 基准版(229/2,111/118,254) | DeepDTA GitHub data 目录 | 数 MB | 附官方 5 折划分文件,绝大多数论文在此版本报告 CI/MSE |
| 快速实验/一行加载/TDC 生态 | TDC 版(117,657 对/2,068 药物/229 蛋白) | tdc.multi_pred.DTI(name='KIBA') |
自动下载 | 内置 Random/Cold Drug/Cold Protein 划分与基准接口 |
| 活性整合方法学研究/复现原始论文 | 原始发布版(52,498/467/246,088) | Zenodo record 5105698 | 29.8 MB | 完整稀疏矩阵,含与 IC50/Ki/Kd 的对照信息 |
| 冷启动/泄漏控制严格的实验 | TDC 版 + Cold Drug/Cold Protein split | TDC get_split() |
自动下载 | 官方提供的按实体划分,避免随机划分泄漏 |
版本自查清单(每次实验启动时过一遍):
- 确认所用版本三元组(蛋白数/化合物数/相互作用数)并与计划对标的排行榜口径一致;
- 记录数据文件哈希(官方包 md5:ad2312340873cc7c775092aedbecf39a)或 TDC 版本号;
- 确认标签语义:KIBA score 越大越强,非 pKd,范围约 0.0-17.20;
- 确认划分文件来源:DeepDTA folds / TDC split / 自定划分(需存档);
- 检查是否需要回到原始包的 IC50/Ki/Kd 对照值做二次核验。
§3.1 模态详情
模态一:化合物-激酶亲和力标签(KIBA score)。 连续型标签,由 IC50、Ki、Kd 三类活性值经 KIBA 整合方法统一而来,数值越大亲和力越强。TDC 版本标签范围为 0.0-17.20。原始发布矩阵含 246,088 个分数;DeepDTA 基准版含 118,254 个。
模态二:化合物分子结构。 化合物以 canonical SMILES 字符串表示(DeepDTA 版文件 ligands_can.txt);可用于 RDKit 分子图构建、分子指纹、SMILES 语言模型输入。原始 Zenodo 包内另含与三种活性类型的对照信息(论文 Supporting Information 的 Excel 文件,69.64 MB)。
模态三:激酶蛋白序列。 激酶以氨基酸序列表示(DeepDTA 版文件 proteins.txt,JSON 键值对),配 UniProt accession 映射;可用于序列 CNN、蛋白语言模型输入。DeepDTA 版另附 Smith-Waterman 靶点相似度矩阵(target-target_similarities_WS.txt)与 PubChem 2D 化合物相似度矩阵(drug-drug_similarities_2D.txt),供核方法与特征工程使用。
三种模态通过化合物 ID 与激酶 ID 对齐,构成"双实体表示 + 成对标签"的典型 chemical genomics 数据结构。
各模态的 AI 消费要点:
- 标签(KIBA score):回归直接用;二分类需显式声明阈值 12.1;禁止与 pKd 标签混轴绘图或混合训练;
- SMILES:入模前先做 RDKit 规范化(坑点 7);分子图路线需原子/键特征编码;
- 激酶序列:长度差异大,CNN 路线需截断/padding(DeepDTA 取最大 1000 字符的常见做法),语言模型路线按 tokenizer 处理;
- 相似度矩阵(DeepDTA 版附加文件):核方法(KronRLS)与相似度特征(SimBoost)的输入,O(n²) 存储,随实体数增长需注意内存。
§3.2 按子集样本数统计
| 子集/口径 | 蛋白(激酶)数 | 化合物数 | 相互作用/标签数 | 备注 |
|---|---|---|---|---|
| 原始发布版(Tang 2014) | 467 | 52,498 | 246,088 KIBA scores | 极稀疏,多数化合物仅对少数激酶有观测值 |
| SimBoost/DeepDTA 过滤版 | 229 | 2,111 | 118,254 | 保留观测值 ≥10 的药物与靶点 |
| TDC v0.3.2 当前版 | 229 | 2,068 | 117,657 | 此前版本为 118,036 对/2,068 药物 |
| Davis(对照基准) | 442 | 68 | 30,056 | Kd 实测,pKd 标签 |
§3.3 数据格式
| 版本 | 文件 | 格式 | 内容 |
|---|---|---|---|
| 原始发布版 | kiba.zip | ZIP(Excel/CSV) | 化合物-激酶 KIBA score 矩阵及对照活性值 |
| DeepDTA 版 | ligands_can.txt | JSON | 化合物 ID → canonical SMILES |
| DeepDTA 版 | proteins.txt | JSON | 激酶 ID → 氨基酸序列 |
| DeepDTA 版 | Y | Python pickle | 亲和力矩阵(行=化合物,列=激酶,NaN=未测定) |
| DeepDTA 版 | folds/train_fold_setting1.txt、test_fold_setting1.txt | 文本 | 5 折划分索引(指向 Y 中非 NaN 位置) |
| DeepDTA 版 | drug-drug_similarities_2D.txt、target-target_similarities_WS.txt | 文本矩阵 | PubChem 2D 相似度 / Smith-Waterman 相似度 |
| TDC 版 | 自动缓存为本地 DataFrame | CSV(内部) | drug_id、drug、target_id、target、Y(KIBA score)五列 |
§3.4 存储大小
| 内容 | 大小 |
|---|---|
| Zenodo 官方原始包 kiba.zip | 29.8 MB(md5: ad2312340873cc7c775092aedbecf39a) |
| 论文 Supporting Information(Excel,ci400709d_si_002.xlsx) | 69.64 MB |
| DeepDTA 基准版数据目录(矩阵+序列+划分) | 约数 MB 量级 |
| TDC 本地缓存(首次自动下载后) | 数 MB 量级 |
§3.5 标注方式
KIBA 标签属于自动化计算整合标注(弱监督范畴),不是人工逐对标注:
- 收集:系统收集三个大规模生化测定研究的标准化活性值,并与 ChEMBL、STITCH 报告值交叉比对;
- 校准:利用三种活性类型(IC50/Ki/Kd)在重叠化合物-激酶对上的测定值,定量刻画各来源的系统性偏差;
- 整合:以基于模型的整合方法(矩阵分解思想)将三类异构活性投影到统一分数空间,生成 KIBA score;
- 发布:发布整合矩阵,同时保留与原始活性类型的对照以供校验。
这意味着:每条标签都携带上游测定噪声与整合模型假设的双重不确定性;同一化合物-激酶对的三种活性来源若不一致,KIBA score 是统计意义上的折中估计。DeepDTA 基准版使用的分数还经过了 SimBoost 流程的预处理,这是它与原始矩阵数值不可直接混用的根源之一。
§3.6 标注者资质与一致性
原始活性值来自三个测定研究的多家实验机构与 ChEMBL/STITCH 的数据库策展流程;KIBA score 由作者团队(Tang 等,激酶药理学与计算系统生物学背景)以自动化方法生成,无人工标注者间一致性指标(如 Kappa)——连续回归标签本来也不适用这类指标。论文通过重叠对上不同活性类型的一致性分析间接刻画了数据可靠性,并指出数据库人工整理存在可量化的偏倚。
§3.7 采集周期
数据由三个已发表的大规模测定研究(均为论文发表前数年内完成的生化 panel 实验)与 ChEMBL/STITCH 当时的数据库版本汇集而成,覆盖论文发表(2014-03)之前的活性报告;整合发布于 2014 年,官方包于 2021-06 归档至 Zenodo。数据为一次性整合发布,不存在持续滚动采集。
§3.8 地域与来源覆盖
测定数据来自国际多来源的体外实验与数据库(芬兰 FIMM 团队完成整合),无地理限制属性;数据对象为离体激酶蛋白与合成化合物,不涉及受试者地域分布。
§3.9 测定协议维度
| 维度 | 说明 |
|---|---|
| 测定类型 | 体外生化激酶活性测定(radioactive/fluorescence 等 panel 实验体系,活性以 IC50/Ki/Kd 报告) |
| 整合产出 | KIBA score(无量纲连续分数,0-17.20,越大越强) |
| 对照信息 | 原始包保留与 IC50/Ki/Kd 的逐对对照,可回溯整合输入 |
| 阈值约定 | DTI 二分类化时社区约定 KIBA score ≥ 12.1 为阳性(对应 Davis 的 pKd ≥ 7.0) |
§3.10 深度溯源链
三个大规模激酶生化测定研究(IC50/Ki/Kd 原始报告值)
│
├──> 标准化活性值(Tang et al. 2014, JCIM 54(3):735-743)
│
ChEMBL(药物-靶点活性数据库)──┐
├──> 交叉核对与人工整理偏倚定量分析
STITCH(化学-蛋白关联数据库)──┘
│
▼
KIBA 模型整合(矩阵分解,三型活性统一投影)
│
▼
246,088 个 KIBA scores(52,498 × 467 稀疏矩阵)
│
├──> Zenodo record 5105698(2021-06 归档,29.8 MB ZIP,官方原始版)
│
├──> SimBoost 2017 过滤(≥10 观测值)──> 229 × 2,111 × 118,254
│ │
│ └──> DeepDTA 2018 基准化(JSON/pickle + 官方 folds 划分)
│ │
│ └──> GraphDTA / MATT-DTI / 后续 SOTA 沿用
│
└──> TDC 收录(DTI(name='KIBA');v0.3.2:117,657 对 / 2,068 药物 / 229 蛋白)
§4 数据结构
§4.0 目录树
DeepDTA 基准版(社区事实标准格式,GraphDTA 等直接消费)解压后目录结构:
data/
├── kiba/ # KIBA 数据目录
│ ├── proteins.txt # JSON:激酶 ID → 氨基酸序列
│ ├── ligands_can.txt # JSON:化合物 ID → canonical SMILES
│ ├── Y # Python pickle:亲和力矩阵
│ │ # 行=化合物、列=激酶,NaN=未测定
│ ├── folds/
│ │ ├── train_fold_setting1.txt # 5 个训练 fold 的索引(列表的列表)
│ │ └── test_fold_setting1.txt # 固定测试 fold 索引
│ ├── drug-drug_similarities_2D.txt # PubChem 2D 相似度矩阵
│ └── target-target_similarities_WS.txt # Smith-Waterman 序列相似度矩阵
└── davis/ # (Davis 对照数据集,结构同上)
TDC 版无目录管理负担,一行加载后为 DataFrame:drug_id / drug(SMILES) / target_id / target(序列) / Y(KIBA score)。
原始发布版:kiba.zip 内为 Excel/CSV 活性矩阵(化合物-激酶 KIBA score 及与 IC50/Ki/Kd 的对照)。
§4.1 DAIMS 字段字典
以 TDC 长表格式为基准(等价于 DeepDTA 矩阵的非 NaN 展开):
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| drug_id | Text | 化合物标识符(版本相关) | CHEMBL1079 | 实体对齐、防泄漏分组 | 无 | 无 | — |
| drug | Text | 化合物 canonical SMILES | COc1cc2c… | 分子图/指纹/语言模型输入 | 跨库写法可能不一致 | 无 | 合法 SMILES |
| target_id | Text | 激酶标识符/UniProt 映射 | K04776 等 | 实体对齐、防泄漏分组 | UniProt 同码异构可能 | 无 | — |
| target | Text | 激酶氨基酸序列(一字符编码) | MSGGEKNIVF… | 序列 CNN/蛋白语言模型输入 | 长度不等 | 无 | 标准氨基酸字符 |
| Y(KIBA score) | Float | 整合亲和力标签,越大越强 | 11.5 | 回归标签;≥12.1 可二分类化 | 含上游测定+整合噪声 | NaN=未测定(非负样本) | 0.0-17.20 |
DeepDTA 矩阵格式(Y pickle)与上表的等价关系:Y[i, j] 即化合物 i 对激酶 j 的 KIBA score;folds 文件中的索引指向 Y 的扁平化非 NaN 位置(详见坑点 6)。
DeepDTA 文件 ↔ TDC 列名对照(两套生态切换时使用):
| DeepDTA 文件 | 内容 | TDC 对应 |
|---|---|---|
| ligands_can.txt(JSON 值) | canonical SMILES | drug 列 |
| ligands_can.txt(JSON 键) | 化合物 ID | drug_id 列 |
| proteins.txt(JSON 值) | 氨基酸序列 | target 列 |
| proteins.txt(JSON 键) | 激酶 ID | target_id 列 |
| Y 矩阵非 NaN 元素 | KIBA score | Y 列 |
| folds/*.txt | 划分索引 | get_split() 输出 |
§4.2 标签分布
- 标签类型:连续回归标签,理论范围 0.0-17.20(TDC 版统计)。
- 分布形态:DeepDTA 论文 Figure 1 显示 KIBA 标签呈多峰分布,密度集中于中间偏高分数段,低分(弱结合/无抑制)尾部较长——这与活性测定天然富集"可测活性化合物"的机制一致。
- 与 Davis 对比:Davis 的 pKd 标签范围约 5-10 且截断于测定下限,KIBA 分数范围更宽、无统一物理单位截断。
- 实践含义:训练时建议做标签直方图检查与分位数统计;若做二分类(阈值 12.1),需报告 AUPR 而非仅 Accuracy(类别不平衡)。
开箱即用的分布检查脚本(接 §6.3 的长表 df):
import numpy as np
s = df["kiba_score"]
print("count:", len(s))
print("min/max:", s.min(), s.max()) # 应落在 0.0-17.20 邻域
print("quantiles:", s.quantile([0.05, 0.25, 0.5, 0.75, 0.95]).to_dict())
print(">=12.1 positive rate:", round((s >= 12.1).mean(), 4))
print("unique drugs:", df["smiles_canonical"].nunique())
print("unique targets:", df["target_id"].nunique())
# 每个靶点的化合物覆盖(识别长尾靶点)
cov = df.groupby("target_id")["drug_id"].nunique()
print("targets with <10 compounds:", (cov < 10).sum(), "/", len(cov))
§4.3 关键统计
| 统计项 | 数值 | 来源口径 |
|---|---|---|
| 基准版相互作用数 | 118,254 | SimBoost/DeepDTA 过滤版 |
| 基准版蛋白/化合物 | 229 / 2,111 | 同上 |
| TDC 当前对数 | 117,657(2,068 药物) | TDC v0.3.2 |
| 原始矩阵规模 | 52,498 × 467 × 246,088 | Tang et al. 2014 |
| 标签范围 | 0.0-17.20 | TDC 版 |
| 二分类阈值 | 12.1 | Öztürk 2018 社区约定 |
| 引用次数 | 735+(Google Scholar,截至 2026-09) | Tang et al. 2014 |
§4.4 数据层级
KIBA 为双层实体 + 成对标签结构,无时序/影像类层级:
化合物(SMILES,2,111/52,498) ─┐
├──(化合物, 激酶)对 + KIBA score(118,254/246,088)
激酶(序列,229/467) ─┘
- 实体层:化合物与激酶各自有稳定 ID 与表示(结构/序列);
- 关系层:仅存在"有测定值"的对,缺失对(NaN)不代表实验阴性;
- 无第三层:不存在同一对的多时间点重复测量(重复测定值在整合时已折中处理)。
与典型医疗数据集的层级对照(帮助跨域读者定位):
| 数据集类型 | 层级结构 | KIBA 对应 |
|---|---|---|
| EHR(如 MIMIC-III) | 患者 → 住院 → ICU 入住 → 事件 | 无对应 |
| 影像 | 患者 → 检查 → 序列 → 切片 | 无对应 |
| 化学基因组(KIBA) | 实体(化合物/激酶) → 成对标签 | 化合物、激酶两层 + 标签层 |
| 组学 | 样本 → 特征矩阵 | 结构同 KIBA(实体 × 实体矩阵) |
§4.5 缺失值与信息性缺失编码
| 缺失情形 | 编码方式 | 是否信息性 | 处理建议 |
|---|---|---|---|
| 化合物-激酶对未测定 | 矩阵 NaN / 长表中不出现该行 | 是:缺失集中于"从未被同筛"的组合,非随机缺失 | 只在非 NaN 对上训练;勿将 NaN 当 0 分或负样本 |
| 整合分数折中后的不确定性 | 无显式编码 | 隐含 | 关键结论建议回到 IC50/Ki/Kd 对照值复核 |
| DeepDTA 版剔除的大分子 | Matrix 中对应列缺失 | 是(G2 因内存剔除) | GraphDTA 系复现时注意样本量微差 |
§5 划分与使用建议
§5.1 官方划分
DeepDTA 随代码发布 KIBA 官方划分:train_fold_setting1.txt 含 5 个训练折索引,test_fold_setting1.txt 为固定测试折索引,形成标准 5 折交叉验证协议——每折取 1 个训练折做验证、其余训练,测试折固定不变。索引指向亲和力矩阵 Y 中非 NaN 元素的扁平化位置。该协议是 §8.1 排行榜中 CI/MSE 数值的前提。
§5.2 社区惯例划分
- DeepDTA 5 折协议:绝大多数论文沿用(SimBoost/KronRLS 对比同协议)。
- TDC 划分:Random Split / Cold Drug Split / Cold Protein Split 三种,train:valid:test = 6:2:2 是近年文献常见配置(如 MixingDTA 采用五折交叉验证与 6:2:2 划分)。
- 自定划分:若自行构造,必须固定随机种子并公开划分文件,否则结果不可复现。
- 分层划分:按观测值数量对化合物/激酶分层抽样,可减少过滤版中"高观测实体垄断验证折"的效应;论文级报告仍以官方 folds 为准。
§5.3 泄漏风险 ⭐
- 实体级泄漏:Random Split 下同一化合物(或同一激酶)几乎必然同时出现在训练集与测试集,模型只需"记住分子"即可得分虚高;对泛化能力的真实度量必须用 Cold Drug / Cold Protein 划分(TDC 内置)。
- 重复分子泄漏:同一化合物可能存在写法不同的等价 SMILES,直接按字符串去重会漏检;应用 RDKit 规范化(canonicalize + InChI)后去重(见坑点 7)。
- 相似对泄漏:高同源激酶(同家族)分属 train/test 时,随机划分的测试已近似"见过";报告 cold-target 结果是更诚实的做法。
- 划分文件索引误用:folds 索引只覆盖非 NaN 位置,误将其用于全矩阵会引入 NaN 标签崩溃(见坑点 6)。
§5.4 交叉验证建议
- 与 SOTA 对比:严格使用 DeepDTA folds 文件,5 折报告均值 ± 标准差,指标 CI + MSE(+ rm²/AUPR)。
- 方法学研究:在 5 折之外补做 Cold Drug / Cold Protein 两组,展示泛化下限。
- 超参搜索:仅在训练折内再嵌套划分,测试折只碰一次。
§5.5 外部验证建议
推荐以 Davis(pKd,68 配体)作为天然外部队做跨数据集评估;进阶可用 BindingDB 激酶子集按时间切分做时序外推;跨版本(TDC 117,657 对 vs DeepDTA 118,254 对)比较时必须在方法节显式声明版本与过滤口径。
§5.6 数据使用反模式
| 反模式 | 后果 | 正确做法 |
|---|---|---|
| 把 NaN 当 0 分或负样本训练 | 注入大量假阴性,排序颠倒 | 只在非 NaN 对上训练 |
| 跨版本混用标签(Zenodo 版分数 + DeepDTA 版划分) | 划分索引与矩阵错位 | 一套版本从头用到尾 |
| 用字符串 SMILES 判重与分组 | 等价分子跨集泄漏 | RDKit 规范化 + InChIKey 主键(坑点 7) |
| 只报 Random Split 结果 | 高估泛化、审稿质疑 | Random + Cold Drug + Cold Protein 三件套 |
| 复现 SOTA 时自造划分 | 与所有已发表数字不可比 | 使用官方 folds(§5.1) |
| 阈值二分类后只报 Accuracy | 类别不平衡下指标虚高 | 主报 AUPR(§6.9) |
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
KIBA 体积小(官方包 29.8 MB,基准版仅数 MB),无需 GPU 集群即可在 Colab/Kaggle 免费档完成加载与轻量建模;训练深度模型时单张消费级 GPU(≥8 GB)即可(§6.8)。
| 环境 | 准备工作 | 适用内容 |
|---|---|---|
| Colab 免费档 | pip install PyTDC rdkit-pypi torch |
§6.1 加载、§4.2 分布检查、CPU 轻量模型 |
| Colab Pro/Kaggle GPU | 同上 + 选择 T4/P100 运行时 | §6.4 DataLoader、DeepDTA 级 CNN |
| 本地 conda 环境 | 独立环境装 rdkit + torch + PyTDC | 全部流程 + SOTA 复现(坑点 8 的 TF 1.x 另建旧环境) |
§6.1 快速上手
以下代码用 TDC 一行加载 KIBA 并完成标准划分。目录预期:无——TDC 自动下载到 ~/.tdc/ 缓存目录,无需手动拼接 data_root;这是最小可用子集(全部 117,657 对),CPU 即可运行。
# pip install PyTDC pandas scikit-learn
from tdc.multi_pred import DTI
# 加载 TDC 版 KIBA(自动下载缓存;长表格式,5 列)
data = DTI(name='KIBA')
df = data.get_data() # drug_id, drug, target_id, target, Y
print(df.shape) # 约 (117657, 5);2,068 药物 × 229 蛋白
print(df['Y'].describe()) # KIBA score 范围 0.0-17.20,越大越强
# 官方划分:Random / Cold Drug / Cold Protein
split = data.get_split(method='random') # 或 'cold_drug' / 'cold_protein'
train, valid, test = split['train'], split['valid'], split['test']
# 二分类化(社区约定阈值 12.1,Öztürk 2018)
for part in (train, valid, test):
part['label'] = (part['Y'] >= 12.1).astype(int)
若要复现 DeepDTA 协议的 SOTA 数字,改用 DeepDTA 版文件(§6.2 第二种方式)与官方 folds(§6.3)。
§6.2 数据获取
| 方式 | 步骤 | 大小 | 适用 |
|---|---|---|---|
| TDC(推荐日常用) | pip install PyTDC 后按 §6.1 加载 |
自动下载(数 MB) | 快速实验 |
| Zenodo 官方原始版 | 访问 Zenodo record 5105698 下载 kiba.zip | 29.8 MB | 方法学研究 |
| DeepDTA GitHub 基准版 | 克隆 hkmztrk/DeepDTA,取 data/kiba 目录 | 数 MB | SOTA 复现 |
# 方式二:官方原始包(校验 md5 与官方一致:ad2312340873cc7c775092aedbecf39a)
wget https://zenodo.org/records/5105698/files/kiba.zip -O kiba.zip
md5sum kiba.zip # 应为 ad2312340873cc7c775092aedbecf39a
unzip kiba.zip -d kiba_raw/
# 方式三:DeepDTA 基准版(ligands_can.txt / proteins.txt / Y / folds)
git clone https://github.com/hkmztrk/DeepDTA.git
# 数据位于 DeepDTA/data/kiba/
两种获取方式均无需注册、无需申请,开放下载。
§6.3 预处理全流程
预期目录结构(DeepDTA 版):data_root/kiba/{ligands_can.txt, proteins.txt, Y, folds/},data_root 即下面代码的 DATA_ROOT;最小可用子集为 ligands_can.txt + proteins.txt + Y 三件套(划分可后补)。流程:pickle 矩阵展开 → SMILES 规范化去重 → 长表构造 → 5 折索引解析。
import json, pickle
import numpy as np
import pandas as pd
from rdkit import Chem
DATA_ROOT = "data/kiba" # DeepDTA 版目录;代码块与目录树的 kiba/ 对应
# 1) 读取实体表示
with open(f"{DATA_ROOT}/ligands_can.txt") as f:
ligands = json.load(f) # {drug_id: canonical SMILES}
with open(f"{DATA_ROOT}/proteins.txt") as f:
proteins = json.load(f) # {target_id: amino acid sequence}
with open(f"{DATA_ROOT}/Y", "rb") as f:
Y = pickle.load(f) # ndarray: (n_drugs, n_targets),NaN=未测定
# 2) 稀疏矩阵 → 长表(只保留实测对)
rows = [(i, j) for i in range(Y.shape[0]) for j in range(Y.shape[1])
if not np.isnan(Y[i, j])]
df = pd.DataFrame({
"drug_id": [list(ligands)[i] for i, j in rows],
"target_id": [list(proteins)[j] for i, j in rows],
"kiba_score":[Y[i, j] for i, j in rows],
})
# 3) SMILES 规范化(消除等价写法导致的重复/泄漏,见坑点 7)
def canon(smi):
m = Chem.MolFromSmiles(smi)
return Chem.MolToSmiles(m) if m else None
df["smiles_canonical"] = df["drug_id"].map(ligands).map(canon)
df = df.dropna(subset=["smiles_canonical"])
# 4) 解析官方 5 折划分(索引指向 Y 的非 NaN 位置,顺序与第 2 步一致)
with open(f"{DATA_ROOT}/folds/test_fold_setting1.txt") as f:
test_idx = np.array(json.load(f)).ravel()
with open(f"{DATA_ROOT}/folds/train_fold_setting1.txt") as f:
train_folds = json.load(f) # 5 个训练折索引列表
# 5) 标签检查:分布分位数 + 阳性率(阈值 12.1)
print(df["kiba_score"].quantile([0.05, 0.25, 0.5, 0.75, 0.95]))
print("positive rate@12.1:", (df["kiba_score"] >= 12.1).mean())
要点:长表行序必须与 folds 索引的展开顺序一致(第 2 步的双重循环顺序即矩阵扁平化顺序);若打乱行序,需改为携带 (i, j) 坐标再按坐标对齐划分。
§6.4 PyTorch DataLoader 完整代码
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
from rdkit import Chem
from rdkit.Chem import rdMolDescriptors
# --- 药物侧:Morgan 指纹(1024 位,半径 2);蛋白侧:字符级编码 ---
ATOM_SMILES_VOCAB = {c: i + 1 for i, c in enumerate(
"ACDEFGHIKLMNPQRSTVWY")} # 蛋白 20 标准氨基酸
def smiles_to_fp(smi: str, n_bits: int = 1024) -> np.ndarray:
mol = Chem.MolFromSmiles(smi)
fp = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol, radius=2,
nBits=n_bits)
return np.array(fp, dtype=np.float32)
def seq_encode(seq: str, max_len: int = 1000) -> np.ndarray:
arr = np.zeros(max_len, dtype=np.float32)
for t, ch in enumerate(seq[:max_len]):
arr[t] = ATOM_SMILES_VOCAB.get(ch, 0)
return arr
class KIBADataset(Dataset):
"""输入:预处理得到的长表 DataFrame(含 smiles_canonical, target, kiba_score)"""
def __init__(self, df: pd.DataFrame):
self.drugs = [smiles_to_fp(s) for s in df["smiles_canonical"]]
self.targets = [seq_encode(s) for s in df["target"]]
self.labels = df["kiba_score"].to_numpy(dtype=np.float32)
def __len__(self):
return len(self.labels)
def __getitem__(self, idx):
return (torch.from_numpy(self.drugs[idx]),
torch.from_numpy(self.targets[idx]),
torch.tensor(self.labels[idx]))
def make_loaders(train, valid, test, batch_size=256, seed=42):
g = torch.Generator().manual_seed(seed)
common = dict(batch_size=batch_size, num_workers=2,
pin_memory=torch.cuda.is_available())
return (DataLoader(KIBADataset(train), shuffle=True, generator=g, **common),
DataLoader(KIBADataset(valid), **common),
DataLoader(KIBADataset(test), **common))
# 用法(接 §6.1 的 split):
# train_loader, valid_loader, test_loader = make_loaders(train, valid, test)
更进阶的分子图输入可参考 GraphDTA 的 create_data.py 流程(RDKit 分子图 + PyTorch Geometric 序列化),其消费的正是本节同一批 DeepDTA 版文件。
§6.5 坑点清单(8 个)
⚠️ 坑点 1:三个统计口径混为一谈(分类:评估误用)
问题:KIBA 在文献中至少有 246,088(原始版)、118,254(SimBoost/DeepDTA 过滤版)、117,657(TDC v0.3.2)三个"样本数",激酶数有 467 与 229 两种、化合物数有 52,498/2,111/2,068 三种。拿 TDC 加载的数据去对 DeepDTA 协议的排行榜数字,样本空间根本不同,结果不可比。
症状:复现论文时对不上数据条数;自报 MSE 明显低于排行榜却说不清原因;审稿人质疑"你用的是哪个 KIBA"。
解决:
- 简单方法:在实验记录与论文方法节固定写明三元组(蛋白数/化合物数/相互作用数)与数据来源 URL。
- 进阶方法:SOTA 对比统一用 DeepDTA 版 + 官方 folds;快速实验用 TDC 版时只与 TDC 榜单比较,两者结果并列报告、不做跨口径排名。
- SOTA 方法:代码里固化数据指纹(md5 或 sha256),训练脚本启动时校验,防止仓库更新导致口径漂移。
参考:Tang et al. 2014(原始口径);3DProtDTA, RSC Adv. 2023(过滤口径);TDC DTI 文档(117,657 对口径,https://tdcommons.ai/multi_pred_tasks/dti)。
⚠️ 坑点 2:把 KIBA score 当作 pKd 或物理单位解读(分类:标签理解)
问题:KIBA score 是矩阵整合模型输出的统一分数,不是 Kd/Ki/IC50 的任何一种,也没有 nM 意义;它与 Davis 数据集的 pKd 标签数值分布与含义都不同,直接互相换算或比较都是错的。
症状:把 KIBA 12.1 解读成"约 0.8 nM 亲和力";把在 KIBA 上训练的模型直接迁移到 Davis 标签空间,发现系统性偏移;论文里把两种标签的 MSE 摆在同一张表比较。
解决:
- 简单方法:在文档与图表轴标签中始终写"KIBA score"而非"affinity (nM)“;Davis 用"pKd”。
- 进阶方法:需要物理单位时,回到原始包中该对化合物的 IC50/Ki/Kd 对照值(Zenodo 版保留),不要用 KIBA score 反推。
- SOTA 方法:多数据集联合训练时按数据集设置独立输出头或标签归一化,禁止跨标签空间共享回归目标。
参考:Tang et al. 2014(KIBA score 定义);MixingDTA, Bioinformatics 2025(明确说明 KIBA score 派生自 IC50/Ki/Kd、范围 0.0-17.20)。
⚠️ 坑点 3:活性方向弄反(IC50 越小越强 vs KIBA 越大越强)(分类:标签理解)
问题:IC50/Ki/Kd 是浓度型指标,数值越小结合越强;KIBA score 与 pKd 是"越大越强"。从原始活性表整理自定义标签或做阈值化时方向搞反,模型学到的排序完全颠倒。
症状:虚拟筛选 top-N 全是弱结合物;"positive rate@阈值"高得离谱或接近 0;预测-真实散点图呈负相关。
解决:
- 简单方法:数据加载后立即断言方向——检查已知强结合对(如代表性高活性对)分数应处于高分位。
- 进阶方法:统一在管线入口转换为"越大越强"的规范标签(KIBA/pKd 直接用,浓度型先取负对数),全流程只消费规范标签。
- SOTA 方法:在 CI(concordance index)评估外增加已知药物-靶点对的 sanity check 列表(如验证集 top 阳性对的实验活性回查)。
参考:Tang et al. 2014;DeepDTA(pKd = -log10(Kd/1e9) 约定,Öztürk et al. 2018)。
⚠️ 坑点 4:随机划分的实体级泄漏高估泛化(分类:数据泄漏)
问题:Random Split 下同一化合物或同一激酶同时出现在训练与测试集;KIBA 化合物多而靶点少(229 个),靶点级泄漏尤其普遍。模型记忆实体而非学习结构-活性关系,CI 虚高,冷启动场景(新药/新靶点)性能断崖。
症状:Random Split CI 0.88+ 而 Cold Protein CI 掉到 0.6-0.7 区间;对训练集外的新分子打分几乎无区分度。
解决:
- 简单方法:主表报告 Random Split,附加 Cold Drug / Cold Protein 两组结果(TDC 内置,一行切换)。
- 进阶方法:按化合物 InChI 键与激酶 UniProt 双维度做 group split,保证任何实体不跨集;再按激酶家族分层抽样稳定各折家族分布。
- SOTA 方法:报告三划分的完整矩阵,并做"训练集实体相似度 vs 测试性能"的泄漏敏感性分析(将随机划分作为上界、冷启动作为下界)。
参考:TDC DTI 文档(Random/Cold Drug/Cold Protein 官方划分);DeepDTA 协议讨论(Öztürk et al. 2018)。
⚠️ 坑点 5:TDC 版本更新导致数字漂移、实验不可复现(分类:工程陷阱)
问题:TDC 对 KIBA 做过统计口径更新:118,036 对 → v0.3.2 的 117,657 对(药物数同为 2,068)。同一份代码在不同时间运行拿到不同数据集,跨月份复现对不上。
症状:三个月前的实验今天重跑样本数变了;协作者跑出的指标与你差 0.005 级别且排查不到原因。
解决:
- 简单方法:实验记录固化
tdc.__version__与加载后的df.shape;论文报告两者。- 进阶方法:首次加载后将缓存(~/.tdc/)拷入项目 data 目录并改为本地读取,锁定数据文件版本。
- SOTA 方法:CI 中缓存数据文件并校验哈希,任何口径变更显式触发构建失败。
参考:TDC DTI 文档版本说明(“0.3.2 Update: 117,657 DTI pairs, 2,068 drugs, 229 proteins. Before: 118,036 DTI pairs”,https://tdcommons.ai/multi_pred_tasks/dti)。
⚠️ 坑点 6:DeepDTA folds 索引与 pickle 矩阵的解析陷阱(分类:工程陷阱)
问题:Y 是 pickle 二进制矩阵(NaN 为缺失),folds 里的索引指向"Y 中非 NaN 元素的扁平化位置",而不是任意行号;展开顺序(先列后行还是先行后列)与加载代码必须严格一致,否则训练/测试划分错位、标签错配。
症状:训练时 loss 出现 NaN;测试折样本数与论文不符;CI 明显偏低且各折方差巨大。
解决:
- 简单方法:按 §6.3 的双重循环顺序(先行后列)展开长表,保证与 folds 展开顺序一致,并断言
len(train_folds[0]) + len(test_idx) == 非NaN总数。- 进阶方法:不用裸索引,改为解析出 (i, j) 坐标后再对齐;加载后打印 Y 的 shape 与非 NaN 计数(基准版应为 118,254)双重校验。
- SOTA 方法:把 (i, j) 坐标持久化为 parquet 副产物,后续流程只消费坐标表,彻底隔离 pickle 与索引的顺序耦合。
参考:DeepDTA data 目录说明(https://github.com/ytabatabaee/DL4H 与 GraphDTA create_data.py,https://deepwiki.com/thinng/GraphDTA/3.1-preparing-datasets)。
⚠️ 坑点 7:SMILES 写法不一致引发重复分子与跨集泄漏(分类:预处理陷阱)
问题:DeepDTA 版提供 canonical SMILES,但不同版本/来源的等价分子可能写法不同(盐型、互变异构、芳香性写法差异);字符串级去重与划分会把同一分子算作两个实体,既膨胀样本又造成 train/test 泄漏。
症状:同一分子在 drug_id 不同键下出现两次;Cold Drug 划分后测试集仍出现训练集分子的等价写法;分子相似度矩阵对角线外出现 1.0。
解决:
- 简单方法:用 RDKit 全部重规范化一次:
Chem.MolToSmiles(Chem.MolFromSmiles(s))后再按字符串去重。- 进阶方法:以标准 InChI(或 InChIKey)作为实体主键做去重与划分;保留原始 SMILES 列供溯源。
- SOTA 方法:对盐型与立体异构定规则(如统一去盐、保留立体),并统计规范化前后实体数差异写入数据卡片。
参考:3DProtDTA(使用 isomorphic SMILES 表示,RSC Adv. 2023);RDKit 标准化实践(https://www.rdkit.org)。
⚠️ 坑点 8:DeepDTA 原版复现环境过时(TensorFlow 1.x)(分类:工程陷阱)
问题:DeepDTA 官方代码基于 Python 3.4+ / Keras 2.x / TensorFlow 1.x,其 API 在新版 TensorFlow 中已移除;直接用现代环境跑会大面积报错,社区教程需显式切换
%tensorflow_version 1.x。
症状:import阶段即报tf.contrib不存在等错误;Colab 默认 TF 2.x 下无法运行官方脚本。
解决:
- 简单方法:建独立环境
conda create -n deepdta python=3.6后安装tensorflow==1.15与对应版本 Keras,仅用于复现基准。- 进阶方法:只复用其数据文件(Y/folds),模型用 PyTorch 重实现(GraphDTA 即此路线),彻底脱离 TF 1.x 生态。
- SOTA 方法:以 TDC 或 DeepPurpose 等维护中的框架调用同类模型,引用原论文数字时标注"由维护版实现复测"。
参考:DeepDTA 依赖说明(https://github.com/hkmztrk/DeepDTA 及 DL4H 复现仓库,https://github.com/ytabatabaee/DL4H)。
§6.6 数据增强(安全 ✅ / 危险 ❌)
| 策略 | 判定 | 说明 |
|---|---|---|
| 非等价 SMILES 随机化(同分子等价重写) | ✅ 安全 | 不改变分子,提升 SMILES 模型鲁棒性 |
| 蛋白序列随机 mask/片段截断 | ✅ 安全(适度) | 语言模型风格扰动;保留催化位点区域完整性 |
| SMILES 加噪(随机插入/删除字符) | ❌ 危险 | 极易产生无效或语义漂移分子 |
| 对标签做插值/mixup | ❌ 危险 | 亲和力标签有物理含义,跨分子插值破坏构效关系 |
| 用 NaN 位置当负样本增广 | ❌ 危险 | 未测定 ≠ 不结合(见坑点 3 与 §4.5) |
安全增广的最小实现(SMILES 等价随机化):
from rdkit import Chem
from rdkit.Chem import rdMolDescriptors
def randomize_smiles(smi: str, seed: int = None) -> str:
"""同分子等价 SMILES 重写:不改变化学语义,仅改变书写顺序"""
mol = Chem.MolFromSmiles(smi)
if mol is None:
return smi
if seed is not None:
import random
random.seed(seed)
atom_rank = list(range(mol.GetNumAtoms()))
random.shuffle(atom_rank)
mol = Chem.RenumberAtoms(mol, atom_rank)
return Chem.MolToSmiles(mol, canonical=False)
# 训练时动态应用:dataset 中对 self.drugs[i] 的 SMILES 先 randomize 再编码
§6.7 模型推荐表
| 模型 | 药物编码器 | 蛋白编码器 | 适合场景 | 复杂度 | KIBA CI 参考 |
|---|---|---|---|---|---|
| KronRLS | PubChem 2D 相似度核 | Smith-Waterman 相似度核 | 快速基线、可解释 | 中(O(n²) 核矩阵) | 0.782 |
| SimBoost | 相似度特征 + MF 潜因子 | 同左 | 特征工程基线 | 中高 | 0.836-0.847 |
| DeepDTA (CNN-CNN) | SMILES 1D CNN | 序列 1D CNN | 经典基线、复现容易 | 低 | 0.863 |
| GraphDTA (GIN/GAT) | 分子图 GNN | 序列 1D CNN | 分子结构感知 | 中 | 0.883 |
| MATT-DTI | Transformer/双塔注意力 | 同左 | 高精度追求 | 中高 | 0.889 |
| DeepGLSTM | 图 + LSTM 混合 | 同左 | 高精度追求 | 中高 | 0.890 |
| 蛋白语言模型混合(ESM 系嵌入 + 分子编码器) | 分子图/指纹 | 预训练嵌入 | 面向冷启动泛化 | 高 | 视实现而定 |
CI 参考值均取自 §8.1 排行榜(DeepDTA 5 折协议);SimBoost 一行中 0.847 为其原文 10 次重复协议、0.836 为 DeepDTA 协议复测,已在 §8.1 说明。
§6.8 硬件需求表
| 任务 | CPU | GPU | 内存 | 磁盘 |
|---|---|---|---|---|
| 数据加载/统计/基线(KronRLS 除外) | 4 核即可 | 不需要 | 8 GB | <1 GB |
| DeepDTA 级 CNN 训练 | 8 核 | 1 × 8 GB(如 GTX 1080/3060) | 16 GB | <5 GB |
| 图神经网络/Transformer 级 | 8 核 | 1 × 11-24 GB | 32 GB | <10 GB |
| 大规模超参搜索 | — | 1 × 24 GB 或多卡 | 64 GB | <50 GB |
§6.9 评估指标代码
DeepDTA 协议标准指标:CI(concordance index)与 MSE,常配 rm² 与 AUPR(阈值 12.1)。
import numpy as np
from scipy.stats import pearsonr
from sklearn.metrics import mean_squared_error, precision_recall_curve, auc
def concordance_index(y_true, y_pred):
"""DeepDTA 协议 CI:预测序与真实序一致的成对比例"""
order = np.argsort(y_true)
y_true, y_pred = y_true[order], y_pred[order]
n, num, tied = len(y_true), 0.0, 0.0
for i in range(n - 1):
mask = y_true[i + 1:] > y_true[i]
num += (y_pred[i + 1:][mask] > y_pred[i]).sum()
tied += (y_pred[i + 1:][mask] == y_pred[i]).sum()
return (num + 0.5 * tied) / (n * (n - 1) / 2) if n > 1 else 0.0
def evaluate(y_true, y_pred, threshold=12.1):
mse = mean_squared_error(y_true, y_pred)
ci = concordance_index(y_true, y_pred)
pr, rc, _ = precision_recall_curve((y_true >= threshold).astype(int), y_pred)
aupr = auc(rc, pr)
return {"MSE": mse, "CI": ci, "AUPR": aupr,
"Pearson": pearsonr(y_true, y_pred)[0]}
注意:CI 实现的性能敏感,规模大时建议用 numba/向量化;跨论文比较时确认对方 CI 定义一致。
指标选择指南:
| 场景 | 首选指标 | 理由 |
|---|---|---|
| 与 SOTA 论文对比 | CI + MSE | DeepDTA 协议的标准双指标 |
| 关键浓度段排序质量 | CI(分段计算) | CI 对排序敏感,MSE 易被均值回归掩盖 |
| 二分类应用(筛选决策) | AUPR | 阈值 12.1 下类别不平衡,AUPR 最稳 |
| 跨数据集外推 | Pearson + 分段 MSE | 检查预测-真实斜率漂移 |
§6.10 MLOps 笔记
- 数据指纹入库:把 §6.2 的 md5 与三元组(229/2,111/118,254 或 117,657)写进实验跟踪系统的 run 标签,实验卡片自动携带口径。
- 划分即资产:folds 与 cold split 的解析结果(坐标表)作为版本化 artifact 存储,禁止在训练脚本内即时生成后丢弃。
- 指标监控:除 MSE/CI 外,跟踪"高分组(score≥12.1)的召回"以防模型向均值回归。
- 可复现性:固定 torch/rdkit/PyTDC 版本号;PyTDC 升级前先比对 df.shape 是否漂移(坑点 5)。
- 模型卡片:标注"标签为整合分数,非物理测量",避免下游误用(坑点 2)。
§7 质量评估与局限性
§7.1 已知偏倚与局限
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 靶点覆盖偏倚 | 229 个基准激酶偏集中于研究充分、与肿瘤相关的激酶家族 | 高 | 解释结论限定于覆盖家族;结合 BindingDB 扩谱 |
| 化学空间偏倚 | 化合物源自三个 panel 筛选库与 ChEMBL 整理,结构多样性受限 | 高 | 补充生成模型/多样库评估 |
| 整合标签噪声 | KIBA score 为模型整合值,携带上游测定与整合假设的双重不确定性 | 中 | 敏感性分析;对关键结论回查 IC50/Ki/Kd 对照 |
| 数据库策展偏倚 | 原始论文定量指出 ChEMBL/STITCH 人工整理偏倚会影响建模 | 中 | 使用原始包对照列交叉校验 |
| 稀疏-稠密口径偏倚 | 过滤(≥10 观测)让"易测对"占比更高,基准版高估数据代表性 | 中 | 同时报告原始版上的实验或至少声明口径 |
| 实体级评估偏倚 | 随机划分泄漏使性能上界被当作常态(坑点 4) | 高 | 强制三划分报告 |
§7.2 标注质量评估
KIBA score 的"标注质量"由整合机制决定:三源测定重叠对提供一致性约束,标签在重叠区域可信度较高;单源覆盖区域退化为该源测定值本身的质量。原始论文的价值之一是把"不同活性类型在重叠对上的一致性"定量呈现,并识别出数据库报告值中的可疑交互对(可用于发现数据库错误)。对使用者:无人工标注一致性系数可引用,质量论证应回到论文的重叠一致性分析。
从回归标签工程的角度,还有三点值得注意:
- 截断缺失:活性测定只对"可测浓度区间内"的化合物给出数值,极弱/极强的结合可能根本不产生记录,标签分布隐含选择效应;
- 折中值语义:同一对的三源值不一致时,KIBA score 是统计折中,不等于任何一次真实测定——做单点结论(如"该化合物对某激酶亲和力为 X")时应回到原始对照值;
- 版本演化噪声:SimBoost 预处理、DeepDTA 沿用、TDC 再整理,每一步都可能引入微小的数值口径变化,跨版本对同一对的分数可能有差异。
§7.3 泛化性分析
| 部署场景 | 失效风险 | 证据 |
|---|---|---|
| 全新化学骨架(Cold Drug) | 训练分布外,分数区分度显著下降 | TDC 提供该划分本身即承认风险;冷启动为公认难题 |
| 全新激酶家族(Cold Protein) | 同家族信号无法借力,性能下降最明显 | 靶点仅 229 个,家族覆盖本就有限 |
| 非 tumor 治疗领域 | 激酶谱与疾病谱错配 | 数据集按化合物-靶点组织,无疾病分层 |
| 直接临床决策 | 标签非物理单位、无药代/安全维度 | KIBA score 定义(Tang 2014) |
§7.4 伦理评估
KIBA 为离体生化测定数据,不涉及人类受试者、个人标识或临床记录,无知情同意与隐私问题。伦理注意点在于二次使用的定位:基于其预测结果做药物重定位与虚拟筛选时,仍须走标准实验验证与合规流程;预测不应替代专家判断。
针对"用 AI 预测结果指导湿实验排序"这一典型工作流,还应有两条边界意识:其一,模型给出的高分对是"假设"而非"事实",进入实验前应经结构-活性关系专家复核;其二,选择性预测若用于安全窗评估,只能作为辅助证据,脱靶风险的最终确认依赖实验谱测定与毒理研究。
§7.5 公平性
数据集对象为分子与蛋白,无人口学维度,传统意义上的患者公平性不适用。可讨论的"公平"是化学空间公平性:测定集中于历史上被充分研究的激酶与化学骨架,模型继承这种结构偏好,可能系统性忽视被低估的靶点家族——这是方法学层面的覆盖公平问题,而非人群公平问题。
§7.6 数据漂移
KIBA 为一次性冻结发布,自身无漂移;"漂移"发生在生态层面:TDC 统计口径更新(118,036→117,657 对)、DeepDTA 版对 G2 大分子的内存性剔除、Pahikkala 版与原始版的整理差异,都是"跨时间复现同一名称数据集"的漂移源。对策即坑点 1/5 的指纹与版本锁定。
§7.7 DAIMS 数据就绪度评估(24 项)
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 矩阵(宽)与长表(TDC)两种等价形态齐备 |
| 2 | 唯一标识 | ⚠️ | 化合物/激酶有 ID,但跨版本 ID 体系不同;等价 SMILES 需规范化后去重 |
| 3 | 特殊字符 | ✅ | SMILES/序列均为受限字符集,无特殊字符风险 |
| 4 | 重复行 | ⚠️ | 同一实体多写法可导致逻辑重复(坑点 7) |
| 5 | 缺失编码 | ✅ | NaN=未测定,编码清晰一致 |
| 6 | 标签标识 | ✅ | Y/KIBA score 语义明确(越大越强) |
| 7 | 罕见类分组 | ⚠️ | 低观测化合物/激酶占多数,官方过滤版直接移除(≥10 观测) |
| 8 | 偏倚评估 | ✅ | 原始论文含 ChEMBL/STITCH 策展偏倚定量分析 |
| 9 | 数据字典 | ⚠️ | TDC 五列自解释;DeepDTA 文件依赖社区文档说明 |
| 10 | 信息性缺失解释 | ✅ | NaN 语义与过滤口径均有据可查(§4.5) |
| 11 | 设备记录 | ❌ | 不适用/未提供:体外测定仪器与协议细节不在数据包内 |
| 12 | 共线性 | ✅ | 回归标签单一,无共线性问题;相似度矩阵为附加特征 |
| 13 | 编码映射 | ⚠️ | UniProt 映射存在但需跨库核对;无官方标准化脚本 |
| 14 | 时间戳处理 | ❌ | 无逐条测定时间戳(一次性整合发布) |
| 15 | 划分建议 | ✅ | DeepDTA 官方 folds + TDC 三划分,约定成熟 |
| 16 | 泄漏讨论 | ✅ | 冷启动划分官方支持;社区对泄漏讨论充分(§5.3) |
| 17 | 标签分布 | ✅ | DeepDTA 论文 Figure 1 公布分布;TDC 提供分布可视化工具 |
| 18 | 测量偏倚 | ⚠️ | 跨实验室测定偏差已被指出并整合,但未逐条标注来源质量 |
| 19 | 外部验证建议 | ✅ | Davis/BindingDB 外部队路径清晰(§5.5) |
| 20 | 版本记录 | ⚠️ | 三口径并存但官方无统一 CHANGELOG,依赖文档互证 |
| 21 | 预处理脚本 | ⚠️ | DeepDTA/GraphDTA 提供参考实现;无官方维护的标准化脚本 |
| 22 | 合规要求 | ⚠️ | 开放获取,但许可条款未明确声明(TDC 标注 Not Specified) |
| 23 | 多模态对齐 | ✅ | 化合物/激酶/标签通过 ID 对齐,结构简单不易错 |
| 24 | 去标识化 | ✅ | 无人类数据,天然无隐私风险 |
DAIMS 评分:15.5 / 24
评分解读:数据结构简单(双层实体+成对标签)、标签与缺失语义清晰、划分生态成熟,是化学信息学基准中的高就绪度样本;失分集中于"数据集治理"而非"数据本身"——许可未声明、跨版本口径漂移、缺乏官方维护的数据字典与预处理脚本、无测定时间戳与设备记录。这类失分对建模影响可控,但对可复现性与合规审计构成实质摩擦。
对你意味着什么:可直接将 KIBA 纳入训练管线(优先 TDC 版本锁定 + DeepDTA 版双轨);开工前先固化数据指纹与口径三元组(半小时内完成),可规避绝大多数复现纠纷;若用于对外发布的模型或产品,需在文档中显式声明许可状态与"标签为整合分数"的定位;不要期待从数据包中获得实验协议级元数据,方法学溯源需回读原始论文。
补充:DAIMS 失分项(#11 设备记录、#14 时间戳)源于数据集的一次性整合发布性质,对绝大多数建模工作流无实际影响;若你的场景依赖实验协议溯源(如监管申报材料),应直接引用三个上游测定研究的原始文献而非本数据包。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| Davis(442 蛋白 × 68 配体,Kd) | UC San Francisco(Davis et al. 2011) | DTA 回归(pKd) | DeepDTA CI 0.878 / MSE 0.261 | 与 KIBA 同协议可比 | 同一模型在 Davis 的 CI 通常高于 KIBA,反映其标签更干净、矩阵更稠密 |
| Metz(激酶 panel,Kd) | Metz et al. 2011 | DTA 回归 | SimBoost RMSE 0.166 | 与 KIBA 同为 SimBoost 三基准之一 | 跨 panel 外推可行,但规模小于 KIBA |
| TDC Cold Protein Split | TDC(标准划分) | DTA 回归 | 各模型 CI 显著低于 Random | 下降约 0.1-0.2 CI 量级 | 靶点级泛化是主要瓶颈 |
注:外部验证数值均取自对应论文报告协议(DeepDTA 5 折 CV 或 SimBoost 10 次重复),跨行不可直接比较。
§8 基准性能与生态
§8.1 排行榜
协议:DeepDTA 5 折交叉验证,KIBA 基准版(229/2,111/118,254),指标 CI(越高越好)与 MSE(越低越好)。
| 排名 | 模型 | 性能(CI / MSE) | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | SMFF-DTA | 0.894 / 0.151 | 2025 | 序列多特征融合 + 多注意力 | BMC Biology 2025. DOI 10.1186/s12915-025-02222-x | 未公开(截至 2026-09) |
| 2 | DeepGLSTM | 0.890 / 0.143 | 2022 | 分子图 + 双向 LSTM | Mukherjee et al., 2022(经 MFR-DTA 表格汇编,Oxford Academic) | 未公开(截至 2026-09) |
| 3 | MATT-DTI | 0.889 / 0.150 | 2021 | 双塔注意力 | Zeng et al., 2021(经 MFR-DTA 表格汇编,Oxford Academic) | 未公开(截至 2026-09) |
| 4 | MultiDTA | 0.890* / 0.156 | 2024 | 多尺度特征融合 | BMC Biology 2025 表格汇编. DOI 10.1186/s12915-025-02222-x | 未公开(截至 2026-09) |
| 5 | TF-DTA | 0.877* / 0.177 | 2023 | Transformer 特征融合 | BMC Biology 2025 表格汇编. DOI 10.1186/s12915-025-02222-x | 未公开(截至 2026-09) |
| 6 | GraphDTA (GIN) | 0.883 / 0.151 | 2021 | 分子图神经网络 | Nguyen et al., 2021, Bioinformatics(经 MFR-DTA 表) | https://github.com/thinng/GraphDTA |
| 7 | GANsDTA | 0.866 / 0.224 | 2019/2020 | GAN 辅助表征 | Zhao et al.(经 TSEDTA 表) | 未公开(截至 2026-09) |
| 8 | DeepDTA (CNN-CNN) | 0.863 / 0.194 | 2018 | 双 CNN 序列编码 | Öztürk et al., 2018, Bioinformatics. DOI 10.1093/bioinformatics/bty593 | https://github.com/hkmztrk/DeepDTA |
| 9 | SimBoost | 0.836 / 0.222 | 2017 | 相似度特征 + 梯度提升 | He et al., 2017, J Cheminform. DOI 10.1186/s13321-017-0209-z | https://github.com/hetong007/SimBoost |
| 10 | KronRLS | 0.782 / 0.411 | 2014/2015 | Kronecker 正则化最小二乘 | Pahikkala et al.(经 SMFF-DTA 表) | https://github.com/aatapa/RLScore |
* MultiDTA/TF-DTA 的 CI 值在不同论文汇编表中存在小幅出入(0.890/0.886 与 0.877/0.886),此处以 SMFF-DTA 汇编表为准,引用时请回查原论文。
⚠️ 数值不可直接比较的原因:各论文对"KIBA 版本"(118,254 vs TDC 117,657)、划分实现细节、CI 定义、随机种子与重复次数的处理并不统一;DeepDTA 早期论文的 SimBoost 数字(CI 0.836)与 SimBoost 原文(CI 0.847,10 次重复协议)也不一致。跨行比较需回查各原论文协议。
§8.2 SOTA 总结与选型建议
KIBA 上 SOTA 的 CI 已推进至 0.89 量级、MSE 约 0.14-0.15,但自 2021 年后提升趋缓,说明在随机划分协议下基准趋于饱和。选型建议:追求基线复现效率选 DeepDTA(代码轻量、协议清晰);追求分子结构感知与工程可维护性选 GraphDTA(PyTorch Geometric 生态);追求论文级精度选 DeepGLSTM/MATT-DTI 类模型,但需自行实现为主;追求泛化(冷启动)而非性能榜单时,应转向蛋白语言模型混合路线并用 TDC Cold Split 评估。
| 你所处的阶段 | 建议起点 | 理由 |
|---|---|---|
| 第一篇 DTA 论文/入门 | DeepDTA + 官方 folds | 协议清晰、社区对照最多 |
| 方法创新(分子表征) | GraphDTA 代码底座 | PyTorch Geometric,改图编码器方便 |
| 追榜冲性能 | DeepGLSTM/MATT-DTI 思路 | 0.89 量级 CI 的两条已知路径 |
| 关注冷启动/落地 | TDC 三划分 + 语言模型混合 | Random Split 榜单已饱和,泛化才是差距 |
§8.3 评测协议
| 要素 | 约定 |
|---|---|
| 数据版本 | DeepDTA 版(229/2,111/118,254)+ 官方 folds |
| 验证方式 | 5 折交叉验证,固定 test fold,报告均值 ± 标准差 |
| 主指标 | CI、MSE;辅以 rm²、AUPR |
| 二分类阈值 | KIBA score ≥ 12.1(对照 Davis pKd ≥ 7.0) |
| 报告规范 | 必须声明数据版本三元组与划分方式(坑点 1) |
复现检查清单:
- 数据文件/版本号已指纹化并写入实验记录;
- folds 或 TDC split 的解析产物已存档为 artifact;
- CI 实现与 DeepDTA 协议核对过定义(成对一致性);
- 结果以均值 ± 标准差报告,随机种子已固定并公开;
- 论文方法节写明:数据版本三元组 + 划分方式 + 阈值(如做二分类)。
§8.4 相关数据集
| 数据集 | 模态 | 规模 | 与 KIBA 关系 |
|---|---|---|---|
| Davis et al. 2011 | 激酶-Kd | 442 × 68 × 30,056 | 并列金标准基准,标签为物理 pKd |
| Metz et al. 2011 | 激酶-Kd | panel 测定 | SimBoost 第三基准 |
| BindingDB | 多靶点家族-亲和力 | TDC Kd 子集 52,284 对 | 更广谱的外部验证来源 |
| DrugTargetCommons | 社区整合活性 | 动态 | KIBA 方法学思想的后续工程化 |
| ChEMBL | 药物-靶点活性数据库 | 持续更新 | KIBA 的上游数据源之一 |
上表前三个(Davis/Metz/BindingDB 激酶子集)均可作为 KIBA 实验的外部验证集;选择时优先标签单位明确、有独立测定来源的数据集,避免使用同样经过 KIBA 整合流程的衍生数据,否则外部验证失效。
§8.5 关键论文 Top 6
- Tang J, Szwajda A, Shakyawar S, Xu T, Hintsanen P, Wennerberg K, Aittokallio T. Making Sense of Large-Scale Kinase Inhibitor Bioactivity Data Sets: A Comparative and Integrative Analysis. Journal of Chemical Information and Modeling, 2014, 54(3): 735-743. DOI 10.1021/ci400709d. —— 数据集原始论文:三源测定比较 + KIBA 整合方法 + 246,088 分数矩阵发布。
- He T, Heidemeyer M, Ban F, Cherkasov A, Ester M. SimBoost: a read-across approach for predicting drug-target binding affinities using gradient boosting machines. Journal of Cheminformatics, 2017, 9: 24. DOI 10.1186/s13321-017-0209-z. —— 建立 KIBA 过滤基准版(≥10 观测值),奠定 229/2,111/118,254 口径。
- Öztürk H, Özgür A, Ozkirimli E. DeepDTA: deep drug-target binding affinity prediction. Bioinformatics, 2018, 34(17): i821-i829. DOI 10.1093/bioinformatics/bty593. —— 双 CNN 序列建模 + 官方 5 折划分,确立社区基准协议(CI 0.863/MSE 0.194)。
- Nguyen T, Le H, Quinn TP, Nguyen T, Le TD, Venkatesh S. GraphDTA: predicting drug-target binding affinity with graph neural networks. Bioinformatics, 2021, 37(8): 1140-1147. —— 分子图 GNN 路线代表(GIN 版 CI 0.883/MSE 0.151)。
- Huang K, Fu T, Gao W, Zhao Y, Roohani Y, Leskovec J, Coley CW, Xiao C, Zitnik M. Therapeutics Data Commons: Machine learning datasets and tasks for drug discovery and development. NeurIPS Datasets and Benchmarks, 2021. —— 将 KIBA 标准化收录,提供三划分与统一接口。
- Pahikkala S, Airola A, Pietilä S, Shakyawar S, Szwajda A, Tang J, Aittokallio T. Toward more realistic drug-target interaction predictions. Expert Opinion on Drug Discovery, 2015. —— KronRLS 基线与 KIBA 的早期整理版本(与原始版略有差异)。
§8.6 社区活跃度
- 原始论文引用 735+(Google Scholar,截至 2026-09),2014-2026 年持续被 DTA 新模型引用,是活跃超过十年的基准。
- TDC 生态持续维护(KIBA 为 DTI 任务标准数据集之一),DeepPurpose 等库开箱集成。
- SimBoost 论文引用约 466+(ResearchGate 统计口径,截至 2026-09 检索)。
- DeepDTA 论文为 Bioinformatics 高被引方法文之一,其 KIBA 基准数字(CI 0.863/MSE 0.194)是后续几乎所有 DTA 论文的对比锚点。
- 官方 GitHub(TangSoftwareLab/KiBA)2022-03 建立后以指引为主,更新频率低;社区实现主要沉淀在 DeepDTA/GraphDTA/TDC 各仓库。
§8.7 生态快照
| 资源 | 类型 | 链接 | Star 截至 2026-09 | 推荐理由 |
|---|---|---|---|---|
| TangSoftwareLab/KiBA | 官方仓库 | https://github.com/TangSoftwareLab/KiBA | — | 官方下载指引与论文引用入口 |
| hkmztrk/DeepDTA | 基准代码+数据 | https://github.com/hkmztrk/DeepDTA | — | 官方 folds 与基准数据文件 |
| thinng/GraphDTA | 模型代码 | https://github.com/thinng/GraphDTA | — | PyTorch Geometric 版参考实现 |
| hetong007/SimBoost | 模型代码(R) | https://github.com/hetong007/SimBoost | — | 过滤口径的出处实现 |
| Therapeutics Data Commons | 数据平台 | https://tdcommons.ai/multi_pred_tasks/dti | — | 一行加载 + 三划分 + 榜单 |
| Zenodo record 5105698 | 官方数据归档 | https://zenodo.org/records/5105698 | — | 原始完整矩阵与 md5 校验 |
§9 相关资源与引用
§9.1 官方资源
- 官方数据下载(Zenodo):https://zenodo.org/records/5105698 (kiba.zip,29.8 MB,含 md5)
- 官方研究组软件页:https://www2.helsinki.fi/en/researchgroups/network-pharmacology-for-precision-medicine/software#section-106744
- 官方 GitHub:https://github.com/TangSoftwareLab/KiBA
- TDC 数据页:https://tdcommons.ai/multi_pred_tasks/dti
- 原始论文(ACS):https://pubs.acs.org/doi/10.1021/ci400709d (Supporting Information 含 69.64 MB Excel 数据文件)
- DeepDTA 仓库(基准数据与划分):https://github.com/hkmztrk/DeepDTA
§9.2 教程与社区实现
- DeepDTA 复现教程(数据解析与 folds 机制讲解):https://github.com/ytabatabaee/DL4H
- GraphDTA 数据准备文档(DeepDTA 格式 → PyTorch Geometric):https://github.com/thinng/GraphDTA
- TDC DTI 任务总览(加载/划分/二值化/图转换):https://tdcommons.ai/multi_pred_tasks/dti
- SimBoost 官方实现(R,过滤口径出处):https://github.com/hetong007/SimBoost
- KronRLS 参考实现(RLScore,核方法基线):https://github.com/aatapa/RLScore
§9.3 BibTeX 完整引用
@article{tang2014kiba,
title = {Making Sense of Large-Scale Kinase Inhibitor Bioactivity Data Sets:
A Comparative and Integrative Analysis},
author = {Tang, Jing and Szwajda, Agnieszka and Shakyawar, Sushil and Xu, Tao
and Hintsanen, Petteri and Wennerberg, Krister and Aittokallio, Tero},
journal = {Journal of Chemical Information and Modeling},
volume = {54},
number = {3},
pages = {735--743},
year = {2014},
doi = {10.1021/ci400709d},
pmid = {24521231}
}
@article{he2017simboost,
title = {SimBoost: a read-across approach for predicting drug--target binding
affinities using gradient boosting machines},
author = {He, Tong and Heidemeyer, Marten and Ban, Fuqiang and Cherkasov, Artem
and Ester, Martin},
journal = {Journal of Cheminformatics},
volume = {9},
pages = {24},
year = {2017},
doi = {10.1186/s13321-017-0209-z}
}
@article{ozturk2018deepdta,
title = {DeepDTA: deep drug--target binding affinity prediction},
author = {{\"O}zt{\"u}rk, Hakime and {\"O}zg{\"u}r, Arzucan and Ozkirimli, Elif},
journal = {Bioinformatics},
volume = {34},
number = {17},
pages = {i821--i829},
year = {2018},
doi = {10.1093/bioinformatics/bty593}
}
§9.4 引用指南
- 使用数据本身:引用 Tang et al. 2014(数据 DOI 10.5281/zenodo.5105697)。
- 使用 229/2,111/118,254 基准口径:补引 He et al. 2017 与 Öztürk et al. 2018。
- 使用 TDC 加载与划分:补引 Huang et al. 2021(NeurIPS Datasets and Benchmarks)。
- 本页面若被参考:请注明"千方病案医数集 KIBA 条目(截至 2026-09)"并以上述原始论文为准。
- 引用完整性自查:数据引 Tang 2014、协议引 He 2017 与 Öztürk 2018、接口引 Huang 2021,三者缺一均可能被认为口径不清;数字报告中同时给出数据版本三元组。
§10 AI 使用声明卡
§10.1 AI 模型列表
| 用途 | 模型 | 使用方 |
|---|---|---|
| 资料检索与事实核验 | 联网检索增强大模型 | 千方病案编辑部写作 agent |
| 文本组织与初稿 | 大语言模型(写作 agent) | 千方病案编辑部写作 agent |
| 代码示例生成 | 大语言模型(写作 agent) | 千方病案编辑部写作 agent |
§10.2 AI 参与范围
AI 参与:文献检索、事实汇总、章节初稿撰写、代码示例起草、表格整理。人工参与:事实交叉核验(数字与来源逐条比对检索结果)、医学与数据工程审核、结构合规检查(check_md.py + 编辑部规范)、最终发布决定。所有规模数字、基准数字与版本信息均以检索获得的公开来源为依据,未采信无来源数字。
AI 局限性声明:写作 agent 无法访问数据包内部逐行核验文件内容,对 DeepDTA 版文件结构的描述来自多个社区实现(DL4H、GraphDTA 文档)的交叉印证而非直接解包检查;个别论文汇编表中的基准数字存在跨论文小幅出入,已在 §8.1 显式标注;使用者若发现事实性错误,欢迎通过千方病案医数集反馈渠道指正。
§10.3 输入来源列表
- Tang J, et al. Making Sense of Large-Scale Kinase Inhibitor Bioactivity Data Sets. J Chem Inf Model, 2014, 54(3): 735-743. DOI 10.1021/ci400709d.(ACS 官方页)
- Tang J, et al. 同上(PubMed:PMID 24521231,https://pubmed.ncbi.nlm.nih.gov/24521231/)
- Tang J, et al. 同上(ResearchGate 全文页,含作者单位:FIMM, University of Helsinki)
- Zenodo record 5105698(kiba.zip 29.8 MB,md5 ad2312340873cc7c775092aedbecf39a,DOI 10.5281/zenodo.5105697)
- TangSoftwareLab/KiBA(官方 GitHub 仓库,2022-03-29 初始提交)
- University of Helsinki 研究门户 Jing Tang 数据集列表(KiBA 下载链接组)
- Helsinki 网络药理学组软件页(官方下载指引)
- Therapeutics Data Commons — DTI 任务页(KIBA:117,657 对/2,068 药物/229 蛋白,v0.3.2;此前 118,036 对;Random/Cold Drug/Cold Protein 划分;许可 Not Specified)
- He T, et al. SimBoost. J Cheminform, 2017, 9: 24. DOI 10.1186/s13321-017-0209-z(KIBA 结果表:RMSE 0.204/CI 0.847)
- Öztürk H, et al. DeepDTA. Bioinformatics, 2018, 34(17): i821-i829. DOI 10.1093/bioinformatics/bty593(PubMed 30423097;rm² 0.673/AUPR 0.788)
- 3DProtDTA. RSC Advances, 2023. DOI 10.1039/d3ra00281k(KIBA 初始 467/52,498 → 过滤 229/2,111/118,254;SimBoost 预处理说明)
- MixingDTA. Bioinformatics, 2025, 41(Supplement_1): i105.(TDC KIBA 117,657 对/2,068 药物;标签范围 0.0-17.20;阈值 12.1/7.0 约定)
- SMFF-DTA. BMC Biology, 2025. DOI 10.1186/s12915-025-02222-x(KronRLS/SimBoost/DeepDTA/GANsDTA/TF-DTA/MultiDTA/LLMDTA/SMFF-DTA 对比表)
- MFR-DTA 性能表(Oxford Academic view-large,GraphDTA GIN 0.883/0.151、MATT-DTI 0.889/0.150、DeepGLSTM 0.890/0.143)
- TSEDTA. Bioinformatics, 2026, 42(5): btag298(KIBA 基线汇总表)
- PADME. arXiv:1807.09741(原始 KIBA 52,498 化合物的稀疏性说明;Pahikkala 版与原始版差异;阈值 6 vs 10 过滤讨论)
- ytabatabaee/DL4H(DeepDTA 复现仓库:data/kiba 文件构成、TF 1.x 依赖、Davis/KIBA 统计)
- GraphDTA deepwiki 数据准备页(ligands_can.txt/proteins.txt/Y/folds 解析流程、pKd 公式)
- Google Scholar 引用页(Tang et al. 2014 Cited by 735,截至 2026-09)
- ResearchGate SimBoost 条目(引用 466 口径)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| 三口径规模数字(246,088/118,254/117,657) | 千方病案医学编辑部 | 与论文摘要、Zenodo、TDC 官方页逐条比对 | ✅ 已通过/已验证 |
| 基准数字(CI/MSE/rm²/AUPR) | 千方病案医学编辑部 | 与 SMFF-DTA、MFR-DTA、SimBoost 原文表格比对 | ✅ 已通过/已验证 |
| 版本时间轴与获取流程 | 千方病案医学编辑部 | Zenodo/GitHub/Helsinki 官方页核对 | ✅ 已通过/已验证 |
| 坑点 1-8 与预处理代码 | 千方病案数据工程审核 | 文档+社区实现双重来源核对 | ✅ 已通过/已验证 |
| §2 医学背景与 ICD-11/SNOMED 映射 | 千方病案医学编辑部 | 编码范围与术语核对 | ✅ 已通过/已验证 |
| 免责声明与合规表述 | 千方病案医学编辑部 | 与编辑部固定模板逐字核对 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
全部章节初稿由写作 agent 生成;§1.0 速览、§2 医学背景、§6 坑点与代码、§7 DAIMS 评估、§8 排行榜为"AI 起草 + 人工逐项核验数字与来源"模式;§0 免责声明、INFOBOX 字段顺序、DAIMS 检查项结构为编辑部固定模板套用。
§10.6 最后人工审核
最后人工审核日期:2026-09-05(与 §0 审核日期一致)
页面状态:published(全部内容已完成审核并发布)
