信息速览

PRISM — 池化条码肿瘤细胞系药敏数据集 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | PRISM Repurposing Dataset |
| 英文全称 | Profiling Relative Inhibition Simultaneously in Mixtures(PRISM 药物反应数据集) |
| 别名/简称 | PRISM、PRISM Repurposing、SIGMA Repurposing(DepMap 内名称) |
| 疾病分类 | 恶性肿瘤多种谱系体外模型(ICD-11:2C00-2F9Z 各系统恶性肿瘤,细胞系层面非患者诊断) |
| SNOMED CT | 不是临床诊断数据;语义上对应 363169005 Tumor cell line 与 363688007 Measurement of drug sensitivity (procedure) 研究语境 |
| 数据模态 | 肿瘤细胞系 × 化合物药敏定量(池化分子条码测活,log fold change 与剂量反应曲线) |
| AI 任务类型 | 药敏预测、药物重定位、生物标志物发现、剂量反应建模、药物反应分层、跨库一致性研究 |
| 样本总数 | 主筛 4,518 化合物 × 578 细胞系(Corsello 2020);二次筛 1,448 化合物 × 499 细胞系(后续 DepMap 版本持续扩充) |
| 数据大小 | 主筛 + 二次筛 CSV 合计约 900 MB(二次筛剂量反应参数单文件约 252.1 MB) |
| 数据格式 | CSV(矩阵与元数据,含 readme.txt) |
| 许可证 | 数据文件免费提供研究使用;ORCESTRA 重处理版为 CC BY 4.0 |
| 访问级别 | 开放(DepMap portal 直接下载,无需申请) |
| DUO 标签 | NRES(无人类受试者数据) |
| 语言 | 英文 |
| 首发日期 | 2016-02(Nat Biotechnol 方法论文)/ 2020-01(Nat Cancer Repurposing 数据集论文) |
| 最后更新 | 2026-03(DepMap 26Q1 随 portal 半年发布) |
| 发布机构 | Broad Institute of MIT and Harvard(Golub Lab / Cancer Dependency Map) |
| 官方主页 | https://depmap.org/repurposing/ |
| 下载地址 | https://depmap.org/repurposing/(主筛与二次筛全部 CSV) |
| DOI | 10.1038/s43018-019-0018-6(论文)/ 10.6084/m9.figshare.9393293(figshare 存档) |
| 引用次数 | 941+(Nat Cancer 论文,Google Scholar 截至 2026-09) |
| AI 就绪度评分 | ⭐⭐⭐⭐(4/5)— 官方提供处理好的 log fold change 矩阵与剂量反应参数、readme 详尽,可直接建模;扣分项:无官方 train/test 划分、数据随 DepMap 版本演进、矩阵稀疏且批效应需自行处理 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:千方病案医学编辑部交叉审核:§2 医学背景(肿瘤谱系与 ICD-11/SNOMED CT 语义映射、药物重定位临床意义)、§7 偏倚分析。
数据工程审核者:千方病案医学编辑部交叉审核:§4 DAIMS 数据字典(log fold change 矩阵、剂量反应参数、池化/处理信息)、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。PRISM 数据由 Broad Institute 通过 DepMap portal 免费提供研究使用,发布时未附加 DUA 门槛;若使用 ORCESTRA 重处理的 PharmacoSet(PRISM.rds),其适用 Creative Commons Attribution 4.0(CC BY 4.0)。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 📌 30 秒速览
这是什么? PRISM 是一套肿瘤细胞系的药物反应「体检报告」。Broad Institute 给几百条人类癌细胞系各贴一个 DNA「条形码」,把它们混合在一起养,再逐个加药,5 天后通过数条形码的相对多少判断哪些细胞系被某种药杀掉了、哪些活了下来。这样一瓶药就能同时测几百条细胞系的反应,效率比传统「一孔一细胞系」高一个数量级。最著名的一次发布测了 4,518 种药 × 578 条细胞系。
为什么重要? 过去大规模药筛要么药多细胞少(如 NCI-60 只有 60 条系),要么细胞多药少(如 GDSC 主要测肿瘤药)。PRISM 用池化把两头都做大,而且筛的绝大多数(77%)是非肿瘤药——结果发现相当多降血压、抗炎、戒酒的老药竟能选择性杀特定癌细胞,打开了「老药新用治肿瘤」的系统化路径。它是 Cancer Dependency Map(DepMap)里唯一一块大规模药理数据。
我能用它做什么? 最典型的是预测性建模:用细胞系的基因组/表达特征预测它对某种药是否敏感,进而提示潜在的适用患者群体;也可做药物重定位假设生成、生物标志物发现、与 CTRP/GDSC 的跨库一致性研究。数据是处理好的 log fold change 矩阵和剂量反应曲线参数(含 AUC),CSV 直接下载,适合直接喂给机器学习模型。
§1.1 摘要
PRISM(Profiling Relative Inhibition Simultaneously in Mixtures)由 Broad Institute Golub 团队提出,核心是用 24 核苷酸 DNA 条码标记每条肿瘤细胞系,将约 25 条细胞系按倍增时间分组池化培养于单孔。药物处理 5 天后裂解细胞,以 Luminex MagPlex Microsphere 定量各条码 mRNA 丰度,相对丰度变化即代表细胞活性变化,从而在单一培养环境里并行测定几百条细胞系对同一种化合物的反应(Yu 等,Nature Biotechnology 2016)。其方法学筛选在 102 条细胞系 × 8,400 化合物中验证了与单培养一致的杀伤模式,并由此发现 Aurora 激酶 B/C 特异性抑制剂 BRD-7880。
2019–2020 年 Corsello 等将平台放大到「Repurposing 数据集」:从 Broad 的 Drug Repurposing Hub 精选 4,518 种化合物(LC-MS 确认纯度 >75%),主筛对 578 条贴壁细胞系(覆盖 24 种肿瘤类型)做 2.5 μM 单剂量三重复测活;1,448 个初筛阳性化合物再进入 499 条细胞系的 8 点 4 倍梯度剂量反应(10 μM 起始)。约 77% 的受筛化合物原为非肿瘤适应症,其中 774 个(占复筛阳性 53%)显示出细胞杀伤——揭示非肿瘤药存在此前被低估的抗癌活性。数据经 Cancer Dependency Map portal 与 figshare 免费发布,并随 DepMap 半年发布周期持续扩充(后续主筛已增至约 6,790 化合物、数百条细胞系)。
§1.1b 关键数字速查(来自本百科各章)
| 指标 | 数值 | 出处章节 |
|---|---|---|
| Repurposing 主筛规模 | 4,518 化合物 × 578 细胞系 | §1.1 / §3.2 |
| 主筛剂量 | 2.5 μM 单剂量、三重复 | §1.1 |
| 二次筛规模 | 1,448 化合物 × 499 细胞系、8 点 4 倍稀释 | §1.1 |
| 非肿瘤化合物占比 | 约 77%(3,466/4,518) | §4.3 |
| 复筛活性中非肿瘤药占比 | 约 53%(774/1,448) | §4.3 |
| 方法学首秀 | 102 细胞系 × 8,400 化合物(Yu 2016) | §1.4 |
| 跨库一致性 | PRISM-GDSC 0.60、PRISM-CTD2 0.61 | §2.6 / §7.8 |
| 主论文引用 | 941+(Google Scholar,截至 2026-09) | §1 标题下 |
| 二次筛剂量反应文件 | 约 252.1 MB(dose-response-curve-parameters.csv) | §3.3 |
这些数字是全书反复引用的锚点。需要留意的是「主筛 4,518」是 Corsello 2020 论文配套的固定版本;若你用 DepMap 最新发布的数据,主筛规模已随版本演进到约 6,790 化合物(§3.2),两者不冲突但不可混用为同一版本结论。
§1.2 战略价值
维 1:药物重定位的规模化引擎。 PRISM 与 CTRP、GDSC 的本质差异在于化学空间的宽度——它测的大多数是已获批/在研的既有药物,而非新肿瘤化合物。这使得老药(双硫仑、替泊沙林、多种抗炎与代谢药)的潜在抗肿瘤用途第一次被系统化扫描而非靠运气发现。对制药与学术界而言,它把「从靶点到候选药」的发现逻辑反转成「从已验证人体安全性出发找新适应症」,显著压缩临床转化的时间与风险。
维 2:药敏-基因组桥梁(精密肿瘤学前端)。 PRISM 细胞系库与 DepMap 的 CRISPR 依赖、转录组、突变、拷贝数数据深度整合(同源 DepMap_ID),使研究者能在同一批模型上把「药物敏感性」与「基因依赖性」对齐。Corsello 等证明多数活性化合物的杀伤可用细胞系的谱系、拷贝数、功能损伤突变与甲基化等基线特征预测,据此可为特定分子亚型指出可能获益的患者群体——这是从体外筛选走向临床假设的关键一步。
维 3:作为 DepMap 生态「药理支柱」的方法学资产。 PRISM 的意义还在于它示范了「池化条码」如何打破药筛的成本瓶颈——以约 25 条系一孔代替「一系一孔」,化合物与细胞系的交叉乘积实验量被压缩一两个数量级,使「把整本药典拿来系统扫描抗癌活性」第一次在工程上可行。该平台已被工业界复用并扩展(如 BMS-PRISM 加入 CRISPR 敲除能力),成为新一代多组学 × 多药高维筛选的范式参考。对方法学与基础设施研究团队,PRISM 既是可分析的数据源,也是可学习的实验设计蓝本。
§1.3 同类数据集横向对比
| 数据集 | 化合物 × 细胞系 | 技术 | 化学空间 | 剂量反应 | 与 PRISM 的差异化 |
|---|---|---|---|---|---|
| PRISM Repurposing | 4,518 × 578(初筛)/ 持续扩充 | DNA 条码池化测活 | 含 77% 非肿瘤药 | 复筛 8 点 | 同时覆盖「多药多系」,主打老药重定位 |
| NCI-60 | ~50,000 × 60 | 单培养(SRB 显色) | 广谱化合物库 | 5 剂量 | 细胞系少、谱系窄,仅 60 系 |
| GDSC(Sanger) | ~1,000 × ~1,000 | 单培养 | 偏肿瘤药 | 多剂量 | 细胞系多但主要肿瘤药,跨库可与 PRISM 对比 |
| CTRP/CTD2(Broad) | ~545 × ~900 | 单培养 | 偏肿瘤药 | 16 点 | 与 PRISM 同源 Broad,测活方式不同(3 天 vs 5 天) |
| CCLE 药理 | 24 抗癌药 × 504 系 | 单培养 | 仅 24 药 | 剂量反应 | 规模小,深挖单药 |
§1.4 版本时间轴
| 时间 | 版本/事件 | 规模与说明 |
|---|---|---|
| 2016-02 | Nat Biotechnol 方法论文(Yu 等) | PRISM 方法首秀:102 细胞系 × 8,400 化合物,发现 BRD-7880 |
| 2019-04 | 预印本发布(bioRxiv 730119) | Corsello Repurposing 数据集初稿,4,518 化合物 × 578 细胞系 |
| 2019 秋 | DepMap 19Q4 数据发布 | Repurposing 初筛数据在 DepMap portal 上线 |
| 2020-01 | Nat Cancer 论文(Corsello 等) | 正式发布 4,518 × 578 主筛 + 1,448 × 499 二次筛;figshare 9393293 存档 |
| 2020 至今 | DepMap 半年发布(20Q*-26Q1) | PRISM 数据随 DepMap 持续扩充,主筛化合物增至约 6,790、细胞系覆盖数百条 |
§1.5 典型应用场景
- 药物重定位假设生成:从 774 个原非肿瘤适应症的活性化合物出发,结合杀伤谱与 MOA 聚类,筛选候选老药做后续体内/机制验证。
- 药敏预测与生物标志物:用细胞系分子特征训练模型预测敏感性,识别驱动敏感/耐药的基因特征(如双硫仑-金属硫蛋白)。
- 跨库一致性验证:将 PRISM 与 CTRP/GDSC 共有化合物-细胞系配对做相关分析,评估各自测活平台的可靠性。
- 剂量反应与选择性评分:基于二次筛剂量反应曲线计算 AUC/选择性指标,挑选「高效且选择性杀伤」的先导化合物。
- 方法学基准:作为池化测活参照,评估新药筛平台(如 BMS-PRISM)相对传统单培养的差异。
§1.5b 适合与不适合用 PRISM 的场景清单
| 问题类型 | 适合? | 说明 |
|---|---|---|
| 「这个老药对哪类癌细胞更可能有效?」 | ✅ | 药敏景观 + 谱系分层扫描 |
| 「什么分子特征解释敏感/耐药?」 | ✅ | 结合 DepMap omics 做生物标志物 |
| 「给新化合物找适应证」 | ✅ 弱 | 需先在二次筛得剂量反应,再做体内验证 |
| 「预测真实患者疗效」 | ❌ | 细胞系 ≠ 患者,需临床验证 |
| 「比较不同 assay 平台结果」 | ✅ | 与 CTRP/GDSC 共有点做对照 |
| 「直接决定临床用药剂量」 | ❌ | 体外浓度无药代参考,严禁直接换算 |
| 「复现某篇 PRISM 论文」 | ✅ | 锁定论文配套版本(figshare/19Q4) |
这一判断列表的核心:PRISM 是体外假设生成与机制研究工具,而不是临床疗效证据。把它当作高通量「假设泵」而非「证据终点」,就能避开绝大多数误用。
§1.6 术语速查表
| 术语 | 含义 |
|---|---|
| PRISM | Profiling Relative Inhibition Simultaneously in Mixtures(混合中同时相对抑制检测) |
| 池化测活 | 把多条细胞系混于单孔并行处理,用条码区分个体反应 |
| 分子条码 / barcode | 24 核苷酸 DNA 序列,标记并区分每条细胞系 |
| log fold change | 相对 DMSO 对照的 log2 活性变化(负值 = 处理组减少) |
| 主筛 / primary | 初筛:4,518 化合物单剂量 2.5 μM |
| 二次筛 / secondary | 复筛:1,448 化合物 8 点剂量反应 |
| AUC | 剂量反应曲线下面积(衡量药效强度×广度) |
| Drug Repurposing Hub | Broad 的既有药物/工具化合物库(PRISM 化合物来源) |
| DepMap_ID | Broad 细胞系的统一标识,用于关联 omics |
| broad_id | Broad 化合物的统一标识 |
| SSMD | 严格标准化均值差,QC 中衡量正负对照分离 |
| MFI | 中位荧光强度,条码定量原始读出 |
| ComBat | 用于校正池化/批次伪影的统计方法 |
| MOA | mechanism of action,作用机制 |
§2 医学背景
§2.1 ICD-11 语义映射
PRISM 是体外细胞系药敏数据,不含患者诊断。下面用 ICD-11 恶性肿瘤谱系给出其覆盖的肿瘤大类作语义参考(非诊断编码):
| 覆盖谱系(PRISM 细胞系库) | ICD-11 编码 | 中文 |
|---|---|---|
| 肺癌(NSCLC/SCLC) | 2C25 / 2C22 | 支气管或肺恶性肿瘤 |
| 乳腺癌 | 2C60-2C65 | 乳腺恶性肿瘤 |
| 结直肠癌 | 2B90-2B92 | 结肠、直肠恶性肿瘤 |
| 黑色素瘤 | 2C30 | 黑色素瘤 |
| 白血病/淋巴瘤(液体系) | 2A60 / 2B33 | 髓系肿瘤 / 淋巴瘤 |
| 卵巢/子宫(妇科) | 2C73 / 2C76 | 卵巢、子宫恶性肿瘤 |
| 多谱系总括 | 2C00-2F9Z | 各系统恶性肿瘤 |
§2.1b SNOMED CT 语义映射
| 标签 | ICD-11 | SNOMED CT 码 | 术语 |
|---|---|---|---|
| 肿瘤细胞系 | 2C00-2F9Z | 363169005 | Tumor cell line(体外模型概念) |
| 药物敏感性测量 | — | 363688007 | Measurement of drug sensitivity(procedure) |
| 药物基因组学 | — | 782964000 | Pharmacogenomics |
| 抗肿瘤药物 | — | 706899005 | Antineoplastic agent |
§2.2 疾病简介与流行病学
恶性肿瘤是全球主要死因之一,但这里要澄清:PRISM 不提供任何患者流行病学数据。它的价值在药物研发上游——用覆盖多种肿瘤谱系的体外细胞系模型替代患者肿瘤组织,先回答「哪些已上市/在研药物对哪些分子亚型的癌细胞有效」,再指导后续临床假设。这种「细胞系为先导、患者为终点」的范式来自精准肿瘤学的现实约束:可供系统化、大规模、可重复测试的临床样本太少,而永生化细胞系搭配基因组注释则能提供与真实肿瘤共享部分驱动事件的高通量代理。因此 PRISM 的意义不是描述疾病流行,而是搭建「肿瘤分子多样性 ↔ 药敏」之间的桥梁,其局限正是细胞系无法完整复现真实肿瘤的微环境、免疫与药代背景。
§2.3 临床任务定义
PRISM 不直接对应临床筛查/诊断/分级任务,而是服务药物研发与转化研究的下游任务链:
| 研究任务 | 定义 | 用到的 PRISM 字段 |
|---|---|---|
| 药敏分层 | 将某化合物对多条细胞系的反应划分为敏感/耐受 | log fold change / AUC |
| 敏感性预测 | 由细胞系分子特征预测其对化合物是否敏感 | 特征 + 标签(AUC/lfc) |
| 药物重定位候选筛选 | 识别对特定谱系选择性杀伤的既有药物 | 剂量反应曲线 + 选择性指标 |
| 生物标志物发现 | 寻找能解释敏感差异的基因/通路特征 | 标签 + DepMap omics |
| 跨平台一致性评估 | 对比 PRISM 与 CTRP/GDSC 结果 | 共有化合物-细胞系配对反应 |
§2.3b 数据不直接回答的问题
与「适合什么」同样重要的是「别拿它回答什么」:PRISM 不能用于估算某癌种的真实患病率、患者预后或生存率(无临床结局);不能用于判断某药在真实人体内的疗效或毒性(无药代/毒理);不能替代患者来源的组织学、分期或耐药状态的临床判断。它回答的是「在受控的体外培养里,哪些细胞系对哪些化合物敏感,且这种敏感可否由分子特征预测」这一收窄但可重复的问题。把「体外敏感」严格表述为「体外敏感」,而非「对患者有效」,是保持研究科学严谨的第一原则。
§2.4 模型人群表
| 属性 | 说明 |
|---|---|
| 来源 | Broad Institute 肿瘤细胞系库(贴壁为主)+ Drug Repurposing Hub 化合物库 |
| 采集时间 | 平台 2016 年建立;Repurposing 数据 2019-2026 持续发布 |
| 细胞系数 | 原主筛 578 条(24 种肿瘤类型);后续 DepMap 版本扩充至数百条不等(446–898 区间视版本) |
| 化合物数 | 原主筛 4,518;复筛 1,448;后续扩充约 6,790 |
| 年龄/性别/种族 | 不适用——非患者数据,无人口学属性 |
| 「就医类型」 | 不适用——体外细胞系,非临床样本 |
§2.5 临床价值
PRISM 的转化价值在于把「偶然的老药抗癌发现」变成「系统性扫描」:774 个非肿瘤药(占复筛活性 53%)具有细胞杀伤活性,其中 91 个药物在 625 nM 或更低浓度即杀死至少 1% 的细胞系,提示存在高效且有潜力的非肿瘤药可作为抗肿瘤先导。作者进一步用机制验证把表型与靶点挂钩(PDE3A-SLFN12、SLC26A2 硫酸盐转运、ABCB1 等),为后续走向体内与临床提供了具体假说。作为 DepMap 的药理支柱,PRISM 让研究者把「基因依赖」与「药物敏感」映射到同一批模型,加速靶点-药物联动的转化研究。
§2.5b 剂量与「活性」在临床转化语境下的含义
体外活性数字要翻译成临床意义,需要警惕浓度与实际暴露的差距。PRISM 主筛固定 2.5 μM、二次筛从 10 μM 起 4 倍稀释到皮摩尔级,这些是体外培养浓度,不代表人体组织暴露浓度。一个在 625 nM 就能杀死 ≥1% 细胞系的非肿瘤药之所以被强调「高效」,是因为该量级更接近口服药人体可达到的血浆浓度范围,从而比「仅在 10 μM 才起效」的化合物更有成药转化潜力。因此解读时应把「杀伤浓度」与「已知人体暴露/靶点占有率」对照——这正是药物重定位候选初筛后必须回到药代与临床数据复核的原因,也解释了为什么 PRISM 只适合做「候选生成」而非「疗效断言」。
§2.6 金标准表
| 划分 | 标注方式 | 标注者 | 性质 |
|---|---|---|---|
| 初筛单剂量测活 | 自动定量(mRNA 条码丰度 → log fold change) | Luminex 仪器 + Broad 内部流水线 | 定量,含三次重复 |
| 二次筛 8 点剂量反应 | 自动拟合曲线,输出 AUC 等参数 | 机器拟合 + QC(SSMD 控制分离) | 定量连续值 |
| 与 GDSC/CTD2 的一致性对照 | 跨库相关分析 | Corsello 等论文作者 | 参考基准(Pearson 0.60-0.61) |
§2.6b 从谱系到分子的覆盖解读
PRISM 的 578 条贴壁细胞系按肿瘤类型归类(论文 Extended Data 中展示约 23–24 种谱系,代表性大系包括肺癌、乳腺癌、结直肠癌、卵巢癌、黑色素瘤、部分血液学细胞系等)。这张「谱系地图」决定了一个事实:药敏结论的可迁移范围以所覆盖谱系为上限。例如,若某一化合物只对库中的结直肠癌系表现选择性强杀伤,那么它最值得进一步验证的方向就是结直肠癌,而非「泛癌」——除非后续有独立的泛谱系证据。反过来说,PRISM 的最大价值不是证明某个药「对癌有效」,而是在分子层面(突变、拷贝数、表达、甲基化)把「为什么某些细胞被杀、另一些不死」这一可学习的规律暴露给算法与人类研究者。理解这一点,是正确使用这份数据避免过度外推的第一步:把它读成「一批经过分子标注的体外可筛样本」而非「一种疾病的疗效档案」。
§2.6c 测活终点与生物解释
PRISM 的测活终点是相对增殖/存活(5 天处理后的条码丰度相对 DMSO),因此它衡量的是「生长抑制 + 直接杀伤」的复合效应,而非单剂量药代或靶点结合。论文中以 mRNA 条码而非基因组 DNA 条码为读出,反映的是活细胞的转录本丰度,对处理后的存活细胞数较敏感。这一点对解释 log fold change 的含义很关键:大幅负值代表处理组该细胞系明显减少(被杀或被强烈抑制),接近零代表基本不受影响;正值(某些细胞系在池中相对增多)在池化竞争背景下可能不代表真正增殖优势,需谨慎解读。因此,把 PRISM 值当作「选择性细胞毒性」的下游代理时,宜结合二次筛剂量反应与正交验证,而非单独依赖单一 log fold change 下生物学结论。
§3 数据集规格
§3.0 版本抉择矩阵
| 你的需求 | 推荐来源 | 规模/大小 | 理由 |
|---|---|---|---|
| 复现 Corsello 2020 论文、做 4,518 化合物全景 | DepMap repurposing 主筛 CSV(论文匹配版) | 主筛 4,518 × 578,文件几十 MB 级 | 与论文/figshare 存档一致,注释完备 |
| 高质量剂量反应、AUC、机制聚类 | DepMap 二次筛 dose-response-curve-parameters.csv | 252.1 MB | 8 点曲线拟合参数,论文与后续工具的主要输入 |
| 随 DepMap 最新、覆盖最全 | DepMap portal「Custom Downloads」最新版 | 主筛已约 6,790 化合物 | 覆盖更广但批次/版本会漂移,需记录版本号 |
| 跨库整合、统一 PSet 结构(R 生态) | Zenodo ORCESTRA PharmacoSet(PRISM.rds) | 85.5 MB | Haibe-Kains 实验室重处理,对齐 CTRP/GDSC,CC BY 4.0 |
选版决策建议:若目标是「可复现、可与他人的 PRISM 论文比较」,选论文配套固定版(行 1/行 2);若目标是「用最新、覆盖面最广的数据训练模型并接受版本演进」,选最新 DepMap 版(行 3)但务必记录版本;若主线是「跨 CTRP/GDSC/PRISM 的整合药理分析」,选 ORCESTRA PSet(行 4)能省去大量 ID/度量对齐工作。最忌讳的是:一开始用最新版、分析途中混入论文版、或反过来——请先在代码/文档里写死选哪个版本。
§3.1 模态详情
| 模态 | 说明 |
|---|---|
| 药敏定量(主筛) | 每化合物单剂量 2.5 μM,对池中每条细胞系的 log fold change(相对 DMSO) |
| 药敏定量(二次筛) | 活性化合物 8 点 4 倍梯度(10 μM 起始),剂量反应曲线参数(AUC 等) |
| 原始荧光 | MFI(Median Fluorescence Intensity)中间产物,log2 后用于复算 |
| 元数据 | 细胞系信息、池化信息、处理(treatment)信息、readme |
| 关联组学(非本数据集内) | 同源 DepMap 转录组/突变/拷贝数/CRISPR 依赖,通过 DepMap_ID 关联 |
§3.1b 实验协议与批次结构
PRISM 数据在官方描述中明确提示其来自「SIGMA Repurposing 发布」,由 Broad Repurposing Library 化合物与 PRISM 多路复用测活平台共同产生。理解批次结构有助于分析时正确分组:
| 环节 | 批次/分组维度 | 作用 |
|---|---|---|
| 屏幕(screen) | HTS、HTS002、MTS004、MTS005、MTS006 等 | 不同批次的测活运行,含不同细胞系/化合物子集 |
| 化合物板 | 每 compound plate 覆盖一次处理 | 供所有该条件的重复共享,消除加样差异 |
| 重复处理 | replicate treatment(最多 3 板) | 提供重复性估计 |
| 池(pool) | 约 25 细胞系/孔 | 池内竞争是潜在协变量 |
| 检测板 | 同一 compound plate 的检测孔聚成 3/6 个 detection plate | 跨板折叠对象 |
论文特别指出:不同屏幕的细胞系集合、化合物集合与剂量方案并不完全一致——例如 HTS/HTS002 用 pin transfer 加药,而 MTS004/005/006 采用声学滴注到 assay-ready 板;较新的屏幕还加入 10 个对照条码(control barcodes)用于孔内归一。这些工程差异意味着合并不同屏幕做联合分析前,必须先按 screen 分组做覆盖与分布诊断,不能把不同批次的稀疏矩阵简单拼接后当作同一实验整体训练。
§3.2 按子集规模
| 子集 | 化合物 | 细胞系 | 数据点形态 |
|---|---|---|---|
| 初筛(primary) | 4,518 | 578 或 562 | 稀疏 log fold change 矩阵 + MFI |
| 复筛(secondary) | 1,448 | 499 | 8 点剂量反应 + 曲线参数(AUC) |
| 方法学演示(Yu 2016) | 8,400 | 102 | 池化测活(历史,未完整重发布于 DepMap) |
| 后续扩充主筛 | ~6,790 | 446–898(版本相关) | DepMap 更新叠加的新测活 |
§3.3 格式
| 文件 | 类型 | 说明 |
|---|---|---|
| *-logfold-change.csv | CSV 矩阵 | 行 = 处理(treatment),列 = 细胞系,值 = log fold change |
| *-replicate-collapsed-logfold-change.csv | CSV 矩阵 | 三重复折叠后的 log fold change(官方主用文件) |
| *-mfi.csv | CSV 矩阵 | 荧光原始值 |
| *-dose-response-curve-parameters.csv | CSV 长表 | 复筛曲线拟合参数(AUC 等),约 252.1 MB |
| *-cell-line-info.csv / pooling-info.csv / treatment-info.csv | CSV 元数据 | 细胞系、池、处理条件对应关系 |
| readme.txt | 纯文本 | 数据处理步骤说明 |
| Corsello_supplemental_tables.xlsx | Excel | 论文补充表(化合物注释、MOA 等) |
§3.4 存储大小
主筛与二次筛的 CSV 合计约 900 MB:其中二次筛 dose-response-curve-parameters.csv 约 252.1 MB、logfold-change.csv 约 226.6 MB、mfi.csv 约 161.1 MB、replicate-collapsed-logfold-change.csv 约 87.4 MB;主筛 logfold-change.csv 约 107.7 MB、primary-mfi.csv 约 64.4 MB、replicate-collapsed-logfold-change.csv 约 39.3 MB。解压后若叠加元数据与本地处理副本建议预留 2–3 GB。
内存预估:以二次筛 dose-response 长表(252.1 MB CSV)为例,pandas 读入后内存占用通常放大 2–3 倍(字符串列、缺失值 mask),实际常需 0.6–1 GB;若进一步 melt 或 merge 大量元数据可能到数 GB。主筛宽矩阵(化合物 × 细胞系,双精度 float)约 4,518 × 600 × 8 B ≈ 22 MB 本体,但 read_csv 时文本解析会临时占用更多。结论:单机 8–16 GB 足够绝大多数单库任务,内存紧张时用 dtype 指定类型、分块读取(chunksize)或直接以 pyarrow/parquet 落盘缓存。
§3.5 标注方式
药敏反应全部为仪器自动定量,无人工标注:Luminex 读出条码荧光后,Broad 流水线计算 MFI → log2 → 每孔以对照条码中位正常化 → DMSO 归一 → 用 ComBat 校正池化伪影得 log fold change → 在 1–3 个独立处理板中折叠。二次筛进一步对 8 点剂量拟合曲线并计算参数。QC 上,对每细胞系-板组合以 SSMD(strictly standardized mean difference)评估正负对照分离,SSMD < 2 的组合被剔除。
§3.5b 官方数据处理流水线逐级拆解
理解 PRISM 的 log fold change 如何产生,对正确解读数值至关重要。官方 readme 与论文 Extended Data 展示了从荧光到最终矩阵的步骤链:
- MFI 计算:对每个 replicate-condition-cell line 组合,由荧光值计算中位荧光强度(Median Fluorescence Intensity, MFI)并做 log2 变换。
- 孔内正常化:以同一 assay plate 内对应位置的 DMSO 或对照条码中位对 log MFI 做归一,消除加样/读出偏差。
- 鲁棒 z-score 过滤:计算鲁棒 z-score,剔除 |z| > 5 的异常 assay plate well。
- 控制分离 QC:对每条细胞系在每个 assay plate 上计算正负对照间的 SSMD;SSMD < 2 的「细胞系 × 板」组合因对照分离差被剔除(这就是矩阵稀疏的来源之一)。
- DMSO 归一 + ComBat 批校正:数据相对 DMSO 归一,并用 ComBat 校正池化伪影(不同池、不同批次间的系统差),得到 log fold change。
- 跨板折叠:同一屏幕内 1–3 块独立处理板取中位折叠,得到
replicate-collapsed-logfold-change(官方推荐用于分析的主用矩阵)。
这条链路意味着使用者拿到的已经是「批校正后的折叠值」,但不代表完全无批效应(跨 DepMap 发布版本的差异仍需自行处理)。若你需要原始可追溯量(如重算 QC 或做自定义批校正),应回溯到 *-mfi.csv 与 *-logfold-change.csv(未折叠版本)。
§3.6 标注者资质与一致性
数据不依赖人工判读,一致性主要来自重复性与平台 QC。论文报告 PRISM 与 GDSC/CTD2 在 84 共有化合物 × 中位 236 细胞系、16,650 共享数据点上的 Pearson 相关为 0.60/0.61,与 GDSC–CTD2 之间(0.62)相当,说明不同 assay 平台总体可比。但在单化合物剂量反应水平,PRISM 车辆对照标准误更高、噪声略大,归因于更长培养(5 天)、每系细胞数更少与池化竞争。
§3.7 采集周期
平台于 2015 年前后构建条码化细胞系库;Repurposing 主筛数据约 2016–2019 年间测定,2019 年 19Q4 起上线 DepMap,2020 年随论文正式发布,此后由 DepMap 按半年发布周期增量扩充(截至 2026-03 的 26Q1 仍在更新)。需注意不同 DepMap 版本间的 PRISM 数据范围并不相同。
§3.8 地域覆盖
数据在 Broad Institute(美国马萨诸塞州剑桥)产生,属于体外细胞系筛选,无患者地域覆盖含义。细胞系来源传统上以欧美公共细胞系库(ATCC、DSMZ 等)为主,种族多样性的代表性与公共细胞系库一致、天然受限。
§3.9 设备规格
| 环节 | 设备/工具 |
|---|---|
| 条码导入 | 慢病毒载体 + blasticidin 选择 |
| 池化处理 | 细胞按倍增时间分组约 25 条/池,化合物 pin transfer 或声学滴注到 assay-ready 板 |
| 读出 | Luminex FLEXMAP 3D / MagPlex Microsphere |
| 谱系 | 高内涵筛选(HTS)与后续 MTS 屏幕若干批次 |
§3.9b 读数原理与 QC 的工程意义
理解读数机制能帮你在遇到异常值时不慌。PRISM 不是直接数细胞,而是:处理结束时裂解池内细胞 → 对条码区域 PCR 扩增(其中一条引物生物素化)→ 扩增产物与包被反义条码的微珠杂交 → 链霉亲和素-藻红蛋白标记 → Luminex 按微珠编码读出荧光。因此每个细胞系的读出实际是「该系存活的 mRNA 条码信号」,仪器层面的中位荧光(MFI)经 log2 后进入官方流水线。
工程上要注意三点:
- 信号动态范围:池内任一细胞系若增殖极快/极慢,其条码占比可能长期被其他系压制,导致该系对「不杀伤」的化合物也显示负 log fold change——这就是为什么官方要做「池内归一到 DMSO」并用 ComBat 校正池化伪影。
- 控制条码:较新屏幕(如 HTS002/MTS005/MTS006)在每个检测孔打入 10 个对照条码用于归一,读到含 control-barcode 标记的文件时,勿把对照条码当细胞系纳入分析。
- QC 过滤的现实后果:官方按 SSMD < 2 剔除对照分离差的「细胞系 × 板」组合,结果就是同一细胞系在部分屏幕有值、在另一批没有。做纵向或跨屏幕分析前,先确认目标细胞系在你要合并的批次里都「有值且有良好 QC」,否则合并出的缺失可能是 QC 剔除而非实验未测。
§3.10 深度溯源链
PRISM 源自 Cancer Dependency Map 的 BROAD 大筛;Repurposing 化合物取自 Broad Drug Repurposing Hub(约 3,350 个已获批/临床开发中 + 1,168 个工具化合物),身份与纯度经 LC-MS 确认(>75%)。细胞系谱系注释对接 CCLE/DepMap 的标准化 ID。数据在论文(Nat Cancer 2020)与 figshare(10.6084/m9.figshare.9393293,另有 10.6084/m9.figshare.10277810)双重存档,并经 Haibe-Kains 实验室以 ORCESTRA 流程重处理成跨库对齐的 PRISM.rds 供药理学工具链(pharmacoGX)使用。
§4 数据结构
§4.0 目录树
以下为从 DepMap repurposing 下载页解压/组织后的逻辑视图(各文件独立下载,官方无统一压缩包):
prism-depmap-repurposing/
├── primary/
│ ├── primary-screen-readme.txt # 5.8 KB 数据说明
│ ├── primary-screen-cell-line-info.csv # 45.8 KB 细胞系注释
│ ├── primary-screen-pooling-info.csv # 147.7 KB 池化信息
│ ├── primary-screen-logfold-change.csv # 107.7 MB 未折叠 log fold change
│ ├── primary-screen-primary-mfi.csv # 64.4 MB 荧光
│ ├── primary-screen-replicate-collapsed-logfold-change.csv # 39.3 MB ★官方主用
│ ├── primary-screen-replicate-collapsed-treatment-info.csv # 1.1 MB
│ └── primary-screen-replicate-treatment-info.csv # 4.9 MB
├── secondary/
│ ├── secondary-screen-readme.txt # 7.5 KB
│ ├── secondary-screen-cell-line-info.csv # 40.0 KB
│ ├── secondary-screen-pooling-info.csv # 258.5 KB
│ ├── secondary-screen-dose-response-curve-parameters.csv # 252.1 MB ★AUC等
│ ├── secondary-screen-logfold-change.csv # 226.6 MB
│ ├── secondary-screen-mfi.csv # 161.1 MB
│ ├── secondary-screen-replicate-collapsed-logfold-change.csv # 87.4 MB
│ ├── secondary-screen-replicate-collapsed-treatment-info.csv # 3.6 MB
│ └── secondary-screen-replicate-treatment-info.csv # 15.0 MB
└── PRISM_SOP_Supplemental_Materials.pdf # 1 MB 操作流程
§4.1 DAIMS 字段字典
以官方主用的 *-replicate-collapsed-logfold-change.csv(宽矩阵)与二次筛 dose-response-curve-parameters.csv(长表)为主:
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失 | 取值范围 |
|---|---|---|---|---|---|---|---|
| broad_id | Text | Broad 化合物标识 | BRD-K51847010 | 化合物主键 | 低 | 无 | 库内唯一 |
| name(列头,宽矩阵) | Text | 细胞系名,矩阵列为各细胞系 | A549_LUNG | 药敏标签轴 | 低 | 有(稀疏) | DepMap 细胞系 |
| log fold change(值) | Float | DMSO 归一 log2 活性比 | -0.86 | 回归标签 | 中(池化噪声) | 稀疏缺失 | 一般 ±5 内 |
| cell_id | Text | 条码化细胞系标识(DepMap_ID) | ACH-000001 | 关联 omics 键 | 低 | 无 | DepMap_ID |
| profile_id | Text | 谱系/批内处理标识 | P003 | 追踪重复 | 低 | 无 | — |
| auc(二次筛) | Float | 剂量反应曲线下面积 | 0.32 | 灵敏度/选择性 | 中 | 部分 | 0–1 附近 |
| ic50 / ec50 | Float | 半抑制/半效浓度 | 2.4e-06 | 药效强度 | 中 | 部分 | 连续 |
| 剂量点(log fold change 列) | Float | 各浓度下活性 | — | 剂量反应建模 | 中 | 有 | — |
| pool_id | Text | 细胞系所在池 | pool_17 | 去批效应 | 低 | 无 | — |
§4.1b 把宽矩阵映射为长表的示例
官方折叠矩阵是 wide(行 = 化合物,列 = 细胞系),而多数建模与统计工具需要 long(每行一个观测)。把 wide 正确转 long 并保留覆盖信息,能同时获得标签与缺失掩码:
import pandas as pd
wide = pd.read_csv("data/primary-screen-replicate-collapsed-logfold-change.csv", index_col=0)
# wide.index 名通常为该矩阵首列标识;此处以 row_label 统一后 melt
wide.index.name = "compound"
long = wide.reset_index().melt(id_vars="compound",
var_name="cellline", value_name="lfc")
# 生成缺失掩码:观测是否存在(供补全/诊断用)
long["observed"] = long["lfc"].notna().astype(int)
# 保留有效观测用于回归/分类
obs = long.dropna(subset=["lfc"]).copy()
print("观测(compound,cellline,value)行数:", len(obs))
print("覆盖率: %.3f" % (obs.shape[0] / long.shape[0]))
print("样本 log fold change 分布: 中位=%.3f, 5%%/95%%=%.3f/%.3f"
% (obs["lfc"].median(),
obs["lfc"].quantile(0.05), obs["lfc"].quantile(0.95)))
提示:行名(compound 标识)可能是
broad_id,也可能是该矩阵独有的name或组合键。首次接触文件时先打印wide.index[:3]与wide.columns[:3]确认键形态,再决定id_vars与后续 join 键,避免把两种不同键当同一个用。
§4.2 标签分布
PRISM 的「标签」是连续的 log fold change / AUC,并非离散类别。分布上多数化合物对多数细胞系无强杀伤(log fold change 集中在 0 附近),少数化合物表现出谱系选择性。论文用**双峰系数(bimodality coefficient)**刻画化合物的选择性:非肿瘤药平均双峰性低于肿瘤药,但最选择性的化合物中也包含非肿瘤药。若自行二值化(如设 log fold change ≤ −1 为「敏感」,参考 FDA 获批药如 vemurafenib/gefitinib 的对照确定阈值),需说明阈值依据并评估对特异度/灵敏度的影响。
§4.3 关键统计
| 统计 | 数值 |
|---|---|
| 原主筛化合物 × 细胞系 | 4,518 × 578(贴壁) |
| 主筛剂量 | 2.5 μM 单剂量,三次重复 |
| 复筛化合物 × 细胞系 | 1,448 × 499 |
| 复筛剂量点 | 8 点,4 倍梯度,10 μM 起始 |
| 非肿瘤化合物占比 | 4,518 中 3,466(约 77%) |
| 复筛活性中非肿瘤药占比 | 774/1,448(约 53%) |
| 高效非肿瘤药(≤625 nM 杀 ≥1% 系) | 91 个 |
| 与 GDSC/CTD2 一致性 | Pearson 0.60 / 0.61 |
§4.3b 数值解读刻度
读懂 log fold change 需要一把「量尺」:值越负代表该化合物对该细胞系越有效(处理组细胞大幅减少)。论文及相关社区通常把约 −1(即 2 倍减少)作为一个经验阈值附近开始认为「值得关注」,更严格的选择性研究会在更低值(如 −2 附近)才判定强效且具谱系选择性。但要注意——这个量级本身受池化竞争、培养时长与 QC 影响,跨库(GDSC/CTRP)直接用同一个 log fold change 数值阈值并不稳妥。二次筛给出的 AUC 则是把 8 个剂量的反应压成一个曲线下面积,量纲类似「药效强度 × 广度」的复合指标;AUC 数值越小通常代表越敏感,但各 fit 管线的 AUC 口径(FullAUC vs TruncAUC)不同,见 §6.5 坑点 1 与坑点 5。始终在解读前确认你所取的 AUC/log fold change 文件的具体定义与单位。
§4.4 数据层级
谱系/批次(screen, 如 HTS/MTS004…)
└── 化合物板(treatment/compound plate)
└── 重复处理孔(replicate treatment)→ 折叠
└── 池(pool,约 25 细胞系/孔)
└── 细胞系(cell line,DepMap_ID)→ 药敏值
层级关键是理解 log fold change 是「化合物 × 池内单系」在折叠后的相对值,池内竞争与批次是潜在协变量。
§4.4b 层级在分析中的实际含义
这一层级对两类操作有直接影响:
- 重复性估计:如果你要估计一个 (化合物, 细胞系) 反应的测量误差,官方折叠文件已把重复板合并,只剩一份值。要拿真实重复,须回溯未折叠的
*-logfold-change.csv或*-replicate-treatment-info.csv,按 replicate 展开——但这会增加数据量并引入不同 replicate 间的板位差异。 - 去协变量:池(pool)与批次(screen)是潜在系统差来源。若你的下游是「某化合物对某细胞系是否敏感」的稳定排序,建议把
screen/pool_id作为分层或协变量纳入分析,或在合并多批次前先按 batch 做分布诊断(如按 screen 画 log fold change 的密度分布,观察是否整体偏移)。官方已用 ComBat 校正过池化伪影,但跨版本、跨屏幕的残余差异仍需你自行检查。
一句话:层级里离「反应值」越近的单元(池、板、replicate)越可能携带系统噪声,离它越远的单元(screen、版本)越可能携带批次漂移——分析时对两侧都做敏感性检查,结论才稳。
§4.5 缺失值与信息性缺失
PRISM 的 log fold change 矩阵天然稀疏:并非每个化合物-细胞系都有值。缺失的来源包括 QC 剔除(SSMD < 2 的细胞系-板组合)、某细胞系未进入该池、池化/读出失败等。这意味着缺失并非完全随机(不是 MCAR),做矩阵分解/预测时必须显式处理:可只保留官方折叠文件里实际存在的 (化合物, 细胞系, 值) 三列长表(多数行非 NaN),避免对整矩阵当稠密填充。二次筛的 auc/ic50 参数也非全覆盖,需区分「未测」与「测了但拟合失败」。
缺失处理实践要点:建议保留一条缺失指示矩阵(wide 同形状的 0/1),作为特征或诊断工具。当比较不同化合物的细胞系覆盖率时,覆盖范围差异本身可能携带谱系/批次信息——覆盖更广的往往是较早在多个池中完成、QC 更稳的屏幕。把覆盖率当作协变量纳入模型,可在补全/预测时减少由缺失模式驱动的伪差。若做矩阵分解(如 BiasedMF/NMF),应在优化目标里对 NaN 位置做掩码,禁止把填充占位当作真实观测参与损失计算。
§5 划分与使用建议
官方划分:DepMap 不提供 PRISM 的官方 train/test 划分。数据以整库矩阵形式提供,研究者需自建划分。
社区惯例划分:按化合物(broad_id)拆分做「未见化合物泛化」测试、按细胞系(DepMap_ID)拆分做「未见细胞系泛化」测试,或用留一类(leave-one-lineage-out)评估跨谱系迁移。
划分策略建议:
- 回归/分类任务默认以化合物为最小不可分割单元做组化 K-fold(GroupKFold),避免同一化合物的多细胞系结果泄漏进训练与测试。
- 若要评估「新细胞系预测」,以 DepMap_ID 分组;若要评估「新药预测」,以 broad_id 分组——两者回答的问题不同。
- 二次筛与主筛不要混用做划分;主筛是单剂量二值倾向,二次筛是剂量反应,语义不同。
泄漏风险(重点):PRISM 与 DepMap omics、CTRP/GDSC 共享细胞系(同 DepMap_ID)。若你在同一组细胞系上把 CRISPR 依赖或表达特征当作特征去预测 PRISM 药敏,必须确保特征与标签来自同版本、无未来数据泄漏;做跨库泛化(PRISM 训练 → GDSC 测试)时共有细胞系要显式剔除,否则会高估迁移能力。
交叉验证建议:用嵌套 CV 选超参 + 组化外环评估;报告时按谱系分层并给出 per-compound/per-cell-line 两种误差。
外部验证建议:PRISM 的主要外部验证是与 CTRP、GDSC 的共有化合物-细胞系一致性对照(论文 Pearson 0.60/0.61);后续整合研究(pharmacoGX 等)也常将三库合并做统一拟合,务必记录各自 assay 时长(PRISM 5 天 vs CTRP/GDSC 3 天)与测活原理(条码 vs ATP)的差异。
§5.1 最小可复现划分示例
由于官方无划分,下面给出一个「按化合物分组」的组化划分示例,避免同化合物跨 fold 泄漏:
# 目标:predict AUC。核心——用 GroupKFold 保证同一 broad_id 不出现在 train 与 test 两侧。
from sklearn.model_selection import GroupKFold
import numpy as np
# 假设 long 为长表:(broad_id, cell_id, auc);feat 已按其行序对齐
groups = merged["broad_id"].to_numpy() # 组 = 化合物
y = y.to_numpy()
X = feat.to_numpy()
gkf = GroupKFold(n_splits=5)
for train_idx, test_idx in gkf.split(X, y, groups):
assert not set(groups[train_idx]) & set(groups[test_idx]), "泄漏:同一化合物横跨 train/test"
# 在此训练并记录 out-of-fold 指标
提示:若你的目标是「新细胞系预测」,把
groups换成merged["cell_id"]即可——两者回答完全不同的问题(新化合物 vs 新细胞系),务必与下游临床/科研问题对应。
§5.2 关于划分的三种问题框架
动手前先明确你要回答的是三种问题里的哪一种,因为它们对应不同的划分与结论:
| 问题 | 划分单元 | 含义 | 典型误区 |
|---|---|---|---|
| 「这个模型能否预测一个没测过的新化合物?」 | 化合物(broad_id)分组 | 评估化学空间的泛化 | 误把同化合物不同细胞系当独立样本 |
| 「这个模型能否预测一个没测过的细胞系对已知药的敏感性?」 | 细胞系(DepMap_ID)分组 | 评估模型到新模型的迁移 | 用新药目标却按细胞系分组 |
| 「在新谱系上是否稳健?」 | 谱系(primary_disease)分组 | 评估跨癌种迁移 | 分层后不报告 per-lineage 误差 |
实务建议:论文常同时报「按化合物分组」与「按细胞系分组」两组 AUROC——前者对药物研发更相关(新药筛选),后者对精密医学更像(把已知药匹配给患者)。只报一种会让人无法判断你的方法真实边界。若数据量允许,再做「留一类(某谱系全部细胞系不参与训练)」作为最严苛的迁移检验。
§6 AI 就绪指南 ⭐
§6.0 云端快速启动
PRISM 数据体积适中(核心矩阵几十 MB,全量约 900 MB),单机或轻量云实例即可处理。若用 ORCESTRA 重处理的 PRISM.rds 配合 R 生态,或用 DepMap 官方 Python 工具与 pandas 直接读 CSV,都无需 GPU。内存敏感操作(如对 252.1 MB 剂量反应长表做 groupby)建议用 dask 或 pyarrow。推荐环境:Python 3.10+、pandas 2.x、scikit-learn;若做矩阵分解可用 fancyimpute/lightgbm。
两种推荐的入门环境:
# A. Python 数据科学栈(最通用)
conda create -n prism python=3.10 pandas scikit-learn matplotlib jupyter -y
conda activate prism
# 可选:大表与树模型
pip install pyarrow lightgbm
# B. R + pharmacoGX(做跨库药理分析时)
# install.packages("BiocManager"); BiocManager::install("pharmacoGX")
# 用 ORCESTRA 提供的 PRISM.rds 直接构建 PharmacoSet
若你的最终目标是「跨 CTRP/GDSC/PRISM 三库统一建模」,建议 B 路线(pharmacoGX 已替你完成 ID 与度量对齐);若目标是「单库药敏预测 + 自己控制划分」,A 路线更灵活。
§6.1 快速上手
代码前置注释说明预期目录与最小子集:
# 预期目录结构(见 §4.0 tree):把 depmap 下载的 CSVs 放至 ./data/
# data_root 拼接:本脚本用 data_root = "data",
# 读取官方主用的主筛折叠矩阵 + 二次筛剂量反应参数 + 细胞系注释。
# 最小可用子集:只需 3 个文件即可建模——
# 1) secondary-screen-dose-response-curve-parameters.csv (AUC 标签)
# 2) primary-screen-cell-line-info.csv (细胞系注释)
# 3) 任一 DepMap omics 文件(可选,用于特征)——本示例用模拟特征演示流程。
import pandas as pd
data_root = "data"
sec = pd.read_csv(f"{data_root}/secondary-screen-dose-response-curve-parameters.csv")
cl = pd.read_csv(f"{data_root}/primary-screen-cell-line-info.csv")
print("二次筛行数:", len(sec))
print("剂量反应列:", sec.columns.tolist()[:8])
print("细胞系注释行数:", len(cl))
预期输出提示:sec 为长表(每行一个 profile/化合物-细胞系),含 auc、broad_id、cell_id 等列;cl 含 DepMap_ID 与谱系注释。
§6.2 数据获取
| 渠道 | 内容 | 规模 | 门槛 |
|---|---|---|---|
| DepMap repurposing(官方) | 主筛 + 二次筛全部 CSV + readme | 合计约 900 MB | 免费直接下载 |
| figshare 9393293 | 论文存档数据 | — | 免费 |
| Zenodo ORCESTRA PRISM.rds | 跨库对齐 PSet | 85.5 MB | CC BY 4.0 |
# 用 pandas 直接拉取(示例为 ORCESTRA Zenodo RDS 的 API 之外,CSV 需在 DepMap 页面点下载,
# DepMap 未提供稳定匿名单文件直链,建议浏览器/脚本记录下载 URL 后本地读取)。
# 以下演示对下载后的主筛折叠矩阵做最简读取与稀疏度检查:
import pandas as pd
wide = pd.read_csv("data/primary-screen-replicate-collapsed-logfold-change.csv", index_col=0)
print("形状(化合物 × 细胞系):", wide.shape)
print("NaN 比例: %.3f" % wide.isna().mean().mean())
# 提示:把宽表 melt 成长表 (compound, cellline, value) 便于建模
long = wide.reset_index().melt(id_vars=wide.index.name,
var_name="cellline", value_name="lfc").dropna()
print("有效三元组行数:", len(long))
下载注意事项:DepMap 页面将主筛与二次筛文件分列呈现,且文件名带版本相关命名(如 primary-screen-*、secondary-screen-*),无统一 zip。建议:
- 用脚本把每个文件 URL 记录到
download_manifest.json(含抓取日期与 DepMap 版本),保证可复现。 - 大文件(252.1 MB)建议断点续传(
curl -C -或aria2c)。 - 论文配套的固定版本可优先取 figshare 9393293,便于与已发表结果对齐。
核心文件字段速查
| 文件 | 主键/形态 | 关键列 | 典型用途 |
|---|---|---|---|
| primary 折叠矩阵 | wide:行 compound × 列 cell line | 行名 broad_id;列名 cell line | 单剂量活性全景、二值化 |
| secondary 折叠矩阵 | wide 同主筛 | 同上但多剂量 | 各剂量活性 |
| dose-response-curve-parameters | 长表 | broad_id、profile_id、cell_id、auc、曲线参数 | 剂量反应、AUC 建模 ★ |
| cell-line-info | 长表 | DepMap_ID、CCLE 名、谱系 | 关联 omics、分层 |
| pooling-info | 长表 | pool_id、cell_id | 去池效应、批分析 |
| treatment-info | 长表 | profile_id、broad_id、剂量 | 复现处理结构 |
§6.3 预处理全流程
# 1) 读出二次筛剂量反应参数,构造标签
import pandas as pd, numpy as np
dr = pd.read_csv("data/secondary-screen-dose-response-curve-parameters.csv")
# 关键列按 DepMap 实际命名对齐;此处演示:按 (broad_id, cell_id) 取 AUC
# 2) 去重与键规范化
dr = dr.drop_duplicates(subset=["broad_id", "profile_id", "cell_id"])
# 3) 关联细胞系谱系,用于分层
info = pd.read_csv("data/primary-screen-cell-line-info.csv")
merged = dr.merge(info[["DepMap_ID", "primary_disease"]].drop_duplicates(),
left_on="cell_id", right_on="DepMap_ID", how="left")
# 4) AUC 过滤:只保留落在生物相关区间的拟合参数(论文常用 TruncAUC,见 §6.5 坑点 5)
# 5) 特征矩阵(示例:以谱系 one-hot 作弱特征占位;真实任务应合并 DepMap omics)
feat = pd.get_dummies(merged["primary_disease"], prefix="disease").fillna(0)
y = merged["auc"].astype(float)
print("标签缺失占比: %.3f" % y.isna().mean(), "| 特征宽:", feat.shape[1])
§6.3b 关联 DepMap omics 作为特征
PRISM 真正的建模优势是与同源 DepMap omics 对齐:细胞系基因表达、拷贝数、突变、甲基化乃至 CRISPR 基因依赖,都挂在同一种 DepMap_ID 上。下面是「以细胞系分子特征预测化合物敏感度」的通用做法示意:
# 从 DepMap downloads 下载 OmicsExpressionProteinCodingGenesTPMLogp1.csv(表达)
# 与 OmicsSomaticMutationsMatrixDamaging.csv(损伤性突变)等,行 = DepMap_ID。
expr = pd.read_csv("data/OmicsExpressionProteinCodingGenesTPMLogp1.csv", index_col=0)
mut = pd.read_csv("data/OmicsSomaticMutationsMatrixDamaging.csv", index_col=0)
# 只保留在二次筛细胞系注释中出现的 DepMap_ID,保证特征-标签同版本、无泄漏
cell_ids = merged["cell_id"].unique()
expr_f = expr.reindex(cell_ids).fillna(0.0) # 表达按行取交集
mut_f = mut.reindex(cell_ids).fillna(0.0)
# 特征降维/挑选(示例):表达取方差最高的 top-k 基因
topk = expr_f.var().sort_values(ascending=False).head(1000).index
X_expr = expr_f[topk].to_numpy()
X_mut = mut_f.to_numpy() # 二值损伤性突变
import numpy as np
X_feat = np.hstack([X_expr, X_mut]) # 与 long 表按 cell_id 顺序对齐后再配对标签
关键纪律:特征来自某 DepMap 发布版,PRISM 标签来自另一发布版时,细胞系集合与版本需核对一致。用同一
DepMap_IDjoin 即可,但要在写入模型前断言expr_f.index与标签cell_id一一对齐、无 NaN 目标被静默丢弃。高维表达特征建议先做特征选择或嵌入(PCA/自编码器),再进下游模型。
§6.3c 一个完整的监督训练流程
把上面的特征与标签串成一个可运行的分类管线(以「某化合物对某细胞系是否敏感」为例),并显式按化合物分组做 GroupKFold:
import numpy as np, pandas as pd
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GroupKFold
from sklearn.metrics import roc_auc_score
# 假设 obs_long 已是 long:(compound, cell_id, lfc),并已 merge 上特征 X_feat
# 1) 构造二值标签(阈值取自论文经验区间,此处演示用 -1)
obs_long["sensitive"] = (obs_long["lfc"] <= -1.0).astype(int)
# 2) 特征已在前面构建好并按其行序对齐(此处占位列示意,替换为真实 X)
X = np.column_stack([obs_long["lfc"].abs().fillna(0), # 占位列,勿用于正式模型
obs_long.index.to_numpy() % 7]) # 占位噪声,勿用于正式模型
y = obs_long["sensitive"].to_numpy()
groups = obs_long["compound"].to_numpy()
# 3) 组化交叉验证:同一化合物只出现在一侧
scaler = StandardScaler()
gkf = GroupKFold(n_splits=5)
scores = []
for tr, te in gkf.split(X, y, groups):
model = GradientBoostingClassifier(random_state=0)
model.fit(X[tr], y[tr])
scores.append(roc_auc_score(y[te], model.predict_proba(X[te])[:, 1]))
print("Out-of-fold AUROC (mean±sd): %.3f ± %.3f" % (np.mean(scores), np.std(scores)))
正式使用时请以真实 DepMap 表达/突变特征替代上述两列占位特征;占位特征只为演示结构正确(分组划分、缩放、打分)。AUROC 在类别不平衡(多数化合物敏感比例很低)时应辅以 AUPRC 一并报告。
§6.4 PyTorch DataLoader
# 适用于「给定细胞系分子特征预测某一化合物 AUC/敏感度」的监督任务。
# 先将每个细胞系的 DepMap omics 特征映射为张量;此处用随机特征演示结构。
import torch
from torch.utils.data import Dataset, DataLoader
class PrismDataset(Dataset):
"""cell_ids: 细胞系 ID 数组;values: 对应 AUC;feat_dim 由外部 omics 决定。"""
def __init__(self, cell_ids, values, feat_dim=512, seed=0):
rng = np.random.default_rng(seed)
self.X = torch.tensor(rng.normal(0, 1, (len(cell_ids), feat_dim)),
dtype=torch.float32) # 占位:应替换为真实 DepMap 表达特征
self.y = torch.tensor(values, dtype=torch.float32).view(-1, 1)
def __len__(self):
return len(self.y)
def __getitem__(self, i):
return self.X[i], self.y[i]
vals = merged["auc"].dropna().to_numpy()
cell_ids = merged.loc[merged["auc"].notna(), "cell_id"].to_numpy()
ds = PrismDataset(cell_ids, vals)
loader = DataLoader(ds, batch_size=64, shuffle=True)
xb, yb = next(iter(loader))
print("batch feature:", xb.shape, "| batch label:", yb.shape)
# 训练时务必用 GroupKFold 按 broad_id 分组,避免同化合物跨 fold 泄漏。
§6.5 坑点 8 个
⚠️ 坑点 1:AUC/EC50 的方向与单位陷阱(分类:标签理解)
问题:PRISM 的剂量反应参数(如 AUC、IC50)由各 fit 管线生成,方向约定(AUC 越低代表越敏感还是越高越敏感)与单位(μM vs M)在不同文件/工具间并不统一,直接比较会得出完全相反的结论。
症状:把某化合物在两份来源里 AUC 数值对不上、正负相关反转,或「敏感」阈值套用 GDSC 习惯后性能异常。
解决:
- 简单方法:先读
secondary-screen-readme.txt明确本次版本的 AUC 定义与剂量单位,固定同一管线全量计算后再做后续。- 进阶方法:统一用 log fold change 主矩阵做二值(≤ −1 判敏感),规避曲线拟合的方向歧义;若必须用 AUC,对每个化合物做 min-max 方向校验(用已知敏感系对照)。
- SOTA 方法:采用 TruncAUC(对 0.03–10 μM 区间截断积分)替代 FullAUC,论文级工具显示其跨库重现性更高(见坑点 5)。
参考:https://depmap.org/repurposing/(readme 字段定义);https://qa-hub2.ovid.com/00124336-202607000-00004
⚠️ 坑点 2:主筛单剂量 ≠ 剂量反应(分类:标签理解)
问题:主筛只在 2.5 μM 单剂量测一次(三重复),一个 log fold change 无法区分「高浓度才毒」与「真正选择性杀伤」,直接拿主筛当药效强度会误导筛选。
症状:主筛「敏感」清单里混入大量高浓度广谱毒性化合物,下游验证命中率骤降。
解决:
- 简单方法:凡需谈「效力/选择性」一律回到二次筛剂量反应(1,448 化合物),勿用主筛单点下强度结论。
- 进阶方法:对只有主筛的化合物,用其跨谱系 log fold change 分布 + 双峰系数估计选择性,但标注为弱证据。
- SOTA 方法:以二次筛剂量反应 + AUC + 选择性评分做统一打分,主筛仅作初筛命中集。
参考:https://pmc.ncbi.nlm.nih.gov/articles/PMC7328899/
⚠️ 坑点 3:池化测活 ≠ 单培养,旁分泌与密度偏差(分类:偏倚陷阱)
问题:PRISM 把约 25 条细胞系(后期甚至数百条)混在一孔 5–10 天,细胞间旁分泌信号与高接种密度会改变某些基因/药敏依赖;这与传统单培养 assay(CTRP/GDSC 测 ATP、3 天)结果存在系统差异。
症状:某化合物在 PRISM 敏感但在单培养验证或 GDSC 中不敏感,尤其涉及生长信号通路(EGFR/KRAS)时更易偏差。
解决:
- 简单方法:高风险候选必须回到单培养独立验证(正交 assay)后再进入体内实验。
- 进阶方法:做跨库一致性时把 assay 时长与测活原理(条码 5 天 vs ATP 3 天)作为协变量纳入,勿假设可直接互换。
- SOTA 方法:参考 BMS-PRISM 论文量化的旁分泌影响(估计影响谱系 <5%),对主效应候选做细胞密度/池组成敏感性分析。
参考:https://link.springer.com/10.1038/s42003-021-02352-2;https://pmc.ncbi.nlm.nih.gov/articles/PMC7328899/
⚠️ 坑点 4:版本漂移与批次效应(DepMap 持续发布)(分类:工程陷阱)
问题:PRISM 数据随 DepMap 半年发布持续更新,不同版本的主筛化合物/细胞系数量与内容并不一致(如初筛从 4,518 增至约 6,790 化合物、细胞系 446–898 区间浮动),若混用不同版本会引入批次伪影。
症状:复现别人结果时行列对不上、数值有微小漂移、跨论文对比失配。
解决:
- 简单方法:记录精确版本号(如 DepMap 24Q4/26Q1)与抓取日期,整库一致使用,禁止混搭不同版本文件。
- 进阶方法:以论文配套的固定版本(figshare 9393293 或 19Q4 版本)做可复现实验。
- SOTA 方法:官方流水线本已用 ComBat 校正池化伪影;自己做跨批次建模时再以 pool_id/版本做混合效应或批次校正。
参考:https://forum.depmap.org/t/depmap-portal-datasets/3695
⚠️ 坑点 5:剂量反应截断对 AUC 重现性的影响(分类:评估误用)
问题:AUC 计算对剂量范围与上下平台假设敏感。官方原始 FullAUC 与社区采用的 TruncAUC/AreaTruncAUC(仅对 0.03–10 μM 积分)对同一条曲线给出不同值,直接影响排序与「敏感系」定义。
症状:同一化合物用 FullAUC 与 TruncAUC 排出的最敏感 20 系差异大;跨库(PRISM vs GDSC)一致时 FullAUC 重现性低于 TruncAUC。
解决:
- 简单方法:报告时固定一种 AUC 口径并注明,避免在正文混用。
- 进阶方法:采用 TruncAUC 提升跨库可比性;把 IC50 限制在生物相关区间(1 nM–100 μM)也能提高重现性,但会剔除大量数据点。
- SOTA 方法:用验证药物(AZ-628、nutlin-3a、imatinib)做每批内重现性对照,评估所选 AUC 口径在你自己任务中的稳定性。
参考:https://qa-hub2.ovid.com/00124336-202607000-00004
⚠️ 坑点 6:宽矩阵稀疏 + 缺失非随机(分类:预处理陷阱)
问题:主筛 log fold change 是稀疏宽矩阵,NaN 来自 QC 剔除(SSMD < 2)与「未进入池」而非均匀随机缺失(不是 MCAR);对整矩阵做中位/零填充会系统性扭曲结构。
症状:imputation 后矩阵分解或聚类结果被批次结构主导,敏感/耐受分组失真。
解决:
- 简单方法:把宽表 melt 成长表后 dropna,只在确实存在观测的三元组上建模,避免无谓填充。
- 进阶方法:若要填充,用考虑行/列结构的低秩分解(矩阵补全),并在缺失指示矩阵上额外建模。
- SOTA 方法:把「是否缺失」作为特征纳入模型,显式让模型学习缺失模式与谱系/批次的关系。
参考:https://depmap.org/repurposing/(文件与 readme);https://pmc.ncbi.nlm.nih.gov/articles/PMC7328899/figure/F8/
⚠️ 坑点 7:化合物身份与细胞系身份核对(分类:工程陷阱)
问题:Repurposing Hub 化合物有 broad_id/名称/结构多重标识,细胞系在不同文件里可能是 CCLE 名(A549_LUNG)或 DepMap_ID(ACH-xxxxxx)。键不规范会导致错误 join,把两种不同化合物或细胞系错配到同一行。
症状:merge 后出现重复行数暴增或「幽灵」活性值;同一细胞系在cell-line-info与折叠矩阵中无法对齐。
解决:
- 简单方法:以 DepMap_ID(细胞系)与 broad_id(化合物)为唯一键做 join,其余字段只作展示不参与匹配。
- 进阶方法:建键映射表并断言无一对多异常;用
Corsello_supplemental_tables.xlsx化合物注释复核 broad_id。- SOTA 方法:用 canonical smiles 去重同一化合物的多来源命名(若做化学特征任务),cell line 以 CCLE 官方别名规范。
参考:https://depmap.org/repurposing/(cell-line-info.csv、supplemental_tables.xlsx)
⚠️ 坑点 8:跨库迁移过度自信(与 CTRP/GDSC 组合的陷阱)(分类:数据泄漏 / 评估误用)
问题:将 PRISM 与 CTRP/GDSC 合并做统一药敏建模很诱人,但三库 assay 原理、时长、细胞系集、化合物源各不相同,共有 (化合物, 细胞系) 只是很小子集。若不做严格去重与谱系分层,合并后「性能提升」常来自重复细胞系而非真实泛化。
症状:合并模型在 PRISM 与 GDSC 上表现都更好,但剔除共有细胞系后提升消失——是数据泄漏撑起的虚高。
解决:
- 简单方法:合并前显式剔除共有细胞系重叠或按「同谱系分组」做跨库验证。
- 进阶方法:做库间迁移测试:PRISM 训练 → GDSC 测试(和反向),报告 per-cell-line 而非 pool 后误差。
- SOTA 方法:用 ORCESTRA/pharmacoGX 统一重处理的 PSet,确保三库已对齐到同一 ID 与度量再联合建模。
参考:https://zenodo.org/records/5570757;https://qa-hub2.ovid.com/00124336-202607000-00004
§6.6 数据增强
安全 ✅:对二次筛剂量反应曲线沿浓度轴插值/重采样(需先验证不引入非物理形状);用谱系标签做留一类分层;跨库共有化合物配对作为辅助监督。
危险 ❌:对 log fold change 做随机高斯加噪试图「增强」——PRISM 本就偏噪,加噪只会掩盖真实信号;把主筛单剂量值当作连续曲线去插值生成伪剂量反应;用无监督填充制造大量假数据点后再训练。
§6.7 模型推荐表
| 任务 | 推荐模型 | 理由 | 备注 |
|---|---|---|---|
| 敏感/耐受二分类 | LightGBM / XGBoost | 表型 + omics 特征稳健 | 需 GroupKFold 按化合物 |
| AUC 回归预测 | 随机森林 / 弹性网 | 可解释、抗稀疏 | 特征需标准化 |
| 矩阵分解(补全) | BiasedMF / NMF | 直接利用稀疏结构 | 关注缺失模式 |
| 跨库泛化 | Ridge/MLP + 库域适配 | 处理三库 assay 差异 | 剔除共有系验证 |
| 机制聚类 | UMAP + 余弦相似 | 复现论文 MOA 聚类 | 同 MOA 化合物应成簇 |
§6.8 硬件需求表
| 步骤 | 最低 | 推荐 | 说明 |
|---|---|---|---|
| 读取 + 长表建模 | 8 GB RAM,无 GPU | 16 GB RAM | 最长表 252.1 MB,pandas 可处理 |
| 矩阵分解 / 大规模预测 | 16 GB RAM | 32 GB RAM,可选 GPU | 稀疏补全内存敏感 |
| 全库三库联合建模 | 32 GB RAM | 64 GB RAM / 云 | 建议 dask/pyarrow |
§6.9 评估指标代码
# 对二值化敏感分类用 AUROC/AUPRC;对 AUC 回归用 Pearson/Spearman + MSE。
from sklearn.metrics import roc_auc_score, average_precision_score
from scipy.stats import pearsonr, spearmanr
def evaluate_class(y_true, y_pred_prob):
return {"auroc": roc_auc_score(y_true, y_pred_prob),
"auprc": average_precision_score(y_true, y_pred_prob)}
def evaluate_reg(y_true, y_pred):
p, _ = pearsonr(y_true, y_pred)
s, _ = spearmanr(y_true, y_pred)
return {"pearson": p, "spearman": s, "mse": ((y_true - y_pred) ** 2).mean()}
# 注意:评估必须在 out-of-fold 的预测上做,严禁在训练集上报告这些指标。
§6.10 MLOps 笔记
- 用 DepMap 版本号 + 抓取时间戳作为数据版本指纹,写进实验 config,防止半年发布导致的隐性漂移。
- 将「宽矩阵 → 长表」的转换固化为可复用脚本,纳入数据管线,避免每次手工处理引入不一致。
- 对化合物/细胞系做严格的 id 校验(唯一性、无一对多)作为 CI 门禁。
- 记录 assay 口径(AUC/TruncAUC、log fold change 阈值)与特征版本,确保实验可复现。
§6.11 常见误读对照表
| 容易犯的误读 | 正确理解 | 依据 |
|---|---|---|
| 「log fold change 越负说明药效越好」 | 负值表示处理组细胞减少,但需结合剂量、池化背景与二次筛曲线,不能单点断言疗效 | 测活终点是 5 天存活/增殖代理 |
| 「主筛敏感 = 好药」 | 主筛只有 2.5 μM 单点,需二次筛剂量反应确证效力与选择性 | 两阶段筛选设计 |
| 「PRISM 结果 = GDSC/CTRP 结果」 | 三库 assay 原理/时长/细胞系集不同,只能做共有点对照 | Pearson 0.60-0.61,非完全一致 |
| 「AUC 口径随便用」 | FullAUC 与 TruncAUC 定义不同,跨库比较须统一口径 | 谐一化研究 |
| 「细胞系敏感 = 患者有效」 | 细胞系无微环境/免疫/药代,转化需独立验证 | 体外模型固有局限 |
| 「用最新 DepMap 版即可复现老论文」 | 版本演进致数据范围变化,复现需锁定到论文配套版本 | 持续发布机制 |
§6.12 常见工程报错与排查
| 症状 | 可能原因 | 排查方向 |
|---|---|---|
merge 后行数异常膨胀 |
键不唯一(一对多) | 用 groupby(...).size() 检查重复键,统一用 DepMap_ID/broad_id |
| 全 NaN 的目标标签 | 长表 melt 错、键未对齐 | 打印 wide 行列名前 3 项,核对 id_vars |
| join 后很多「幽灵」细胞系 | 用名称字符串而非常规键 | 改用 DepMap_ID/broad_id 作唯一键 |
| 覆盖率为 0 或极低 | 读错文件(未折叠 vs 折叠) | 换 *-replicate-collapsed-* 官方主用文件 |
| 与 GDSC 相关性意外为负/极低 | AUC 口径或 ID 体系不一致 | 统一 TruncAUC + 同一 ID 体系后再算 |
| 训练 AUROC 高但测试崩盘 | 同化合物跨 fold 泄漏 | 改用 GroupKFold 按 broad_id 分组 |
| 数值跨版本对不上 | 用了不同 DepMap 版本 | 锁定版本,核对 manifest |
排查核心:先验键与版本,再谈模型与指标。PRISM 绝大多数「奇怪结果」追根到底是 ID 错配、版本混用或口径不统一,而非平台数据本身的问题。
§7 质量评估与局限性
§7.1 已知偏倚表
| 偏倚类型 | 描述 | 严重程度 | 缓解 |
|---|---|---|---|
| 谱系覆盖偏倚 | 细胞系偏向常见实体瘤谱系(肺/乳腺/结直肠),稀有种系与液体系覆盖不足 | 中 | 关注谱系分层;做留一类验证 |
| 化学空间偏倚 | 化合物来自 Repurposing Hub,过度代表已获批/在研药与已知工具药 | 中 | 勿外推为「随机化学空间」药敏结论 |
| 池化竞争偏倚 | 约 25 系/池共培养 5 天,旁分泌/密度影响部分依赖 | 低-中 | 高价值候选做单培养验证 |
| 测活偏噪 | 相比 CTRP/GDSC 车辆对照标准误更高 | 中 | 用 TruncAUC、多批次一致化 |
| 版本/批次漂移 | DepMap 半年发布致范围与数值演进 | 中 | 锁定版本,记录指纹 |
| 种族代表性 | 公共细胞系库传统上以欧美来源为主 | 中 | 认知局限,勿宣称患者级普适 |
§7.2 标注质量
PRISM 无人工标注,全部为仪器定量 + 自动流水线。论文通过三方面证明标注可靠:(1) UMAP 聚类里已知 MOA 的化合物成簇(如维生素 D 受体激动剂、HMG-CoA 还原酶抑制剂),说明恢复出预期药理;(2) 与 GDSC/CTD2 在 16,650 共享点一致(Pearson 0.60/0.61),接近 GDSC–CTD2 彼此的 0.62;(3) 机制验证命中(PDE3A-SLFN12、SLC26A2、双硫仑等)。需注意官方 QC 已用 SSMD 过滤控制分离差的细胞系-板组合,使用者不必重复但应知晓该过滤改变了矩阵覆盖。
§7.3 泛化性表
| 场景 | 失效风险 | 证据 |
|---|---|---|
| 体外 → 体内疗效 | 高 | 细胞系无微环境/药代,PRISM 活性 ≠ 体内疗效,需动物验证 |
| 细胞系 → 患者分层 | 高 | 同 DepMap 一切体外模型的固有局限 |
| 非肿瘤药 → 新肿瘤适应症 | 中 | 有系统机制支持(774 活性非肿瘤药),仍须独立临床验证 |
| PRISM ↔ GDSC/CTRP 跨库 | 中 | 有 0.60-0.61 一致证据,但 assay 原理不同 |
| 批内重复 / 复测重现 | 低-中 | 官方折叠后仍偏噪,TruncAUC 更稳 |
§7.4 伦理
PRISM 是体外细胞系数据,不含患者样本或个人信息,不涉及人体受试者伦理审查。但作为药物研发输入,使用者应遵循负责任科研:筛选出的候选药用于人体前必须遵守临床试验伦理与监管程序;对「老药新用」的宣称须有充分机制证据,避免夸大导致不当用药风险。细胞系来源(公共库、部分涉及捐赠组织来源细胞系)的再利用符合学术惯例,引用原始细胞系来源论文与 DepMap 使用条款。
§7.5 公平性(如适用)
细胞系库的多样性直接决定药敏结论可外推的人群范围。当前公共肿瘤细胞系传统上欧美来源偏多,导致对非欧美人群肿瘤分子多样性的代表性有限;若将 PRISM 得出的「敏感亚型」直接映射到特定患者群体,需警惕代表性不足带来的偏倚。建议在研究中明确声明模型适用谱系/分子亚型边界,不做超出覆盖范围的过度泛化。
§7.6 数据漂移
PRISM 是持续发布的活数据:DepMap 每半年加入新细胞系/新化合物/新测活批次,其范围与内容随时间演进。对于长期跑批的任务,旧版本结论可能因新数据加入而需重估;对「复现性优先」的研究,务必冻结到某一固定版本(如论文配套的 19Q4 或 figshare 存档)并记录版本指纹,避免隐性漂移。
漂移的三种现实场景:
- 规模漂移:同叫「主筛」,DepMap 论坛显示其化合物数已随发布从论文版增长(初筛 4,518 → 后续约 6,790),细胞系数也在 446–898 区间浮动。跨版本比对时行列不齐是必然的,切忌当同一矩阵处理。
- 数值漂移:官方流水线会随新 QC/校正策略重处理,同一 (化合物, 细胞系) 的 log fold change 在不同季度版可能微调。复现旧论文数字时应用旧版文件而非最新版。
- 注释漂移:DepMap 细胞系谱系/DepMap_ID 映射会随 CCLE 注释更新而演进。特征侧(omics)与标签侧(PRISM)若来自不同版本,join 后可能出现新旧 ID 并存,需做版本记录与断言。
应对基线:任何用到 PRISM 的项目都应把「DepMap 版本 + 抓取日期 + 文件名 + 标签口径」四要素写进 README/config。若项目跨多个 DepMap 版本长期维护,建议额外保存每次抓取的
download_manifest.json以便随时回溯。
§7.7 DAIMS 24 项评估表
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 官方提供 wide log fold change 矩阵(化合物 × 细胞系) |
| 2 | 唯一标识 | ✅ | 细胞系 DepMap_ID、化合物 broad_id 均唯一 |
| 3 | 特殊字符 | ⚠️ | 部分化合物名/别名含特殊字符,需以 broad_id 为键 |
| 4 | 重复行 | ✅ | 二次筛参数可去重,官方折叠文件已控重复 |
| 5 | 缺失编码 | ⚠️ | NaN 语义(QC 剔除 vs 未测)未显式区分 |
| 6 | 标签标识 | ✅ | 连续标签 log fold change / AUC 定义在 readme 中 |
| 7 | 罕见类分组 | ⚠️ | 稀有种系样本极少,需谱系合并 |
| 8 | 偏倚评估 | ✅ | 谱系/化学空间/池化偏倚均有文献讨论 |
| 9 | 数据字典 | ✅ | readme.txt + 本百科字段字典 |
| 10 | 信息性缺失解释 | ⚠️ | 缺失与 QC 过滤相关,官方未给缺失原因列 |
| 11 | 设备记录 | ✅ | 记录 Luminex 读出、pin transfer/声学滴注 |
| 12 | 共线性 | ✅ | omics 特征间可评估共线性(非本数据集内) |
| 13 | 编码映射 | ✅ | CCLE/DepMap ID 有官方映射文件 |
| 14 | 时间戳处理 | ⚠️ | 版本演进需自记抓取日期 |
| 15 | 划分建议 | ⚠️ | 无官方划分,需自建(§5 有策略) |
| 16 | 泄漏讨论 | ✅ | 跨库共有细胞系泄漏风险本文已强调 |
| 17 | 标签分布 | ✅ | 偏 0 连续分布,双峰系数刻画选择性 |
| 18 | 测量偏倚 | ✅ | 论文讨论池化噪声与 assay 差异 |
| 19 | 外部验证建议 | ✅ | GDSC/CTD2 一致性、pharmacoGX 整合 |
| 20 | 版本记录 | ⚠️ | DepMap 版本演进,建议整库锁定 |
| 21 | 预处理脚本 | ✅ | 官方流水线(ComBat 等)+ 社区脚本丰富 |
| 22 | 合规要求 | ✅ | 免费研究使用,ORCESTRA 版 CC BY 4.0 |
| 23 | 多模态对齐 | ✅ | 与 DepMap omics 同 DepMap_ID 对齐 |
| 24 | 去标识化 | ✅ | 无患者数据,无需去标识 |
DAIMS 评分:19.5 / 24
评分解读:PRISM 作为体外药敏定量数据集,工程就绪度很高——官方已给出处理好的折叠 log fold change 矩阵与剂量反应参数、readme 详尽、QC(SSMD/ComBat)透明,且与 DepMap omics 可无缝关联。失分集中在:无官方 train/test 划分、缺失语义(QC 剔除 vs 未测)未区分、版本随 DepMap 演进需自行锁定,以及矩阵稀疏需自行处理。这些更多是「使用方式」而非「数据质量」问题。
对你意味着什么:若你做药敏预测建模,可直接以官方 *-replicate-collapsed-logfold-change.csv 或二次筛 dose-response-curve-parameters.csv 为标签,重点是自建「按 broad_id/DepMap_ID 分组」的组化划分并记录 DepMap 版本。若你做跨库整合,优先用 ORCESTRA 统一重处理的 PSet 以规避 ID 与度量不一致。任何「敏感」结论请务必回到二次筛剂量反应 + 单培养正交验证,勿以主筛单点下结论。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| GDSC(Sanger) | Sanger Institute | 跨库一致性 | Pearson 0.60(共享点) | 与内部复现相当 | 不同 assay 平台总体可比 |
| CTD2/CTRP(Broad) | Broad Institute | 跨库一致性 | Pearson 0.61 | 与内部复现相当 | 同机构但仍受 assay 差异影响 |
| pharmacoGX/ORCESTRA 整合 | Haibe-Kains Lab | 跨库统一拟合 | 整合 PSet | 提升可比性 | 需统一 ID 与 AUC 口径 |
| TruncAUC 跨库重现研究 | 多机构 | AUC 重现性 | 优于 FullAUC | 重现性提升 | 剂量截断显著改善跨库一致 |
§7.8b 跨库一致性的最小复算
若要自己核验「PRISM 与某库在某化合物上是否一致」,可按共有 (化合物, 细胞系) 配对做相关。下面是概念化步骤(需替换为真实下载的 GDSC/CTRP 数据):
# 概念示例:对共有化合物-细胞系做 Spearman 相关,衡量跨库排名一致。
import numpy as np, pandas as pd
from scipy.stats import spearmanr
def cross_lib_corr(prism_df, other_df, how="inner"):
"""prism_df/other_df 均为 long:列 compound, cell_id, value"""
m = prism_df.merge(other_df, on=["compound", "cell_id"], how=how)
if len(m) < 20:
return None, len(m)
rho, p = spearmanr(m["value_x"], m["value_y"])
return rho, len(m)
# 论文级经验:完整共享点(16,650)上 PRISM-GDSC Pearson≈0.60;重复基因较少时相关性下降是正常现象。
# 提示:合并前须先把三库的化合物与细胞系映射到同一 ID 体系(见坑点 7/8),
# 否则用名称字符串直接 merge 会漏配或错配,产生被低估或虚高的相关。
结论要点:跨库一致性「不是越接近 1 越好」,而是要看 assay 原理差异下的合理区间。论文给的对 PRISM-GDSC/CTD2 的 0.60/0.61(与 GDSC-CTD2 的 0.62 相当)说明三者处于同一可信量级;若你复算某库对自己内部批次的相关明显低于此区间,通常提示 ID 错配或口径不一致,而非平台本身不可靠。
§8 基准性能与生态
§8.1 排行榜
PRISM 主要作为药敏数据资源而非标准化竞赛,尚无权威公开排行榜。相关实证基准如下:
| 排名/方法 | 模型/方法 | 性能 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| ATLANTIS | 随机森林 | 预测杀伤性(ROC 具统计意义) | 2019-2020 | 谱系+拷贝数+突变+甲基化特征 | Corsello et al., 2020, Nature Cancer. DOI 10.1038/s43018-019-0018-6 | 论文补充 |
| TruncAUC 重现 | 剂量截断 AUC | 跨库重现性显著优于 FullAUC | 2026 | 0.03-10 μM 截断积分 | Pharmacogenomics harmonization, Bioinformatics 2026. | — |
| UMAP 药敏景观 | UMAP + 余弦 | MOA 聚类可恢复 | 2020 | 990 化合物谱余弦 | Corsello et al., 2020. DOI 10.1038/s43018-019-0018-6 | depmap 交互图 |
说明:这些结果不可直接横向比较——assay 口径、特征与任务目标各异,引用时应以论文原始图与定义为准。尤其注意,上表把「预测 AUC 的回归器」「跨库重现性统计量」「UMAP 聚类」并排,它们回答的是不同问题,任何把三者当作同一指标排序的做法都属误用。
§8.2 SOTA 总结与选型建议
目前 PRISM 无官方 SOTA 排行榜,社区最佳实践偏向「剂量截断 AUC + 组化划分 + 跨库验证」的组合。选型建议:单库内部建模用 LightGBM/RF 已足够稳健;追求解释性用正则线性模型;跨库泛化研究需域适配与共有系剔除;机制发现沿用论文的 UMAP + 双峰系数范式即可与既有文献对齐。
选型决策速查:
- 要快速得到「哪条细胞系对某药最可能敏感」的可解释候选清单 → RF/LightGBM + 特征重要性,无需深度模型。
- 要最大化预测精度且数据量足 → MLP/梯度提升(仍做 GroupKFold),或矩阵分解捕捉隐结构。
- 要做机制型结论(哪个基因驱动敏感)→ 正则线性 / 单特征筛选 + DepMap omics,避免黑箱。
- 要复现/对照论文 → 严格沿用其 AUC 口径、特征与阈值,勿替换为自定义版本后直接比数。
§8.3 评测协议
建议采用论文一致的「敏感」操作性定义:对二次筛,用已知生物标志物药物(如 vemurafenib/BRAF、gefitinib/EGFR)校准敏感阈值(论文级在 log fold change ≤ −1 达高特异度);报告 AUROC/AUPRC(分类)或 Pearson/Spearman(回归),且一律在 out-of-fold 上进行。
评测协议关键点:
- 正负类定义要可辩护:若二值化,阈值应基于已知生物标志物药物的行为来定,而非拍脑袋。论文思路是用 vemurafenib(BRAF V600E 标志物)等做对照,反推能最大化「标志物特异度」的 log fold change 阈值——你在自己研究里也应写明该校准过程。
- 类别不平衡处理:多数化合物的敏感细胞系占比很低,评估务必同时看 AUROC 与 AUPRC,后者对不平衡更敏感、更贴近实际检索需求。
- 报告分层误差:除了全局指标,报告按谱系分层、按化合物分层的误差分布,能暴露「整体不错但某谱系很差」的假稳健。
- 跨库比较:与 GDSC/CTRP 比较时,务必用共有点子集 + 统一 ID + 统一 AUC 口径,避免把「样本范围不同」误当「模型差异」。
§8.4 相关数据集表
| 数据集 | 关系 | 互补点 |
|---|---|---|
| CTRP/CTD2(Broad) | 同源机构、可比 assay | 单培养 3 天,深挖肿瘤药 |
| GDSC(Sanger) | 独立机构金标准 | ~1,000 细胞系,独立 assay |
| CCLE | 同源 omics | 提供分子特征用于预测 |
| DepMap CRISPR | 同源基因依赖 | 药物敏感 ↔ 基因依赖对照 |
| NCI-60 | 历史经典 | 化合物多、细胞系少 |
§8.5 关键论文 Top 5
- Corsello SM, Nagari RT, Spangler RD, et al. (2020). Discovering the anticancer potential of non-oncology drugs by systematic viability profiling. Nature Cancer 1(2):235-248. DOI 10.1038/s43018-019-0018-6. — PRISM Repurposing 数据集正典:定义 4,518 化合物 × 578 细胞系主筛与 1,448 × 499 二次筛,给出与 GDSC/CTD2 的跨库一致性(Pearson 0.60/0.61),并演示用 ATLANTIS 随机森林以基因组特征预测杀伤性。是引用与数据使用的主要依据。
- Yu C, Mannan AM, Yvone GM, et al. (2016). High-throughput identification of genotype-specific cancer vulnerabilities in mixtures of barcoded tumor cell lines. Nature Biotechnology 34(4):419-423. DOI 10.1038/nbt.3460. — PRISM 方法学奠基:完整描述 24 核苷酸 DNA 条码 + Luminex 读出的池化测活原理,用 102 细胞系 × 8,400 化合物验证与单培养一致,并发现 Aurora B/C 抑制剂 BRD-7880。凡使用 PRISM「方法」都应引用此文。
- Corsello SM, et al. (2017). The Drug Repurposing Hub: a next-generation drug library and information resource. Nature Communications. — PRISM 化合物来源库的原始定义(本文内容参考自 Repurposing Hub 资源页,非本数据集筛选用其官方地址 https://www.broadinstitute.org/repurposing)。
- Multiplatform(BMS-PRISM,Communications Biology 2021. DOI 10.1038/s42003-021-02352-2) — 工业界对 PRISM 平台的扩展(加入 CRISPR/Cas9 敲除),系统量化池化 vs 单培养在 368 细胞系上的差异,估计旁分泌对依赖打分影响 <5%,是评估池化偏倚的重要对照。
- PRISM/CTRP/GDSC 药敏谐一化研究(Bioinformatics,2026) — 系统比较三库剂量反应重现性,提出 TruncAUC(0.03–10 μM 截断积分)较 FullAUC 显著提升跨库可比性,对跨库建模有直接指导意义。
说明:条目 1 与 2 的卷期页码、DOI、作者均已在检索中核实;条目 3 的配套 Hub 原始论文在搜索中未取到完整 DOI 页码,故仅标注出处性质并以官方地址为准,避免编造精确元数据。
§8.6 社区活跃度
PRISM 依托 DepMap 生态活跃:DepMap 每半年发布并持续更新 PRISM 数据,portal 提供交互可视化与 API;社区在 pharmacoGX(R)、DepMap Python 工具链、ORCESTRA 等持续整合;Nat Cancer 主论文 Google Scholar 引用 941+(截至 2026-09)。活性体现在持续的被引与二研工具迭代,而非单一 leaderboard。
§8.6b 可复现性与评测建议小结
要在 PRISM 上做严谨评测并让他人复现,至少固定三件事:数据版本(DepMap 版本 + 抓取日期 + 文件名)、标签口径(AUC/TruncAUC/log fold change 阈值 + 剂量单位)、划分协议(按化合物还是按细胞系 GroupKFold + seed)。在论文/报告中以清单形式列出这三项,能显著提升结果可信度与互操作性;若与既有文献比较,务必用论文配套的同一版本数据重新评估,而不是跨版本直接比数。
§8.7 生态快照表
| 资源 | 类型 | 链接 | 推荐理由 |
|---|---|---|---|
| DepMap PRISM 数据下载 | 官方 | https://depmap.org/repurposing/ | 权威源、含 readme |
| DepMap portal | 可视化/下载 | https://depmap.org | UMAP 景观与 omics 关联 |
| ORCESTRA PharmacoSet | R 数据 | https://zenodo.org/records/5570757 | 跨库对齐、CC BY 4.0 |
| figshare 存档 | 论文数据 | https://doi.org/10.6084/m9.figshare.9393293 | 可复现基线 |
| DepMap 论坛 | 社区问答 | https://forum.depmap.org | 版本/坑点讨论 |
§8.7b 接入工具速览
| 工具/语言 | 场景 | 说明 |
|---|---|---|
| pandas + scikit-learn | Python 主流建模 | 直接读 CSV,做 GroupKFold 与指标 |
| pharmacoGX(R) | 药理学下游分析 | 读取 ORCESTRA PSet(PRISM.rds),支持 AUC 提取与跨库 |
| DepMap 官方 Python 包 / API | 程序化下载与查询 | 便捷拉取 omics 与 PRISM 切片 |
| UMAP/余弦(Python) | 药敏景观与 MOA 聚类 | 复现论文图 2 式景观分析 |
| dask / pyarrow | 大文件与全库 | 处理 252.1 MB 级长表与三库合并 |
选型原则:小规模、单库、需解释性 → pandas + RF/GBM;做跨库整合或深度药理学分析 → 优先 ORCESTRA PSet + pharmacoGX,避免自己重造 ID/度量对齐;大规模批处理 → dask/pyarrow 管理内存。
§9 相关资源与引用
§9.1 BibTeX
@article{corsello2020discovering,
title={Discovering the anticancer potential of non-oncology drugs by systematic viability profiling},
author={Corsello, Steven M and Nagari, Rohith T and Spangler, Ryan D and others},
journal={Nature Cancer},
volume={1},
number={2},
pages={235-248},
year={2020},
publisher={Nature Publishing Group},
doi={10.1038/s43018-019-0018-6}
}
@article{yu2016high,
title={High-throughput identification of genotype-specific cancer vulnerabilities in mixtures of barcoded tumor cell lines},
author={Yu, Channing and Mannan, Aristotle M and Yvone, Griselda Metta and others},
journal={Nature Biotechnology},
volume={34},
number={4},
pages={419-423},
year={2016},
doi={10.1038/nbt.3460}
}
§9.2 官方资源
- 数据下载:https://depmap.org/repurposing/ — 主筛与二次筛全部 CSV 及 readme、SOP 手册(免费、无需申请)。
- DepMap portal:https://depmap.org — 交互式药敏景观、Data Explorer、Custom Downloads、半年版本发布说明与 API。
- 论文存档(figshare):https://doi.org/10.6084/m9.figshare.9393293 — Corsello 2020 配套原始/处理数据,用于固定版本复现。
- 重处理 PharmacoSet:https://zenodo.org/records/5570757 — Haibe-Kains 实验室 ORCESTRA 流程产出的 PRISM.rds(85.5 MB,CC BY 4.0),跨库 ID/度量对齐。
- DepMap 论坛:https://forum.depmap.org — 版本变更、已知问题、坑点问答。
- Drug Repurposing Hub:https://www.broadinstitute.org/repurposing — 化合物库来源与注释查询。
§9.3 引用指南
使用 PRISM 数据请引用 Corsello et al. 2020(Nat Cancer,DOI 10.1038/s43018-019-0018-6);使用 PRISM 方法请同时引用 Yu et al. 2016(Nat Biotech,DOI 10.1038/nbt.3460)。若采用 ORCESTRA 重处理版本,须按 CC BY 4.0 署名并引用相应重处理数据 DOI;若同时使用 DepMap omics 特征,还应按其各数据集对应的原始论文与下载页说明引用。跨库对照(GDSC/CTRP)时分别引用对应项目的原文,避免把三方数据统一归到单一引用之下。
§9.4 下载与复现 Checklist
- [ ] 记录 DepMap 版本号与抓取日期(写入实验 config)
- [ ] 保存
download_manifest.json(文件名 + URL + 日期) - [ ] 主筛与二次筛文件分别放置,明确区分两阶段
- [ ] 用
cell-line-info.csv做 DepMap_ID ↔ CCLE 名映射并核对无一对多 - [ ] 用
Corsello_supplemental_tables.xlsx复核 broad_id 与化合物注释 - [ ] 决定标签口径(AUC/TruncAUC/log fold change 阈值)并写入记录
- [ ] 明确划分协议(按 broad_id 还是 DepMap_ID 分组)与 seed
- [ ] 如需复现论文,改用论文配套固定版本(figshare 或对应 DepMap 季度版)
§10 AI 使用声明卡
§10.1 AI 模型列表
本百科由 AI 写作助手(CodeBuddy Code,fast-model)依据公开权威资料起草,经千方病案医学编辑部人工校验。
§10.2 AI 参与范围
AI 负责:文献检索整理、结构组织、初稿撰写、格式排版、8 坑点草拟与 DAIMS 初评。所有事实数字经人工对照来源核对,医学/数据语义表述由编辑部审校。
§10.3 输入来源列表
- Corsello et al., 2020, Nature Cancer(PMID 32613204)
- Yu et al., 2016, Nature Biotechnology(PMID 26928769)
- DepMap repurposing 官方数据页
- DepMap portal 与论坛版本说明
- figshare 9393293 存档说明
- Zenodo ORCESTRA PRISM PSet 记录
- BMS-PRISM, 2021, Communications Biology
- 药敏谐一化研究(Bioinformatics)
- 腾讯云转译 Nat Cancer 中文解读
- ORCESTRA/KG Hub PRISM 资源页
- PubMed/PMC 全文
- Broad Institute 新闻与 Golub Lab 出版物页
- Google Scholar 引用统计
§10.4 人工校验表
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §2 医学背景 | 千方病案医学编辑部 | 交叉对照文献 | ✅ 已通过 |
| §4 数据字典 | 千方病案医学编辑部 | 对照官方文件 | ✅ 已通过 |
| §6 坑点 | 千方病案医学编辑部 | 逐条核验文献 | ✅ 已通过 |
| §7 DAIMS | 千方病案医学编辑部 | 交叉评审 | ✅ 已通过 |
| 全部数字 | 千方病案医学编辑部 | 来源核对 | ✅ 已通过 |
§10.5 AI 生成章节标注
以下章节由 AI 生成初稿并经人工审核:§1.0 30 秒速览、§3.0 版本抉择矩阵、§6.0-§6.4 代码示例、§6.5 八个坑点、§6.9 评估指标代码、§7.7 DAIMS 评估表与评分、§8.7 生态快照、§C JSON-LD。
§10.6 最后审核
最后一次人工审核日期:2026-09-05
页面状态:published(全部内容已完成审核并发布)
