TrialBench — 多模态临床试验预测 AI-Ready 数据集 AI-Ready Wikipedia | 千方医数集

23数据集 · 8预测任务 · 50万+试验 · 5模态融合 · ClinicalTrials.gov · CC BY-NC-ND

来源 HKUST(GZ) · Nanjing University · Harvard · Stanford · IQVIA url: https://huyjj.github.io/Trialbench/发布时间: 2026-08-14最后更新: 2026-08-14 阅读 55

信息速览

数据集名称TrialBench — 多模态临床试验预测 AI-Ready 数据集 AI-Ready Wikipedia | 千方医数集
数据类型480,000+ 试验记录,23 个子数据集,8 预测任务,5 模态特征融合,CC BY-NC-ND 许可
规模48 万+临床试验
接入方式HKUST(GZ) · Nanjing University · Harvard · Stanford · IQVIA url: https://huyjj.github.io/Trialbench/
AI 就绪度

数据集封面

INFOBOX

数据集名称 TrialBench
英文全称 TrialBench: Multi-Modal AI-Ready Datasets for Clinical Trial Prediction
别名 / 简称 TrialBench、TrialBench-23、临床试验预测基准
疾病分类 全疾病领域覆盖。核心映射:ICD-10 全编码体系 → 临床试验适应症;不限于单一疾病
SNOMED CT 721241000 Clinical trial (procedure) / 89586000 Adverse reaction (disorder) / 308445008 Patient enrollment (procedure)
数据模态 多模态(结构化表格 + SMILES 分子图 + 临床文本 + MeSH 术语 + ICD-10 编码)
AI 任务类型 回归预测、二分类、多分类、有序分类、文本生成(8 大任务 23 子数据集)
样本总数 480,000+ 临床试验记录(ClinicalTrials.gov,截至 2024-02-16);23 个子数据集总计约 500,000+ 条记录(含跨任务重叠)
数据大小 ~200 MB(全部 23 个子数据集 CSV)
数据格式 CSV(表格格式)/ Python pickle(MeSH 嵌入)/ R Data(R 包格式)
许可证 CC BY-NC-ND 4.0(Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International)
访问级别 开放(Zenodo + 项目网站直接下载,无需注册)
DUO 标签 NPUNCU(非商业非营利使用)
语言 英文
首发日期 2024-07-01(arXiv 预印本 v1)
最后更新 2025-09-26(Nature Scientific Data 正式发表)
发布机构 HKUST(GZ) · Nanjing University · Zhejiang University · Harvard · Stanford · IQVIA
官方主页 https://huyjj.github.io/Trialbench/
下载地址 https://zenodo.org/records/14975339
DOI 10.1038/s41597-025-05680-8
引用次数 30+(Google Scholar,截至 2026-08)
AI 就绪度评分 ⭐⭐⭐⭐(4/5)— 23 个 AI 就绪子数据集 + 官方 80/20 划分 + Python/R 工具包 + 基线模型;扣分项:ChatGPT 辅助标注部分任务、部分任务基线 F1 极低
页面状态 published

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

维度 声明
专业性(Expertise) TrialBench 由香港科技大学(广州)AI Thrust、南京大学软件新技术国家重点实验室、浙江大学、斯坦福大学、哈佛医学院、UIUC、IQVIA 等全球顶尖机构联合开发。通讯作者符天凡教授(南京大学)和陈晋泰教授(HKUST(GZ))在 AI + 医疗交叉领域有深厚积累。合作者包括 Marinka Zitnik(Harvard,图神经网络专家)、Jimeng Sun(UIUC/Stanford,临床 NLP 专家)、Kexin Huang(Harvard,Therapeutics Data Commons 创建者)。
经验性(Experience) 团队核心成员此前创建了 Therapeutics Data Commons(TDC),收录 66+ AI 治疗学任务,被广泛使用。TrialBench 是 TDC 在临床试验预测方向的系统化扩展,从 480,000+ 条 ClinicalTrials.gov 记录中精心策展 23 个子数据集。论文发表于 Nature Scientific Data(IF=9.8),经同行评审。
权威性(Authoritativeness) TrialBench 被 Google DeepMind 选为 TxGemma(2B/9B/27B 治疗学大模型)的官方微调示例数据集,用于不良事件预测——Google Developers Blog 和 TxGemma 技术论文均公开展示。AUTOCT(LLM Agent 自动临床试验预测)也将 TrialBench 作为基准评估平台。Nature Scientific Data 是 Nature Portfolio 旗下数据期刊。
可信性(Trustworthiness) 数据来源完全公开可追溯:ClinicalTrials.gov(美国 NIH 维护的公开注册库)、DrugBank(公开药物数据库)、TrialTrove(Informa 商业数据库,释放子集已公开)。数据策展流程透明:XML 解析 → 特征选择 → ICD-10 编码转换 → 时间点过滤防泄露 → 80/20 分层划分。基线模型代码、Python/R 工具包、评估指标均在 GitHub 和 Zenodo 公开。
透明性(Transparency) 论文详细描述了每个任务的背景、定义、输入特征、输出目标、评估指标和基线性能。数据策展过程中使用 ChatGPT(GPT-4)进行失败原因分类和药物剂量提取的情况明确披露。每个子数据集的试验数量、药物数量、疾病数量、干预研究占比等统计信息均在 Table 3 中公开。特征选择遵循"AI 在真实场景中的应用时机"原则——确保不包含试验完成后的信息。
审核机制 [千方病案医学编辑部]交叉审核:临床试验预测方法论、多模态特征工程准确性、基线性能数据一致性、ICD-10/MeSH 编码映射正确性

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

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

数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。TrialBench 数据集采用 CC BY-NC-ND 4.0 许可证,禁止商业用途和衍生作品创建。ClinicalTrials.gov 原始数据为公共领域(U.S. Government Work),但 TrialBench 的策展和标注成果受 CC BY-NC-ND 4.0 约束。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。

§1 数据集概览

§1.0 📌 30 秒速览

TrialBench 是由香港科技大学(广州)、南京大学、哈佛大学、斯坦福大学和 IQVIA 等机构于 2025 年 9 月发布于 Nature Scientific Data 的临床试验预测数据集平台,从 ClinicalTrials.gov 提取 480,000+ 条临床试验记录,精心策展为 23 个 AI 就绪子数据集,覆盖试验持续时间预测、患者脱落、严重不良事件、死亡率、审批结果、失败原因、入组标准设计和药物剂量 8 大预测任务。

它的独特价值在于首次将临床试验预测中分散的多个挑战整合为统一的多模态 AI 基准——每个试验同时提供药物 SMILES 分子图、临床文本、MeSH 术语、ICD-10 编码和结构化特征五种模态输入,并配套完整的基线模型(MPNN + Bio-BERT + GRAM + DANet)和 Python/R 工具包。Google DeepMind 已将其用于 TxGemma 治疗学大模型的不良事件预测微调。

你可以用它来:训练一个多模态临床试验结果预测模型、研究如何融合分子图和临床文本进行药物审批预测、或者评估 LLM 在临床试验任务上的 zero-shot/few-shot 能力。

§1.1 摘要

TrialBench 是由香港科技大学(广州)AI Thrust 的陈晋泰团队和南京大学的符天凡团队联合哈佛大学、斯坦福大学、IQVIA 等机构共同开发的临床试验预测数据集平台。该平台从 ClinicalTrials.gov(美国国立卫生研究院维护的临床试验注册库)中提取了截至 2024 年 2 月 16 日注册的 480,000+ 条临床试验记录,并整合 DrugBank(药物分子结构与药学属性)和 TrialTrove(试验审批信息作为金标准)的数据,精心策展为 23 个 AI 就绪子数据集。

TrialBench 定义了 8 个 AI 可解决的临床试验预测任务:(1) 试验持续时间预测(回归)、(2) 患者脱落率/事件预测(回归 + 分类)、(3) 严重不良事件预测(二分类)、(4) 全因死亡率事件预测(二分类)、(5) 试验审批结果预测(二分类)、(6) 试验失败原因识别(4 分类)、(7) 入组标准设计(文本生成)、(8) 药物剂量确定(有序分类)。每个任务按临床试验 Phase(I/II/III/IV)进一步细分为子数据集。

TrialBench 的核心创新在于多模态特征工程:每个试验同时提供药物 SMILES 分子图(由 MPNN 处理)、临床试验文本如入组标准(由 Bio-BERT 处理)、MeSH 医学主题词(由 node2vec 预训练嵌入处理)、ICD-10 疾病编码(由 GRAM 图注意力模型处理)和分类/数值特征(由 DANet 处理)五种模态输入。平台提供完整的基线模型、评估指标和 Python/R 工具包,实现"开箱即用"。在 14 个二分类任务中,多模态基线模型在 11 个任务上达到 F1 > 0.7。

§1.2 为什么重要

TrialBench 在临床试验 AI 预测领域具有里程碑意义,原因如下:

  1. 首个系统化多模态临床试验预测基准:此前,临床试验预测的 AI 研究分散在不同任务和数据源中——试验结果预测用 HEMR、不良事件预测用 SIDER、入组标准设计用 NLP 方法——缺乏统一的基准平台。TrialBench 首次将 8 个核心挑战整合在一个框架下,使用统一的多模态输入和评估体系,使不同方法的横向比较成为可能。

  2. 填补 AI 与临床之间的鸿沟:临床试验预测需要深厚的医学专业知识来定义问题和选择变量,这长期阻碍了 AI 研究者的参与。TrialBench 的核心贡献是"任务定义"——将复杂的临床挑战转化为 8 个明确定义的 AI 任务,并标注每个任务在真实世界中的应用时机(确保不使用试验完成后的信息),使数据科学家能直接切入这一领域。

  3. 工业界采用与验证:Google DeepMind 在 2025 年 3 月发布的 TxGemma 治疗学大模型中,将 TrialBench 作为官方微调示例——使用 TrialBench 的严重不良事件预测数据展示如何将通用 LLM 适配到临床试验任务。AUTOCT(LLM Agent 自动临床试验预测框架)也将 TrialBench 作为核心基准。这标志着 TrialBench 已获得顶级 AI 实验室认可。

  4. 推动临床试验设计智能化:临床试验平均耗时 7–11 年,成本可达 20 亿美元,成功率低于 15%。TrialBench 的 8 个任务直接对应临床试验设计中的关键决策点——如果能准确预测试验持续时间、患者脱落率、不良事件风险和审批概率,药企可以更好地规划资源、控制风险和加速药物上市。

  5. 持续维护承诺:团队承诺至少在未来 5 年内维护和扩展 TrialBench,计划新增更多任务、数据集和排行榜,使其成为临床试验 AI 预测领域的长期参考平台。

§1.3 对比表

数据集 试验数 任务数 模态 标注方式 核心差异化
TrialBench 480,000+ 8 任务 / 23 子集 5 模态 ClinicalTrials.gov + ChatGPT 首个系统化多模态临床试验预测基准
HEMR ~6,500 1(结果预测) 结构化 人工标注 早期试验结果预测基准
ClinicalTrials.gov (原始) 480,000+ XML 自报告 原始注册数据,未转化为 AI 任务
TDC (Therapeutics Data Commons) 变异大 66+ 多模态 多源策展 覆盖全治疗学流程(靶点→临床)
TrialTrove (Informa) ~120,000+ 多个 结构化 商业策展 商业数据库,非开放
DrugBank ~14,000 多个 SMILES + 结构化 专家策展 药物信息数据库,非试验级
SIDER ~143,000 多个 SMILES + 文本 ADR 提取 药物不良反应,非试验预测
DeepTrial ~40,000 1(结果预测) 结构化 自动提取 试验结果预测,单模态

§1.4 时间轴

时间 事件
2024-07-01 arXiv 预印本首发(arXiv:2407.00631v1)
2024-09-05 Nature Scientific Data 投稿
2025-03 Google DeepMind 发布 TxGemma,使用 TrialBench 作为微调示例
2025-07-04 Nature Scientific Data 录用
2025-09-26 Nature Scientific Data 正式发表(DOI: 10.1038/s41597-025-05680-8)
2025-10 南京大学官方报道;AUTOCT 基准评估发布
2026-02 Python/R 工具包在 PyPI 和 CRAN 上线

§1.5 典型用例

  1. 多模态试验结果预测:融合药物分子图、疾病编码、入组标准文本和试验元数据,预测临床试验能否通过特定 Phase
  2. 不良事件早期预警:在试验设计阶段(入组患者前)预测严重不良事件和死亡率风险,指导安全监控策略
  3. 入组标准自动生成:给定目标疾病、试验 Phase 和药物信息,自动生成合理的纳入/排除标准文本
  4. 试验持续时间估算:预测试验从启动到完成的时间,辅助药企资源规划、预算编制和市场上市策略
  5. LLM 微调基准:使用 TrialBench 任务微调通用 LLM(如 TxGemma、BioGPT),评估 LLM 在临床试验推理任务上的能力
  6. 药物剂量推荐:基于药物分子结构和目标疾病,预测合理的 Phase II 剂量类别

§2 医学背景

§2.1 临床试验分期与预测任务映射

临床试验是药物从实验室到患者床旁的关键桥梁,分为四个阶段:

Phase 主要目标 患者规模 典型耗时 成本(百万美元) 成功候选数 TrialBench 对应任务
Phase I 安全性 + 剂量 20–80 人(健康志愿者) 1–2 年 ~225 5–10 候选 持续时间、脱落、SAE、死亡率、审批、失败原因
Phase II 安全性 + 初步疗效 100–300 人(患者) 1–2 年 ~225 2–5 候选 持续时间、脱落、SAE、死亡率、审批、失败原因、剂量
Phase III 安全性 + 疗效验证 300–3,000 人(患者) 2–3 年 ~250 1–2 候选 持续时间、脱落、SAE、死亡率、审批、失败原因
Phase IV 上市后安全性监测 不定 不定 变异大 脱落、审批

全流程平均耗时 7–11 年,总成本可达 20 亿美元,整体成功率低于 15%(Sun et al., Acta Pharm Sin B, 2022)。

§2.2 ICD-10 / SNOMED CT 映射

TrialBench 覆盖全疾病领域,疾病编码从 ClinicalTrials.gov 的自由文本转换为 ICD-10 标准编码,并通过 GRAM 模型利用疾病本体层级结构进行表征。

数据集标签 ICD-10 ICD-11 SNOMED CT SNOMED CT 术语
Clinical trial (procedure) Z00.6 QC1F.0 721241000 Clinical trial (procedure)
Adverse reaction T78.40 EL1 89586000 Adverse reaction (disorder)
Patient enrollment Z00.6 QC1F.0 308445008 Patient enrollment (procedure)
Drug dosage 439810001 Drug dosage (observable entity)
Trial failure 723504008 Did not attend (finding)
Mortality 419620001 Death (event)

注:TrialBench 是试验级数据(非患者级),ICD-10 编码用于表示试验的适应症疾病,而非个体患者诊断。

§2.3 临床试验预测任务的医学意义

任务 临床意义 监管关联
试验持续时间预测 延迟是试验失败的主要原因之一;准确预估持续时间有助于资源规划和上市策略 FDA Breakthrough Therapy 可加速审批
患者脱落预测 ~30% 参与者最终脱落,导致统计功效不足、成本增加和结果偏倚 FDA 要求脱落率报告
严重不良事件预测 SAE 可导致试验提前终止、修改方案和重大经济损失 FDA ICH-GCP 强制 SAE 报告
死亡率预测 高死亡率引发伦理审查和安全评估 FDA DSMB 监测
试验审批预测 预测试验能否通过特定 Phase,辅助药企优先级排序 FDA/NMPA 审批决策
失败原因识别 识别失败根因(入组不足/安全性/疗效不足),指导后续试验设计改进 FDA Complete Response Letter
入组标准设计 AI 自动生成合理入排标准,加速招募并确保统计功效 FDA 21 CFR Part 50
药物剂量确定 Phase II 的核心目标——确定平衡疗效与安全性的最优剂量 FDA Dose-Finding Guidance

§2.4 多模态特征工程原理

TrialBench 将每个临床试验转化为五重模态输入:

模态 来源 处理模型 嵌入维度 示例
药物分子图(SMILES) DrugBank + ClinicalTrials.gov MPNN(消息传递神经网络) 100 bortezomib: CC©CNC(=O)C(CC1=CC=CC=C1)…
临床文本 试验标题/摘要/入组标准 Bio-BERT 100 “Phase 2 Study of VELCADE and CAELYX…”
MeSH 术语 NLM 医学主题词表 node2vec 预训练嵌入 100 D009303 (Ovarian Neoplasms)
ICD-10 编码 疾病编码转换 GRAM(图注意力模型) 100 C56 (Malignant neoplasm of ovary)
结构化特征 分类/数值特征 DANet(3 层基础块) 50 Phase=II, Sponevent-blocked=Millennium, Type=Interventional

所有模态嵌入拼接后送入 MLP 进行预测。分类任务用 sigmoid/softmax + 交叉熵,回归任务用 MSE,生成任务用 ChatGPT API。

§3 数据集规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小 理由
快速复现论文 / 资源有限 Python 包单任务下载 ~50 MB pip install trialbench,按任务按 Phase 加载单个子数据集
全量研究 / 离线分析 Zenodo 完整包 ~200 MB 23 个子数据集 CSV + MeSH 嵌入 + 文档
R 语言环境 R 包 ~200 MB install.packages("trialbench"),含 R 函数加载数据
原始数据探索 ClinicalTrials.gov 原始 XML >50 GB 480,000+ 条 XML 记录,需自行解析

§3.1 数据来源

TrialBench 整合三个公开/半公开数据源:

数据源 类型 规模 角色 许可证
ClinicalTrials.gov 临床试验注册库 480,000+ 条记录 主数据源:试验特征、Phase、入组标准、结果 公共领域(U.S. Government Work)
DrugBank 药物数据库 ~14,000 药物 药物分子结构(SMILES)+ 药学属性 学术免费 / 非商业
TrialTrove (Informa) 商业试验数据库 ~120,000+ 试验 试验审批信息金标准(释放子集) 非商业使用

ClinicalTrials.gov 由美国国家医学图书馆(NLM)维护,覆盖美国所有 50 个州和 221 个国家的试验。数据截至 2024 年 2 月 16 日。

§3.2 样本统计

23 个子数据集的核心统计(按任务汇总):

任务 试验数 (I/II/III/IV) 药物数 医疗器械数 其他干预数 疾病数 干预研究占比
试验持续时间预测 143.8K (13.5K/13.4K/9.2K/7.1K) 40.8K 21.1K 83.6K 44.6K 77.3%
患者脱落预测 62.1K (4.2K/15.8K/11.5K/6.9K) 29.7K 10.9K 20.7K 21.9K 94.5%
严重不良事件预测 31.3K (2.0K/8.1K/4.8K/2.9K) 15.9K 6.6K 12.4K 15.9K 96.0%
死亡率预测 31.3K (2.0K/8.1K/4.8K/2.9K) 15.9K 6.6K 12.4K 15.9K 96.0%
试验审批预测 43.2K (4.5K/12.5K/9.2K/4.5K) 24.1K 3.3K 12.6K 19.5K 93.0%
试验失败原因识别 41.4K (4.3K/8.8K/4.2K/3.5K) 17.7K 6.6K 16.9K 21.9K 86.8%
入组标准设计 136.4K (19.4K/14.2K/10.8K/10.6K) 48.5K 16.2K 75.0K 36.6K 84.9%
药物剂量确定 12.8K (0/12.8K/0/0) 11.0K 0.1K 1.2K 7.3K 100%

注:药物剂量确定任务仅包含 Phase II 试验和小分子药物。严重不良事件和死亡率预测共享相同的基础试验池。

§3.3 数据格式

文件类型 格式 说明 大小
子数据集 CSV 表格格式,每行为一条试验记录,列为特征 + 标签 5–30 MB / 子数据集
MeSH 嵌入 pickle node2vec 预训练的 MeSH 术语嵌入向量(100 维) ~50 MB
R 数据 .rda R 包原生格式 ~200 MB(全量)
Python 包 PyPI pip install trialbench 按需下载 ~5 MB(代码)

§3.4 数据策展流程

ClinicalTrials.gov (480,000+ XML records)
    │
    ├── XML 解析 → 提取 NCT ID / 疾病 / 药物 / Phase / 入组标准 / 结果等
    │
    ├── 特征工程
    │   ├── 疾病文本 → ICD-10 编码(ICD-10 编码系统)
    │   ├── MeSH 术语 → node2vec 预训练嵌入
    │   ├── 药物名称 → SMILES 分子结构(DrugBank 匹配)
    │   ├── 文本特征 → Bio-BERT 嵌入
    │   └── 离散值 → 分类特征;连续值 → 数值特征
    │
    ├── 时间点过滤(防止数据泄露)
    │   └── 仅保留试验开始前可用的特征,移除试验完成后的信息
    │
    ├── 任务特定筛选
    │   ├── 持续时间:仅保留有起止日期的试验;移除 >10 年异常值
    │   ├── 脱落/SAE/死亡率:仅保留有结果报告的试验
    │   ├── 审批:ClinicalTrials.gov + TrialTrove 双源
    │   ├── 失败原因:ChatGPT 分类 4 类(成功/入组不足/安全/疗效不足)
    │   ├── 入组标准:仅纳入标记为"已完成"的试验
    │   └── 剂量:仅 Phase II + 小分子药物;ChatGPT 提取剂量值
    │
    ├── 数据划分
    │   ├── 分类任务:80/20 分层采样(stratified)
    │   └── 回归任务:80/20 随机划分(random)
    │
    └── 23 个 AI 就绪子数据集(CSV 格式)

§3.5 许可证

组件 许可证 商业使用 衍生作品
TrialBench 策展数据集 CC BY-NC-ND 4.0 ❌ 禁止 ❌ 禁止
Python/R 代码 CC BY-NC-ND 4.0 ❌ 禁止 ❌ 禁止
ClinicalTrials.gov 原始数据 公共领域(U.S. Government Work) ✅ 允许 ✅ 允许
DrugBank 数据 学术免费 / 非商业 ❌ 禁止 需单独授权
TrialTrove 释放子集 非商业使用 ❌ 禁止 需单独授权

关键注意:CC BY-NC-ND 4.0 是最严格的 Creative Commons 许可之一——禁止商业用途和衍生作品创建。如需商业使用或修改数据集,须联系作者获取单独授权。

§3.6 基金来源

资助方 受益人 用途
南京大学国际协作计划 符天凡 项目整体支持
香港科技大学(广州)内部资金 陈晋泰 数据策展与模型开发

§3.7 深度溯源链

TrialBench 子数据集 (CSV)
    └── TrialBench 策展管线 (Python/R 包)
        └── 特征工程 + ICD-10/MeSH/SMILES 转换
            ├── ClinicalTrials.gov XML → 解析提取
            │   └── 美国国立医学图书馆 (NLM/NIH) 维护
            ├── DrugBank → SMILES 分子结构匹配
            │   └── University of Alberta 维护
            └── TrialTrove → 审批金标准
                └── Informa Pharma Intelligence 维护

§4 数据结构详解

§4.0 目录结构预览

trialbench/
├── data/
│   ├── duration/
│   │   ├── phase1_train.csv
│   │   ├── phase1_test.csv
│   │   ├── phase2_train.csv
│   │   ├── phase2_test.csv
│   │   └── phase3_train.csv
│   │   └── phase3_test.csv
│   ├── dropout_event/
│   │   ├── phase1_train.csv
│   │   ├── phase1_test.csv
│   │   └── ... (phase2/3/4)
│   ├── dropout_rate/
│   │   └── ... (phase1-4)
│   ├── adverse_event/
│   │   └── ... (phase1-3)
│   ├── mortality/
│   │   └── ... (phase1-3)
│   ├── approval/
│   │   └── ... (phase1-4)
│   ├── failure_reason/
│   │   └── ... (phase1-4)
│   ├── eligibility/
│   │   └── all_train.csv / all_test.csv
│   ├── dose/
│   │   └── all_train.csv / all_test.csv
│   └── mesh-embeddings/
│       └── mesh_embeddings.pkl
├── trialbench/
│   └── (Python 包源码)
├── r.trialbench/
│   └── (R 包源码)
└── README.md

§4.1 DAIMS 标准化字段描述表

核心特征字段
字段名 数据类型 说明 示例值 AI 用途 取值范围
NCT ID string 临床试验唯一标识符 NCT00610792 试验索引 / 外键 NCT00000000–NCT99999999
phase string 试验阶段 Phase 2 分层 / 子任务选择 Phase 1 / 2 / 3 / 4
title text 试验标题 “Phase 2 Study of VELCADE…” Bio-BERT 文本嵌入 自由文本
summary text 试验摘要 “This is a Phase 2, multicenter…” Bio-BERT 文本嵌入 自由文本
disease string 目标疾病 Ovarian Cancer ICD-10 转换 → GRAM 自由文本
drug_smiles string 药物 SMILES 分子式 CC©CNC(=O)… MPNN 分子图编码 SMILES 格式
intervention_mesh string 干预 MeSH 术语 D000068886 node2vec 嵌入 MeSH ID
icd10_code string ICD-10 疾病编码 C56 GRAM 层级编码 ICD-10 编码
study_type categorical 研究类型 Interventional DANet 特征 Interventional / Observational
sponsor categorical 赞助方 Millennium Pharmaceuticals DANet 特征 自由文本 → 分类
enrollment integer 计划入组人数 45 DANet 数值特征 1–100,000+
start_date date 试验开始日期 2006-07 时间过滤 YYYY-MM
completion_date date 试验完成日期 2009-09 持续时间计算 YYYY-MM
eligibility_criteria text 纳入/排除标准 “Inclusion Criteria:…” Bio-BERT / 生成目标 自由文本
ipd_info_type categorical 数据共享意愿 Yes DANet 特征 Yes / No
标签字段(按任务)
任务 标签字段 数据类型 说明 取值范围
试验持续时间 duration float 持续时间(年) 0.1–10.0
患者脱落事件 dropout_event binary 是否发生脱落 0 / 1
患者脱落率 dropout_rate float 脱落比例 [0, 1)
严重不良事件 adverse_event binary 是否发生 SAE 0 / 1
死亡率 mortality binary 是否发生死亡 0 / 1
试验审批 approval binary 是否通过 0 / 1
失败原因 failure_reason categorical 4 类失败原因 0(成功) / 1(入组不足) / 2(安全性) / 3(疗效不足)
入组标准 eligibility text 纳排标准文本 自由文本
药物剂量 dose_category ordinal 4 级剂量类别 0(<1) / 1(1-10) / 2(10-100) / 3(>100) mg/kg

§4.2 标签分布统计

分类任务正样本率
任务 Phase I Phase II Phase III Phase IV 总体
患者脱落事件 ~85% ~90% ~95% ~83% ~89%
严重不良事件 ~79% ~87% ~93% ~86%
死亡率事件 ~75% ~73% ~73% ~74%
试验审批 ~70% ~59% ~74% ~43% ~64%
药物剂量(4 类) 均衡分布 ~25% / 类

注:脱落/SAE/死亡率任务正样本率较高,因为这些任务仅包含有结果报告的试验,存在报告偏倚。

回归任务描述性统计
任务 Phase 均值 标准差 中位数 范围
持续时间(年) I ~2.5 ~1.5 ~2.0 0.1–10.0
持续时间(年) II ~3.5 ~2.0 ~3.0 0.1–10.0
持续时间(年) III ~4.5 ~2.5 ~4.0 0.1–10.0
脱落率 I–IV ~0.30 ~0.20 ~0.27 [0, 1)
失败原因分布(4 分类)
失败原因 Phase I Phase II Phase III Phase IV
成功 ~60% ~65% ~70% ~55%
入组不足 ~15% ~12% ~10% ~20%
安全性问题 ~15% ~10% ~8% ~10%
缺乏疗效 ~10% ~13% ~12% ~15%

失败原因分类由 ChatGPT(GPT-4)完成,基于 ClinicalTrials.gov 的"why stopped"文本字段。

§4.3 数据层级关系

TrialBench 平台
├── 8 个任务(Task-level)
│   ├── 试验持续时间预测(回归)
│   ├── 患者脱落预测(分类 + 回归)
│   ├── 严重不良事件预测(分类)
│   ├── 死亡率预测(分类)
│   ├── 试验审批预测(分类)
│   ├── 失败原因识别(4 分类)
│   ├── 入组标准设计(生成)
│   └── 药物剂量确定(有序分类)
│
├── 23 个子数据集(Dataset-level,按 Phase 细分)
│   ├── 持续时间: 3 个(Phase I/II/III)
│   ├── 脱落: 4 个(Phase I/II/III/IV,每含分类+回归双目标)
│   ├── SAE: 3 个(Phase I/II/III)
│   ├── 死亡率: 3 个(Phase I/II/III)
│   ├── 审批: 4 个(Phase I/II/III/IV)
│   ├── 失败原因: 4 个(Phase I/II/III/IV)
│   ├── 入组标准: 1 个(全 Phase 合并)
│   └── 剂量: 1 个(仅 Phase II)
│
└── 每条试验记录(Record-level)
    ├── NCT ID(唯一标识)
    ├── 5 种模态特征(SMILES / 文本 / MeSH / ICD-10 / 结构化)
    ├── 任务标签(按子数据集不同)
    └── 来源溯源(ClinicalTrials.gov + DrugBank + TrialTrove)

§4.4 数据获取方式

获取方式 链接 说明 大小
Python 包 pip install trialbench 按任务按 Phase 程序化加载 ~5 MB(代码)
R 包 GitHub 安装 R 函数加载数据 ~5 MB(代码)
Zenodo 完整下载 https://zenodo.org/records/14975339 全部 23 个子数据集 + 嵌入 ~200 MB
项目网站 https://huyjj.github.io/Trialbench/ 在线浏览 + 文档 + 可视化
ClinicalTrials.gov 原始 https://clinicaltrials.gov/ 原始 XML/JSON 记录 >50 GB

§4.5 缺失值处理

缺失类型 描述 处理策略
特征级缺失 部分试验缺少某些字段(如未完成日期、无结果) 移除在所有试验中值相同或全部为空的特征
时间点过滤 防止数据泄露 仅保留试验开始前可用的特征;移除试验完成后的信息
结果缺失 不完整试验无完成日期和结果 脱落/SAE/死亡率任务仅保留有结果报告的试验
异常值 持续时间 >10 年的试验 直接移除
SMILES 匹配失败 药物名称未匹配到 DrugBank 该特征缺失,模型跳过该模态

TrialBench 未采用显式缺失值填充(如均值/中位数插补),而是通过特征筛选和样本过滤间接处理。多模态模型可在某模态缺失时仅使用可用模态。

§4.6 生态工具

工具 类型 语言 说明
trialbench (Python) 数据加载 Python pip install trialbench;按任务/Phase 加载
r.trialbench ® 数据加载 R R 函数加载 CSV 数据
TrialBench 网站 文档 Web 在线浏览任务/数据集/图表
Zenodo 存档 数据仓库 DOI 持久标识
Bio-BERT 预训练模型 Python 临床文本嵌入
RDKit 化学信息学 Python SMILES → 分子图
PyTorch 深度学习 Python 基线模型实现
Therapeutics Data Commons 关联平台 Python 66+ 治疗学任务套件

§5 数据划分与使用建议

§5.1 划分策略

策略 适用任务 比例 方法 优点 缺点
随机划分(默认) 回归任务 80/20 随机打乱 简单、快速 可能时间泄露
分层采样(默认) 分类任务 80/20 按 Phase + 标签分层 保持类别分布 仍可能时间泄露
时间划分(推荐) 所有任务 80/20 按试验开始日期排序,前 80% 训练 模拟真实部署场景 较新试验的分布变化
交叉验证 小样本任务 5-fold 五折交叉验证 稳健的泛化估计 计算成本高

论文鼓励用户根据任务需求探索替代划分策略。例如,时间划分(训练较早试验、测试较晚试验)可模拟真实部署场景;地理位置划分可评估地理泛化性。

§5.2 基线配置

配置项
优化器 Adam
学习率 1e-3
权重衰减 0
Batch size 64
最大训练轮数 20
嵌入维度 100(MPNN/Bio-BERT/MeSH/GRAM)/ 50(DANet)
Python 版本 3.8
深度学习框架 PyTorch
GPU NVIDIA GeForce RTX 3090
内存 50 GB RAM
CPU Intel Xeon

§5.3 使用建议

场景 推荐任务 推荐模型 注意事项
药企试验规划 持续时间 + 审批 多模态基线 使用时间划分模拟部署
安全性评估 SAE + 死亡率 多模态基线 关注 Recall 而非 Precision
招募策略优化 脱落率 + 入组标准 DANet + ChatGPT 脱落率基线 R² 较低,需更多特征
药物剂量探索 剂量确定 MPNN 单模态 仅 Phase II + 小分子
LLM 微调 SAE TxGemma TxGemma 用 <10% 数据即可达到基线性能
学术研究 失败原因 多模态基线 F1 极低(~0.15-0.20),是开放挑战

§6 AI 就绪指南

§6.0 云端快速启动

🚀 5 分钟极速体验:TrialBench 提供 Python 包,一行命令即可加载数据。

pip install trialbench
from trialbench import load_data

# 加载 Phase II 严重不良事件预测数据
data = load_data(task="adverse_event", phase="Phase 2")
train_df = data["train_df"]
test_df = data["test_df"]

print(f"Train: {len(train_df)} samples, Test: {len(test_df)} samples")
print(f"Features: {train_df.columns.tolist()}")

本示例加载 Phase II 不良事件预测子数据集,Colab 免费 GPU 即可运行基线模型。

§6.1 快速上手代码

<details>
<summary>📋 完整多模态基线代码(点击展开)</summary>

# ========================================
# TrialBench 多模态基线 — PyTorch 版
# 环境要求: torch>=2.0, transformers, rdkit, pandas, scikit-learn
#
# ⚠️ 目录结构预期:
#   请先安装 Python 包:pip install trialbench
#   数据将自动从 GitHub 下载到本地缓存目录
#
#   需要的额外文件:
#   - MeSH 嵌入文件(由 trialbench 包自动提供)
# ========================================

import torch
import torch.nn as nn
import pandas as pd
import numpy as np
from trialbench import load_data

#  1. 数据加载 
TASK = "adverse_event"
PHASE = "Phase 2"

data = load_data(task=TASK, phase=PHASE)
train_df, test_df = data["train_df"], data["test_df"]

#  2. 多模态特征提取 
def extract_modalities(df):
    """提取 5 种模态特征"""
    modalities = {}

    # 模态 1: SMILES → 分子图 (简化版,实际用 RDKit + MPNN)
    from rdkit import Chem
    smiles_list = df["drug_smiles"].fillna("").tolist()
    modalities["smiles"] = smiles_list

    # 模态 2: 文本特征 (试验标题 + 摘要)
    modalities["text"] = (df["title"].fillna("") + " " +
                          df["summary"].fillna("")).tolist()

    # 模态 3: MeSH 术语
    modalities["mesh"] = df["intervention_mesh"].fillna("").tolist()

    # 模态 4: ICD-10 编码
    modalities["icd10"] = df["icd10_code"].fillna("").tolist()

    # 模态 5: 结构化特征 (分类 + 数值)
    cat_cols = ["study_type", "sponsor", "phase"]
    num_cols = ["enrollment"]
    modalities["categorical"] = df[cat_cols].fillna("NA").values
    modalities["numerical"] = df[num_cols].fillna(0).values

    return modalities

#  3. 多模态模型 
class MultiModalModel(nn.Module):
    """TrialBench 多模态基线模型"""
    def __init__(self, hidden_dim=100, num_classes=2):
        super().__init__()

        # 简化版:各模态用线性投影替代实际模型
        # 实际应使用 MPNN / Bio-BERT / node2vec / GRAM / DANet
        self.smiles_proj = nn.Linear(200, hidden_dim)  # MPNN 输出
        self.text_proj = nn.Linear(768, hidden_dim)    # Bio-BERT 输出
        self.mesh_proj = nn.Linear(100, hidden_dim)     # node2vec 输出
        self.icd10_proj = nn.Linear(100, hidden_dim)    # GRAM 输出
        self.cat_proj = nn.Linear(50, hidden_dim)       # DANet 输出

        self.classifier = nn.Sequential(
            nn.Linear(hidden_dim * 5, hidden_dim),
            nn.ReLU(),
            nn.Dropout(0.2),
            nn.Linear(hidden_dim, num_classes)
        )

    def forward(self, smiles, text, mesh, icd10, cat):
        # 各模态嵌入
        s = self.smiles_proj(smiles)
        t = self.text_proj(text)
        m = self.mesh_proj(mesh)
        i = self.icd10_proj(icd10)
        c = self.cat_proj(cat)

        # 拼接 + 分类
        combined = torch.cat([s, t, m, i, c], dim=-1)
        return self.classifier(combined)

#  4. 训练循环 
model = MultiModalModel(num_classes=2)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()

# 假设已将特征转为 tensor
# train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)

for epoch in range(20):
    model.train()
    total_loss = 0
    for batch in train_loader:
        optimizer.zero_grad()
        logits = model(**batch["features"])
        loss = criterion(logits, batch["labels"])
        loss.backward()
        optimizer.step()
        total_loss += loss.item()
    print(f"Epoch {epoch+1}: Loss={total_loss/len(train_loader):.4f}")

#  5. 评估 
from sklearn.metrics import f1_score, roc_auc_score, precision_recall_curve, auc

model.eval()
with torch.no_grad():
    preds = model(**test_features)
    probs = torch.softmax(preds, dim=1)[:, 1].numpy()

f1 = f1_score(test_labels, (probs > 0.5).astype(int))
roc_auc = roc_auc_score(test_labels, probs)
precision, recall, _ = precision_recall_curve(test_labels, probs)
pr_auc = auc(recall, precision)

print(f"F1: {f1:.4f}, ROC-AUC: {roc_auc:.4f}, PR-AUC: {pr_auc:.4f}")

</details>

§6.2 数据获取

# 方式 1: Python 包(推荐)
pip install trialbench

# 方式 2: 从 Zenodo 下载完整数据
wget https://zenodo.org/records/14975339/files/trialbench.zip
unzip trialbench.zip -d ./data/

# 方式 3: R 包
# install.packages("devtools")
# devtools::install_github("huyjj/Trialbench")
# Python 加载所有任务
from trialbench import load_data, list_tasks

tasks = list_tasks()
print(f"Available tasks: {tasks}")
# [''''''''''''''''duration'''''''''''''''', ''''''''''''''''dropout_event'''''''''''''''', ''''''''''''''''dropout_rate'''''''''''''''', ''''''''''''''''adverse_event'''''''''''''''',
#  ''''''''''''''''mortality'''''''''''''''', ''''''''''''''''approval'''''''''''''''', ''''''''''''''''failure_reason'''''''''''''''', ''''''''''''''''eligibility'''''''''''''''', ''''''''''''''''dose'''''''''''''''']

# 按任务按 Phase 加载
data = load_data(task="approval", phase="Phase 3")
train_df = data["train_df"]
test_df = data["test_df"]

§6.3 预处理管道

import pandas as pd
import numpy as np
from rdkit import Chem
from rdkit.Chem import AllChem

def preprocess_trialbench(df):
    """TrialBench 数据预处理管道"""

    # 1. SMILES → 分子指纹(简化版,实际应用 MPNN)
    def smiles_to_fp(smiles, radius=2, nbits=2048):
        mol = Chem.MolFromSmiles(smiles)
        if mol is None:
            return np.zeros(nbits)
        return np.array(AllChem.GetMorganFingerprintAsBitVect(
            mol, radius, nBits=nbits
        ))

    df["smiles_fp"] = df["drug_smiles"].apply(smiles_to_fp)

    # 2. ICD-10 编码 → 整数编码
    from sklearn.preprocessing import LabelEncoder
    le = LabelEncoder()
    df["icd10_encoded"] = le.fit_transform(df["icd10_code"].fillna("NA"))

    # 3. 分类特征 → One-Hot
    cat_features = ["study_type", "sponsor", "phase"]
    df_cat = pd.get_dummies(df[cat_features], dummy_na=True)

    # 4. 数值特征 → 标准化
    from sklearn.preprocessing import StandardScaler
    num_features = ["enrollment"]
    scaler = StandardScaler()
    df[num_features] = scaler.fit_transform(df[num_features].fillna(0))

    # 5. 文本特征 → Bio-BERT 嵌入(需预加载模型)
    # from transformers import AutoTokenizer, AutoModel
    # tokenizer = AutoTokenizer.from_pretrained("dmis-lab/biobert-base-cased-v1.1")
    # model = AutoModel.from_pretrained("dmis-lab/biobert-base-cased-v1.1")

    return df

§6.4 PyTorch DataLoader

from torch.utils.data import Dataset, DataLoader
import torch

class TrialBenchDataset(Dataset):
    """TrialBench PyTorch 数据集"""
    def __init__(self, df, task="adverse_event", phase="Phase 2"):
        self.df = df
        self.task = task
        self.phase = phase

        # 标签列映射
        label_cols = {
            "adverse_event": "adverse_event",
            "mortality": "mortality",
            "approval": "approval",
            "dropout_event": "dropout_event",
            "duration": "duration",
            "dose": "dose_category",
            "failure_reason": "failure_reason"
        }
        self.label_col = label_cols.get(task)

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

    def __getitem__(self, idx):
        row = self.df.iloc[idx]

        # 简化版:返回分子指纹 + 结构化特征
        features = {
            "smiles_fp": torch.FloatTensor(row["smiles_fp"]),
            "icd10": torch.LongTensor([row["icd10_encoded"]]),
            "categorical": torch.FloatTensor(row["cat_encoded"]),
            "numerical": torch.FloatTensor(row[["enrollment"]].values)
        }

        label = torch.tensor(row[self.label_col], dtype=torch.long)
        return features, label

# 使用示例
train_dataset = TrialBenchDataset(train_df, task="adverse_event", phase="Phase 2")
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)

§6.5 常见坑点

⚠️ 坑点 1:数据泄露风险(分类:数据泄漏)

问题ClinicalTrials.gov 记录包含试验全生命周期信息(如完成日期、结果)。如果使用试验完成后的特征预测试验结果,会导致严重的数据泄露。
症状:模型在测试集上表现异常好(如 F1 > 0.95),但实际部署效果极差。
解决:TrialBench 团队已执行时间点过滤——仅保留试验开始前可用的特征。但用户自行从 ClinicalTrials.gov 提取特征时必须重复此步骤。检查特征是否在试验启动前可获得。
参考:TrialBench 论文 Methods 部分 “We ensured that trial result information was not included if the AI task is to be performed before trial completion.”

⚠️ 坑点 2:失败原因任务的基线极低(分类:标签理解)

问题:试验失败原因识别任务的基线 F1 仅 0.15–0.20,ROC-AUC 约 0.56,接近随机水平。这并非模型缺陷,而是任务本身的固有难度——失败原因分类由 ChatGPT 基于"why stopped"文本完成,标注噪声大。
症状:无论如何调参,F1 始终低于 0.25。
解决:(1) 不要期望在此任务上达到高 F1;(2) 关注 ROC-AUC 而非 F1,因为类别不平衡严重;(3) 考虑将 4 类简化为 2 类(成功 vs 失败);(4) 人工审查 ChatGPT 标注的子集,构建更高质量的金标准。
参考:TrialBench 论文 Table 6,Phase I 失败原因 F1=0.2028±0.0104。

⚠️ 坑点 3:脱落/SAE/死亡率任务的报告偏倚(分类:偏倚陷阱)

问题:这三个任务仅包含在 ClinicalTrials.gov 上有结果报告的试验。有结果报告的试验通常是已完成的试验,引入了幸存者偏倚——试验本身可能因为成功而更愿意报告结果。
症状:正样本率异常高(如 Phase III 脱落事件 95%+),模型倾向于预测所有试验为正。
解决:(1) 理解标签含义——“脱落事件”=是否有患者脱落,而非脱落率高低;(2) 使用 PR-AUC 而非 ROC-AUC 作为主要指标(在类别不平衡时更稳健);(3) 考虑使用脱落率回归任务(dropout_rate)而非分类任务。
参考:TrialBench 论文 “only trials with posted results on ClinicalTrials.gov were included.”

⚠️ 坑点 4:ChatGPT 辅助标注的系统性偏倚(分类:标签理解)

问题:失败原因分类和药物剂量提取使用了 ChatGPT(GPT-4)。LLM 标注可能引入系统性偏倚——例如,对模糊文本倾向于选择某些类别,或对剂量单位的转换假设(60 kg 体重、24 小时/天)不准确。
症状:ChatGPT 标注与人工标注的分布不一致;剂量类别分布不均匀。
解决:(1) 人工抽检 5–10% 的 ChatGPT 标注,计算一致性;(2) 对模糊案例使用多轮 LLM 标注 + 多数投票;(3) 在剂量任务中验证单位转换假设是否适用于目标药物。
参考:TrialBench 论文 Methods “We use OpenAI ChatGPT API to extract the label from natural language.”

⚠️ 坑点 5:药物剂量任务适用范围有限(分类:任务理解)

问题:药物剂量确定任务仅包含 Phase II 试验和小分子药物,且仅 4 个剂量类别。这不适用于生物制品、基因疗法或 Phase I/III/IV 的剂量确定。
症状:模型在其他 Phase 或生物制品上完全失效。
解决:(1) 明确任务适用范围——仅限 Phase II 小分子药物;(2) 如需扩展,自行从 ClinicalTrials.gov 提取更多剂量信息;(3) 注意 60 kg 体重假设和单位转换的局限性。
参考:TrialBench 论文 Table 3,剂量任务仅 12.8K 试验,全部为 Phase II。

⚠️ 坑点 6:版本冻结与时效性(分类:工程陷阱)

问题:TrialBench 数据冻结于 2024 年 2 月 16 日。此后注册的新试验不在数据集中。临床实践、监管政策和试验设计规范随时间变化,模型可能在新试验上性能下降。
症状:在 2024 年后注册的试验上性能显著下降。
解决:(1) 使用时间划分(temporal split)评估模型时效性;(2) 定期从 ClinicalTrials.gov 更新数据;(3) 关注 TrialBench 的后续版本更新(团队承诺持续维护 5 年)。
参考:TrialBench 论文 “Trials registered before February 16, 2024.”

⚠️ 坑点 7:Phase 间数据量与分布差异(分类:偏倚陷阱)

问题:不同 Phase 的子数据集大小差异巨大——持续时间任务 Phase I 有 13.5K 而 Phase IV 仅 7.1K 试验。各 Phase 的标签分布也不同,直接跨 Phase 比较模型性能可能误导。
症状:同一模型在不同 Phase 子集上性能差异 >10%。
解决:(1) 分别在各 Phase 子集上训练和评估;(2) 不要直接跨 Phase 比较 ROC-AUC;(3) 理解各 Phase 的临床特征差异(患者规模、试验时长、成功率)。
参考:TrialBench 论文 Table 3 统计。

⚠️ 坑点 8:CC BY-NC-ND 4.0 许可证限制(分类:工程陷阱)

问题:CC BY-NC-ND 4.0 是最严格的 Creative Commons 许可之一——禁止商业用途(NC)和衍生作品创建(ND)。这意味着不能修改数据集结构、不能在商业产品中使用。
症状:商业项目无法直接使用 TrialBench 数据。
解决:(1) 学术研究可自由使用;(2) 商业用途需联系作者获取单独授权;(3) 可使用 ClinicalTrials.gov 原始数据(公共领域)自行策展。
参考:TrialBench 论文 Licensing 部分。

§6.6 模型推荐

模型 类型 适用任务 预期性能 关键说明
TrialBench 多模态基线 多模态 DNN 全部 F1=0.59–0.95 官方基线,MPNN+Bio-BERT+GRAM+DANet
TxGemma (27B) LLM SAE / 审批 F1 ~0.85 Google DeepMind,<10% 数据即可达到基线
TxGemma (9B) LLM SAE / 审批 F1 ~0.80 轻量版,适合 Colab
GPT-4 LLM 入组标准 / 失败原因 Cosine=0.70 用于生成任务和标注
TabCaps 表格分类 审批 / SAE F1 ~0.75 Tabular data capsule network
TabNet 表格学习 审批 / SAE F1 ~0.72 注意力式表格学习
XGBoost 梯度提升 全部分类 F1 ~0.70 仅用结构化特征的强基线
DANet 深度抽象网络 全部分类 F1 ~0.71 TrialBench 基线组件
MPNN (单模态) 图神经网络 剂量 F1 ~0.50 仅药物 SMILES 输入
Bio-BERT (单模态) 文本编码 入组标准 Cosine ~0.68 仅文本输入
GRAM (单模态) 图注意力 审批 F1 ~0.65 仅 ICD-10 输入
AUTOCT LLM Agent 审批 / 结果 2025 新框架,Agent 式

§6.7 硬件配置

配置 GPU 显存 RAM 磁盘 训练时间 适用场景
最低配置 16 GB 5 GB ~30 分钟/任务 仅结构化特征(XGBoost)
推荐配置 RTX 3090 24 GB 50 GB 10 GB ~2 小时/任务 多模态基线(官方配置)
高性能配置 A100 40GB 40 GB 100 GB 20 GB ~1 小时/任务 大批量实验
LLM 微调 A100 80GB 80 GB 200 GB 50 GB ~4 小时 TxGemma 27B 微调
Colab 免费 T4 16 GB 12 GB 5 GB ~10 分钟 单任务快速体验

§6.8 评估指标

任务类型 指标 说明 代码
二分类 PR-AUC 精确率-召回率曲线下面积(类别不平衡时首选) from sklearn.metrics import average_precision_score
二分类 F1 Score 精确率与召回率的调和平均 from sklearn.metrics import f1_score
二分类 ROC-AUC 受试者工作特征曲线下面积 from sklearn.metrics import roc_auc_score
二分类 Precision / Recall 精确率 / 召回率 from sklearn.metrics import precision_score, recall_score
二分类 Accuracy 准确率 from sklearn.metrics import accuracy_score
回归 RMSE 均方根误差 from sklearn.metrics import mean_squared_error
回归 MAE 平均绝对误差 from sklearn.metrics import mean_absolute_error
回归 决定系数 from sklearn.metrics import r2_score
回归 Pearson Correlation 皮尔逊相关系数 from scipy.stats import pearsonr
多分类 Macro-F1 各类 F1 的平均(类别不平衡时首选) f1_score(average=''''''''''''''''macro'''''''''''''''')
生成 Cosine Similarity 生成文本与参考文本的余弦相似度 from sklearn.metrics.pairwise import cosine_similarity
生成 Informativeness 信息量(独特 n-gram 比例) 自定义
生成 Redundancy 冗余度(重复 n-gram 比例) 自定义

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
选择偏倚 仅包含 ClinicalTrials.gov 注册的试验,过度代表美国和英语国家试验 理解覆盖局限;可补充其他注册库(EU CTR, ChiCTR)
报告偏倚 脱落/SAE/死亡率任务仅含有结果报告的试验,存在幸存者偏倚 使用脱落率回归任务而非分类任务;关注 PR-AUC
Phase 不平衡 Phase II 试验在多数任务中占比最大 按 Phase 分别训练/评估;分层采样
时效偏倚 数据冻结于 2024-02-16,不含此后注册的试验 时间划分评估;定期更新
赞助方偏倚 药企赞助试验过度代表(GSK 3,017 / NCI 2,826 / Pfizer 2,346) 分析赞助方子群体性能差异
LLM 标注偏倚 ChatGPT 用于失败原因分类和剂量提取,可能引入系统性标注偏倚 人工抽检一致性;多轮标注 + 投票
干预类型偏倚 干预研究占比 77–100%,观察性研究代表性不足 注意任务适用范围;观察性试验数据量有限

§7.2 标注质量评估

标注方式 任务 标注者 质量评估 局限性
ClinicalTrials.gov 自报告 全部任务 试验注册方 官方注册数据,无人工复核 自报告数据可能不一致
TrialTrove 审批信息 审批预测 Informa 商业策展 商业数据库交叉验证 仅释放子集公开
ChatGPT 分类 失败原因 GPT-4 未有人工一致性验证 LLM 标注可能有系统性偏倚
ChatGPT 提取 药物剂量 GPT-4 基于 60 kg 体重假设转换 单位转换假设可能不适用所有药物
试验完成日期计算 持续时间 自动计算 精确到日 移除 >10 年异常值
入组标准文本 入组标准设计 ClinicalTrials.gov 自报告 "已完成"试验的标准 文本质量和长度不一

§7.3 泛化性讨论

场景 失效风险 证据
2024 年后注册的新试验 临床实践、监管政策变化;需时间划分验证
ClinicalTrials.gov 注册的试验 选择偏倚;EU CTR/ChiCTR 注册的试验可能不同
观察性研究 数据集主要为干预性试验(77–100%)
生物制品 / 基因疗法 剂量任务仅含小分子药物
低收入国家试验 ClinicalTrials.gov 虽覆盖 221 国,但美国试验占主导
罕见病试验 样本量小,模型泛化性受限
COVID-19 紧急试验 特殊审批流程可能不符合常规模式

§7.4 伦理考量

  1. 患者隐私:TrialBench 是试验级数据(非患者级),不包含个体患者信息。所有数据来自公开注册库 ClinicalTrials.gov,无 IRB 审批要求。
  2. 决策影响:AI 预测试验结果可能影响药企投资决策和患者入组意愿。模型不应作为唯一决策依据。
  3. 公平性:不同疾病领域、赞助方类型和地区的试验可能在模型性能上存在差异。未进行系统公平性评估。
  4. 透明性:ChatGPT 辅助标注的情况已公开披露。数据策展流程透明可追溯。
  5. 数据治理ClinicalTrials.gov 数据为公共领域,但 TrialBench 的策展成果受 CC BY-NC-ND 4.0 约束,限制了商业应用和修改。
  6. 潜在滥用:预测试验成功/失败可能被用于操纵试验设计或投资决策,需负责任使用。

§7.5 DAIMS 24 项数据就绪度评估表

编号 评估维度 评估结果 通过
1 数据集动机 ✅ 明确——填补临床试验 AI 预测基准空白
2 数据集组成 ✅ 23 子集 / 8 任务 / 480K+ 试验 / 5 模态
3 采集过程 ClinicalTrials.gov + DrugBank + TrialTrove
4 预处理 ✅ XML→表格 / ICD-10 / MeSH / SMILES 转换
5 标注方式 ⚠️ 部分任务由 ChatGPT 标注,质量未验证 ⚠️
6 数据清洗 ✅ 特征筛选 / 异常值移除 / 时间点过滤
7 使用场景 ✅ 8 任务明确定义 + 应用时机
8 数据划分 ✅ 80/20 分层采样(分类)/ 随机(回归)
9 隐私保护 ✅ 试验级数据,无患者隐私
10 去标识化 ✅ 公开注册数据,无去标识化需求
11 访问方式 ✅ Zenodo + Python/R 包,完全开放
12 许可证 ✅ CC BY-NC-ND 4.0(明确但限制性强)
13 数据格式 ✅ CSV 表格格式 + Python/R 工具
14 标准术语 ✅ ICD-10 / MeSH 标准编码
15 溯源链 ClinicalTrials.gov → TrialBench 完整链
16 数据质量 ⚠️ 自报告 + LLM 标注,部分质量未验证 ⚠️
17 偏倚声明 ✅ 7 类偏倚已识别并文档化
18 公平性评估 ❌ 未进行系统公平性评估
19 可复现性 ✅ Python/R 包 + 基线代码 + Zenodo DOI
20 维护计划 ✅ 承诺 5 年维护 + 持续扩展
21 伦理审查 ✅ 无 IRB 需求(公开数据)
22 局限性声明 ✅ 论文明确声明局限性
23 引用信息 ✅ DOI + BibTeX + 完整作者列表
24 文档完整性 ✅ 论文 + 网站 + 代码文档 + 示例

DAIMS 评分:21 / 24
评分解读优秀 — 接近满分,少数扣分项有明确改进方向。

对你意味着什么:TrialBench 是 AI 就绪度极高的临床试验预测数据集。23 个子数据集均有明确定义的任务、评估指标和基线模型,Python/R 工具包实现"开箱即用"。主要扣分项集中在 ChatGPT 辅助标注的质量验证不足(#5/#16)和未进行系统公平性评估(#18)。建议在使用前:(1) 对 ChatGPT 标注的任务(失败原因、剂量)进行 5–10% 人工抽检;(2) 使用时间划分验证模型时效性;(3) 关注 CC BY-NC-ND 4.0 许可证对商业用途的限制。

§7.6 外部验证矩阵

外部数据集/场景 来源机构 评估任务 性能指标 相对内部测试集变化 关键发现
TxGemma 微调 Google DeepMind SAE 预测 F1 ~0.85 <10% 训练数据即可达到基线性能
AUTOCT 基准 AUTOCT 团队 审批 + 结果预测 LLM Agent 框架基准评估
EU CTR 试验 EMA 审批预测 预期下降 ClinicalTrials.gov 来源,分布不同
ChiCTR 试验 中国 审批预测 预期下降 中国注册库,疾病和赞助方分布不同
2024+ 新试验 ClinicalTrials.gov SAE 预测 预期下降 时效性验证,数据冻结后新试验

§8 基准性能与生态

§8.1 排行榜

严重不良事件预测(多模态基线)
Phase PR-AUC F1 ROC-AUC Precision Recall Accuracy
Phase I 0.7259±0.030 0.7932±0.023 0.8740±0.019 0.8055±0.031 0.7824±0.032 0.8211±0.018
Phase II 0.8201±0.009 0.8670±0.005 0.7988±0.012 0.8272±0.009 0.9109±0.007 0.7910±0.008
Phase III 0.8938±0.010 0.9312±0.006 0.8638±0.013 0.8951±0.010 0.9704±0.006 0.8779±0.010
死亡率预测(多模态基线)
Phase PR-AUC F1 ROC-AUC Precision Recall Accuracy
Phase I 0.6103±0.038 0.7454±0.027 0.9009±0.009 0.6877±0.042 0.8160±0.031 0.8511±0.015
Phase II 0.6697±0.015 0.7303±0.012 0.8110±0.010 0.7577±0.017 0.7051±0.016 0.7609±0.011
Phase III 0.6282±0.023 0.7258±0.017 0.7976±0.016 0.6649±0.024 0.7994±0.014 0.7095±0.016
试验审批预测(多模态基线)
Phase PR-AUC F1 ROC-AUC Precision Recall Accuracy
Phase I 0.5794±0.021 0.7011±0.016 0.7824±0.012 0.6148±0.022 0.8102±0.015 0.7012±0.012
Phase II 0.5099±0.010 0.5895±0.008 0.7714±0.008 0.6176±0.011 0.5640±0.010 0.7089±0.008
Phase III 0.6383±0.009 0.7416±0.007 0.7405±0.012 0.6520±0.009 0.8599±0.009 0.6677±0.007
Phase IV 0.4137±0.017 0.5845±0.017 0.6417±0.018 0.4137±0.017 0.9969±0.002 0.4315±0.016
患者脱落预测 — 分类(多模态基线)
Phase PR-AUC F1 ROC-AUC Precision Recall Accuracy
Phase I 0.6907±0.017 0.7176±0.014 0.7226±0.011 0.7331±0.019 0.7030±0.018 0.6738±0.013
Phase II 0.7775±0.008 0.8628±0.005 0.7309±0.009 0.7778±0.008 0.9686±0.003 0.7634±0.008
Phase III 0.9126±0.006 0.9512±0.003 0.7345±0.015 0.9126±0.006 0.9932±0.001 0.9073±0.006
Phase IV 0.7093±0.010 0.8272±0.007 0.6711±0.011 0.7093±0.010 0.9924±0.003 0.7071±0.010
患者脱落预测 — 回归(多模态基线)
Phase MAE RMSE
Phase I 0.4451±0.003 0.4608±0.003 0.6284±0.029
Phase II 0.4203±0.002 0.4432±0.002 0.4033±0.017
Phase III 0.4054±0.004 0.4285±0.003 0.4172±0.015
Phase IV 0.4180±0.004 0.4385±0.003 0.2188±0.032
试验持续时间预测 — 回归(多模态基线)
Phase MAE RMSE
Phase I 0.8334±0.013 1.2611±0.026 0.6514±0.009
Phase II 1.2980±0.020 1.1756±0.032 0.4125±0.008
Phase III 1.4411±0.023 1.8356±0.030 0.3148±0.009
试验失败原因识别 — 4 分类(多模态基线)
Phase PR-AUC F1 ROC-AUC Accuracy
Phase I 0.2798±0.010 0.2028±0.010 0.5599±0.017 0.6157±0.017
Phase II 0.2857±0.006 0.1505±0.003 0.5627±0.008 0.4310±0.012
Phase III 0.2880±0.009 0.1972±0.011 0.5583±0.018 0.4517±0.016
Phase IV 0.2473±0.005 0.1691±0.007 0.4709±0.030 0.4327±0.018
药物剂量确定 — 4 类有序分类(多模态基线)
Phase PR-AUC F1 ROC-AUC Accuracy
All (Phase II) 0.5333±0.016 0.5072±0.013 0.7617±0.007 0.5882±0.009
入组标准设计 — 生成(多模态基线)
Cosine Similarity Informativeness Redundancy
0.6988 0.6518 0.1181

排行榜注意事项:以上均为 TrialBench 官方多模态基线(MPNN + Bio-BERT + MeSH + GRAM + DANet)的结果。不同任务、不同 Phase 之间不可直接比较绝对数值。失败原因任务 F1 极低(~0.15-0.20)是任务固有难度,非模型缺陷。

§8.2 关键论文

  1. Chen, J., Hu, Y., Cai, M. et al. (2025). “TrialBench: Multi-Modal AI-Ready Datasets for Clinical Trial Prediction.” Scientific Data, 12, 1564. DOI: 10.1038/s41597-025-05680-8.
    — TrialBench 原始论文,定义 8 个任务和 23 个子数据集,提供基线模型和评估指标。

  2. Sun, D., Gao, W., Hu, H. & Zhou, S. (2022). “Why 90% of clinical drug development fails and how to improve it?” Acta Pharm Sin B, 12, 3049–3062.
    — 临床试验失败率分析,TrialBench 任务设计的医学背景。

  3. Huang, K. et al. (2022). “Artificial intelligence foundation for therapeutic science.” Nature Chem Biol.
    — Therapeutics Data Commons (TDC) 基础,TrialBench 的前身平台。

  4. Choi, E. et al. (2017). “GRAM: Graph-based Attention Model for Healthcare Representation Learning.” KDD.
    — GRAM 模型,TrialBench 用于 ICD-10 疾病编码表征的核心组件。

  5. Lee, J. et al. (2020). “BioBERT: a pre-trained biomedical language representation model for biomedical text mining.” Bioinformatics, 36, 1234–1240.
    — Bio-BERT 模型,TrialBench 用于临床试验文本处理的核心组件。

  6. Google DeepMind (2025). “Introducing TxGemma: Open models to improve therapeutics development.” Google Developers Blog.
    — TxGemma 使用 TrialBench 进行不良事件预测微调的官方发布。

数据集 类型 规模 模态 关系 链接
ClinicalTrials.gov 临床试验注册库 480K+ XML 原始数据源 clinicaltrials.gov
TDC (Therapeutics Data Commons) 治疗学任务套件 66+ 任务 多模态 前身平台 tdc.colab
DrugBank 药物数据库 ~14K 药物 SMILES 特征来源 drugbank.com
TrialTrove (Informa) 试验数据库 ~120K+ 结构化 金标准来源 pharmaintelligence.informa.com
HEMR 试验结果预测 ~6.5K 结构化 早期基准
SIDER 药物不良反应 ~143K SMILES + 文本 互补 sideeffects.embl.de
MIMIC-IV 临床 EHR 364K 患者 结构化 + 文本 不同层级 physionet.org
ClinTox 临床毒性 ~1.5K 化合物 SMILES 互补 moleculenet.ai
DeepTrial 试验结果预测 ~40K 结构化 同类

§8.4 社区活跃度

指标 数值 截至日期
Google Scholar 引用 30+ 2026-08
Zenodo 下载 500+ 2026-08
arXiv 预印本引用 25+ 2026-08
GitHub Stars 50+ 2026-08
Python 包下载 2,000+ 2026-08

§8.5 生态快照

资源 类型 链接 为什么值得关注
TrialBench Python 包 工具库 PyPI: trialbench 一行代码加载 23 个子数据集
TrialBench R 包 工具库 GitHub R 语言环境数据加载
TxGemma 预训练模型 HuggingFace Google DeepMind 治疗学 LLM,用 TrialBench 微调
AUTOCT 框架 LLM Agent 自动临床试验预测
TrialBench 网站 文档 huyjj.github.io/Trialbench 在线浏览任务/图表/统计
Zenodo 存档 数据仓库 zenodo.org/records/14975339 DOI 持久标识,完整数据下载

§9 相关资源与引用

§9.1 官方资源

资源 类型 链接
论文 (Nature) 论文 https://www.nature.com/articles/s41597-025-05680-8
arXiv 预印本 预印本 https://arxiv.org/abs/2407.00631
项目网站 网站 https://huyjj.github.io/Trialbench/
Zenodo 数据 数据 https://zenodo.org/records/14975339
PubMed 索引 https://pubmed.ncbi.nlm.nih.gov/41006354/
Python 包 代码 pip install trialbench
ClinicalTrials.gov 原始数据 https://clinicaltrials.gov/
DrugBank 特征来源 https://www.drugbank.com/
ICD-10 查询 编码 https://www.icd10data.com/
MeSH 术语 编码 https://meshb.nlm.nih.gov/
TxGemma (Google) 应用案例 HuggingFace: google/txgemma
南京大学报道 新闻 https://cs.nju.edu.cn/lm/en/post/2025-10-17-trialbench-scientific-data-2025/
DOI 持久标识 https://doi.org/10.1038/s41597-025-05680-8
CCS 编码 工具 https://hcup-us.ahrq.gov/toolssoftware/ccs10/ccs10.jsp

§9.2 BibTeX

@article{chen2025trialbench,
  title={TrialBench: Multi-Modal AI-Ready Datasets for Clinical Trial Prediction},
  author={Chen, Jintai and Hu, Yaojun and Cai, Mingchen and Lu, Yingzhou and Wang, Yue and Cao, Xu and Lin, Miao and Xu, Hongxia and Wu, Jian and Cao, Xiao and Sun, Jimeng and Li, Yuqiang and Glass, Lucas and Huang, Kexin and Zitnik, Marinka and Fu, Tianfan},
  journal={Scientific Data},
  volume={12},
  pages={1564},
  year={2025},
  publisher={Nature Publishing Group},
  doi={10.1038/s41597-025-05680-8}
}

@article{sun2022clinical,
  title={Why 90\% of clinical drug development fails and how to improve it?},
  author={Sun, Di and Gao, Wenhao and Hu, Hongxiang and Zhou, Shijun},
  journal={Acta Pharmaceutica Sinica B},
  volume={12},
  number={7},
  pages={30493062},
  year={2022}
}

@inproceedings{choi2017gram,
  title={GRAM: Graph-based Attention Model for Healthcare Representation Learning},
  author={Choi, Edward and Bahadori, Mohammad Taha and Song, Le and Stewart, Walter F and Sun, Jimeng},
  booktitle={KDD},
  pages={787795},
  year={2017}
}

@article{lee2020biobert,
  title={BioBERT: a pre-trained biomedical language representation model for biomedical text mining},
  author={Lee, Jinhyuk and Yoon, Wonjin and Kim, Sungdong and Kim, Donghyeon and Kim, Sunkyu and So, Chan Ho and Kang, Jaewoo},
  journal={Bioinformatics},
  volume={36},
  number={4},
  pages={12341240},
  year={2020}
}

§9.3 核心团队

成员 机构 角色
陈晋泰 (Jintai Chen) HKUST(GZ) AI Thrust 共同第一作者;项目设计
胡耀军 (Yaojun Hu) 浙江大学 共同第一作者;数据策展 + 模型开发
蔡明辰 (Mingchen Cai) HKUST(GZ) / 华南理工大学 数据策展
陆颖舟 (Yingzhou Lu) UIUC 模型验证
王越 (Yue Wang) 华南理工大学 数据策展 + 模型开发
曹旭 (Xu Cao) Stanford 论文撰写
孙继盟 (Jimeng Sun) Stanford 项目设计
Kexin Huang Harvard Medical School 论文撰写 + TDC 创建者
Marinka Zitnik Harvard 项目设计;图神经网络专家
Lucas Glass IQVIA 项目设计
符天凡 (Tianfan Fu) 南京大学 通讯作者;项目设计 + 模型开发

§10 AI 使用声明卡

§10.1 AI 模型使用

模型 版本 用途
Claude (Anthropic) Sonnet 4 Wiki 条目撰写、内容组织、代码示例
ChatGPT (OpenAI) GPT-4 数据集中失败原因分类和剂量提取(由 TrialBench 团队使用,非本 Wiki)
Web 搜索 TrialBench 论文、TxGemma、社区资源检索

§10.2 许可证摘要

组件 许可证 商业使用 修改
TrialBench 数据集 CC BY-NC-ND 4.0
TrialBench 代码 CC BY-NC-ND 4.0
ClinicalTrials.gov 原始 公共领域
本 Wiki 内容 千方医数集版权 联系授权 联系授权
  1. pip install trialbench 安装 Python 包
  2. 选择目标任务和 Phase(如 adverse_event / Phase 2
  3. load_data(task, phase) 加载数据
  4. 检查特征缺失情况,理解 5 种模态
  5. 选择模型(多模态基线 / XGBoost / LLM 微调)
  6. 按 80/20 划分训练/测试(或使用时间划分)
  7. 训练并评估(PR-AUC / F1 / ROC-AUC)
  8. 与官方基线对比,分析差距
  9. 如需 LLM 微调,参考 TxGemma Colab Notebook

§10.4 人工校验表

内容模块 审核者 审核方式 审核状态
§2 医学背景 千方病案医学编辑部 交叉审核 ✅ 已通过
§4 DAIMS 数据字典 千方病案医学编辑部 与论文 Table 2/3 交叉比对 ✅ 已验证
§6 代码示例 千方病案医学编辑部 逻辑审查 ✅ 已通过
§8 基准性能 千方病案医学编辑部 与论文 Table 6 交叉比对 ✅ 已验证
§3 数据规格 千方病案医学编辑部 与 Zenodo 数据集交叉比对 ✅ 已验证
§7 偏倚分析 千方病案医学编辑部 交叉审核 ✅ 已通过
§0 E-E-A-T 声明 千方病案医学编辑部 交叉审核 ✅ 已通过
JSON-LD 元数据 千方病案医学编辑部 结构化验证 ✅ 已验证

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

返回 AI-Ready 数据集