模态 ↔ Pipeline 验证映射
先记住一个决定性判断,它决定了哪些 pipeline 适合用它验收。
关键定位:端到端「验收测试」,不是数值「回归测试」
BioMysteryBench 的标准答案都是「对原始 / 最小处理数据做完整分析后得到的单一客观生物学结论」,且评分只看最终答案。所以它验证的是「你的 pipeline 从 raw data 出发跑完,最终能不能导出正确结论」——这是 黑盒级验收,不是逐位点比对中间 BAM/VCF/矩阵的白盒数值测试。带着这个定位看下表。
基准覆盖的模态 → 你能用它验收的 pipeline
左列为基准覆盖的模态 / 官方示例任务,右列为可用对应题目验收的 pipeline 与命中点。
| 数据 / 任务 | 可验收的 pipeline | 验证的命中点 |
|---|---|---|
| scRNA-seq → 判器官 / 细胞类型 | 单细胞 RNA-seq(比对·定量→聚类→注释) | 注释 / 聚类能否正确推出器官来源、细胞类型 |
| bulk RNA-seq → 找敲除基因 | 差异表达(比对→定量→DE) | DE 能否定位被敲基因(应为 0 / 显著缺失) |
| RNA-seq → 病毒物种鉴定 | 病原 / 宏转录组检测(去宿主→比病毒库) | 物种判定是否命中(有的经 PCR 正交验证) |
| WGS → 亲子 / 亲缘 | 种系变异 calling(比对→GATK→亲缘 / 亲子) | 能否正确判定父本、母本 |
| 甲基化 | bisulfite(Bismark→甲基化 calling→DMR) | 下游甲基化状态 / 判别结论 |
| ChIP-seq → peaks 判 TF / 细胞类型 | ChIP-seq(比对→MACS2→注释 / motif) | peak 注释能否反推 TF(如 CTCF)/ 细胞类型 |
| 宏基因组 → 物种鉴定 | metagenomics(质控→kraken2 / MetaPhlAn) | 物种 / 功能分类是否命中 |
| Hi-C | Hi-C(比对→接触矩阵→TAD / compartment) | 结构层面的判别结论 |
| 蛋白组 / 代谢组 | proteomics(MaxQuant / FragPipe)/ 代谢组(峰提取→注释) | 鉴定 / 注释类结论 |
| 蛋白质结构 (PDB) → 判物种 | 结构 / 序列比对(BLAST vs PDB / UniProt) | 物种 / 同源判定 |
注:含单细胞 scRNA-seq;未包含空间转录组(spatial)——空间组场景目前验不了,详见 FAQ。
把它当验收集的 4 步
每道题 = 一份真实数据(data/<id>.zip)+ 明文答案(answer_rubric)。把它接进你的回归测试只需:
# 1) 取一道与你 pipeline 模态匹配的题,解压它的数据
unzip data/hb002.zip -d work/hb002
# 2) 用你自己的 pipeline 跑这份 raw data,产出最终结论
my_pipeline --in work/hb002 --out work/hb002/result.txt
# 3) 从 problems.csv 读该题的 answer_rubric(含 "The answer is X")
# 解析出期望答案,与 pipeline 结论比对
# 4) 命中即 PASS,纳入跨版本回归
assert pipeline_conclusion == expected_answer # all-or-nothing
因为评分是 method-agnostic 的,你的实现路径和官方不同也没关系——只要最终结论对得上 rubric 答案即算通过。
✅
只用「专家可解」子集当基线
problems.csv 有 human_solvable 字段。把 专家未解出 的 23 道排除在 pass/fail 基线之外——那是测前沿能力的,不是回归基线。
🎚️
适合「判别」,不适合「定量」
它只给定性的最终结论,不给金标准的 BAM/VCF/矩阵。要验数值精度,请配合 nf-core test-data、GIAB、SEQC、模拟数据——与它互补。
一句筛选法则
某道题能验你的 pipeline ⟺ 它的模态匹配你的输入,且 它的「正确答案」正好是你某个 pipeline 环节本该产出的结论。