Bio-Audit 演示 · 静态界面预览(image-to-code 复刻,非交互)——四屏关键界面与运行中应用逐屏一致:数据为 demo/data 提炼摘要 + run_audit 实时出分(engine 0.3.0 · ruleset 1.7.0 · ontology 0.1.3)。运行方式:pip install -e ".[demo]"streamlit run demo/app.py;完整交互(下拉/勾选/按钮)与评测页其余 tab 见运行应用。预览生成时间:2026-08-19(N-e 窗口)。

审计工坊

选一条(或对比至多三条)真实轨迹,实时跑完整审计管道——分数由引擎现场计算,零硬编码。演示默认路径:scrna_correct + scrna_error 并排对比。
演示状态存于浏览器会话(刷新不丢);恢复按钮 2 次点击生效。
① 选择案例
分析范式
scRNA
案例类型
经典轨迹
案例轨迹
scrna_correct · 85.0 pass
② 对比与运行
轨迹对比(≤3 条并排)
scrna_correct · 85.0 passscrna_error · 40.0 blocked
对比限同范式(跨范式混表对比分数违反口径分列纪律);同范式内决策数不同的轨迹并排时,缺失列显示「无此决策」——错位即信息。
轨迹并排对比
决策行按本体阶段顺序对齐——缺失列显示「无此决策」:错位即信息(如 DEG 无 doublet_detection)。
决策类型scrna_correct · 85.0 passscrna_error · 40.0 blocked
分数 · verdict · L 分布 · 问题
85.0
pass
L3×12
无 critical issue
40.0
blocked
L3×4 · L2×1 · L1×4 · L0×3
问题 7 条
api_data_integrityL3DETAILED_with_validationL3DETAILED_with_validation
doublet_detectionL3scDblFinderL0no_doublet_detection
qc_filteringL3MAD5_adaptive_thresholdL1hard_threshold
batch_correctionL3HarmonyL0no_integration
hv_gene_selectionL3vstL3vst
scRNA_normalizationL3SCTransformL3SCTransform
clustering_methodL3LeidenL2Louvain
deg_methodL3pseudobulk_DESeq2L1wilcoxon_rank_sum
dim_reductionL3PCA_elbow_selectionL1PCA_fixed_10
trajectory_inferenceL3monocle3L3monocle3
annotation_methodL3SingleR_with_CellTypist_cross_validationL1manual_marker
cluster_annotation_consistencyL3consistent_with_cross_validationL0not_checked
scrna_correct
85.0
pass
所有决策通过科学验证
/ 100 · 12 决策
数据处理85%
方法选择85%
统计严谨性
engine 0.3.0ruleset 1.7.0ontology 0.1.3实时 run_audit · scrna_correct
决策状态点
L3规则 1
数据获取与完整性
DETAILED_with_validation
L3规则 1
单细胞质量过滤
MAD5_adaptive_threshold
L3规则 1
双细胞(doublet)检测
scDblFinder
L3规则 1
单细胞归一化方法
SCTransform
L3规则 1
高变基因选择
vst
L3规则 2
批次校正与数据整合
Harmony
L3规则 1
降维方法
PCA_elbow_selection
L3规则 1
聚类方法
Leiden
L3规则 1
细胞类型注释方法
SingleR_with_CellTypist_cross_validation
L3规则 2
差异分析方法
pseudobulk_DESeq2
L3规则 1
拟时序/轨迹推断
monocle3
L3规则 1
聚类与注释一致性
consistent_with_cross_validation
分析流程时间轴
由决策点 + 本体阶段推导(v2 轨迹无 workflow 字段):正常 / 风险 / 危险 / 未验证(灰)四色节点;含决策的阶段标记「已审计」。
正常风险危险未验证 / 无法评估
data-acquisition数据获取已审计
L3数据获取与完整性DETAILED_with_validation
qc质量控制已审计
L3单细胞质量过滤MAD5_adaptive_thresholdL3双细胞(doublet)检测scDblFinder
preprocessing预处理已审计
L3单细胞归一化方法SCTransformL3高变基因选择vstL3批次校正与数据整合Harmony
inference推断已审计
L3降维方法PCA_elbow_selectionL3聚类方法LeidenL3差异分析方法pseudobulk_DESeq2L3拟时序/轨迹推断monocle3
interpretation解释已审计
L3细胞类型注释方法SingleR_with_CellTypist_cross_validation
conclusion结论已审计
L3聚类与注释一致性consistent_with_cross_validation

采集演示

机制层演示:采集交叉验证如何抓出「声明了但没做 / 做了但没声明 / 该做没做」——63.7 blocked 的完整复现。所有中间产物(对齐表 / verdict 流转 / 补入过程)由 demo/data 副本实时重算,零硬编码。
与审计工坊分工:工坊页 = 现象(点按钮看结果);本页 = 机制(勾选清单实时重算、看中间产物)——两处数字一致(验收会独立重算核对)。
① 声明 vs 事实对齐表(四类判定)
10X-B 真实交叉验证逐决策对齐(demo/data 副本实时重算):「一致 / 虚报 / 漏报 / 未验证」四色 + expected 补入徽章;M3 事实 = 该类型最终 operative 实例的工具签名。
一致 10虚报 1漏报 0未验证 0补入 expected 1
一致虚报(声明未执行)漏报(执行未声明 → 自动补入)未验证(双方都无,不伪造)
决策点判定M1 声明M3 事实机制说明
双细胞(doublet)检测
doublet_detection
虚报补入 expectedskip_doublet无执行证据M3 无 doublet_detection 任何执行证据,声明 'skip_doublet' 未执行 → 虚报;预期决策点缺失 → 补入 provenance=expected(该做没做)
单细胞质量过滤
qc_filtering
一致MAD5_adaptive_thresholdSeurat mt_frac outlier×8 实例声明 'MAD5_adaptive_threshold' 已执行但被后续迭代取代(operative='MAD5_adaptive_threshold',实例 1 → 8)
批次校正与数据整合
batch_correction
一致Harmonyscanpy.external.pp.harmony_integrate×12 实例声明 'Harmony' 已执行但被后续迭代取代(operative='Harmony',实例 1 → 12)
高变基因选择
hv_gene_selection
一致vstscanpy.pp.highly_variable_genes×3 实例声明 'vst' 已执行但被后续迭代取代(operative='vst',实例 1 → 3)
单细胞归一化方法
scRNA_normalization
一致SCTransformscanpy.pp.sc_transform×20 实例声明 'SCTransform' 已执行但被后续迭代取代(operative='SCTransform',实例 1 → 20)
聚类方法
clustering_method
一致Leidenscanpy.tl.leiden×2 实例声明 'Leiden' 已执行但被后续迭代取代(operative='Leiden',实例 1 → 2)
差异分析方法
deg_method
一致pseudobulk_DESeq2pseudobulk DESeq2×5 实例声明 'pseudobulk_DESeq2' 已执行但被后续迭代取代(operative='pseudobulk_DESeq2',实例 1 → 5)
降维方法
dim_reduction
一致PCA_elbow_selectionPCA elbow/JackStraw×8 实例声明 'PCA_elbow_selection' 已执行但被后续迭代取代(operative='PCA_elbow_selection',实例 1 → 8)
多重检验校正
multiple_testing_correction
一致BHstatsmodels p.adjust BH×2 实例声明 'BH' 已执行但被后续迭代取代(operative='BH',实例 1 → 2)
显著性阈值
significance_threshold
一致padj <= 0.05, |logFC| >= 1.0padj+logFC filter×2 实例声明 'padj <= 0.05, |logFC| >= 1.0' 已执行但被后续迭代取代(operative='padj <= 0.05, |logFC| >= 1.0',实例 1 → 2)
细胞类型注释方法
annotation_method
一致CellTypistCellTypist×17 实例声明 'CellTypist' 已执行但被后续迭代取代(operative='CellTypist',实例 1 → 17)
② verdict 状态位流转
verdicts jsonl 25 行原始记录:M1 主动上报即 provisional → 交叉验证一致转 final / 判虚报撤销为 revoked;expected 补入直接 final。下方计数 = 记录分布(与冻结锚点 11/13/1 一致);逐行展示每条 verdict 的流转(终态)。
provisional 11final 13/revoked 1
provisionalfinal · 一致/revoked · 虚报/final · expected 补入
单细胞质量过滤b591c400-d07
MAD5_adaptive_threshold
final · 一致
声明 'MAD5_adaptive_threshold' 已执行但被后续迭代取代(operative='MAD5_ada
双细胞(doublet)检测9375bb17-504
skip_doublet
revoked
M3 无 doublet_detection 任何执行证据,声明 'skip_doublet' 未执行 → 虚报
高变基因选择223884bb-3a3
vst
final · 一致
声明 'vst' 已执行但被后续迭代取代(operative='vst',实例 1 → 3)
单细胞归一化方法2293f68b-9ab
SCTransform
final · 一致
声明 'SCTransform' 已执行但被后续迭代取代(operative='SCTransform',实例 1 →
降维方法f4a3adf3-23d
PCA_elbow_selection
final · 一致
声明 'PCA_elbow_selection' 已执行但被后续迭代取代(operative='PCA_elbow_se
批次校正与数据整合78f29977-5ca
Harmony
final · 一致
声明 'Harmony' 已执行但被后续迭代取代(operative='Harmony',实例 1 → 12)
聚类方法063590e0-150
Leiden
final · 一致
声明 'Leiden' 已执行但被后续迭代取代(operative='Leiden',实例 1 → 2)
细胞类型注释方法4cd60d2f-255
CellTypist
final · 一致
声明 'CellTypist' 已执行但被后续迭代取代(operative='CellTypist',实例 1 → 17
差异分析方法36a3d23d-755
pseudobulk_DESeq2
final · 一致
声明 'pseudobulk_DESeq2' 已执行但被后续迭代取代(operative='pseudobulk_DES
多重检验校正aa650250-531
BH
final · 一致
声明 'BH' 已执行但被后续迭代取代(operative='BH',实例 1 → 2)
显著性阈值344d77b4-ff2
padj <= 0.05, |logFC| >= 1.0
final · 一致
声明 'padj <= 0.05, |logFC| >= 1.0' 已执行但被后续迭代取代(operative='pad
数据获取与完整性5451908d-831
not_performed
final · expected 补入
预期决策缺失补入(expected_types)
双细胞(doublet)检测b287008e-dd7
skip_doublet
final · expected 补入
预期决策缺失补入(expected_types)
双细胞(doublet)检测281529d9-aa1
skip_doublet
final · expected 补入
预期决策缺失补入(expected_types)
③ expected_types 机制交互(63.7 复现)
勾选预期决策点清单(读 expected_types.yaml)→ 实时重算:「静默跳过被补入 → L0 → 63.7 · blocked」;与断言基准 windowL_10X_B_expected.json 实时比对。
63.7
blocked
检测到致命科学错误 — 分析结果不可信
/ 100 · 11 决策(10X-B expected 口径)
与断言基准一致(windowL_10X_B_expected.json:63.7 · blocked · 11 决策)✓

评测与奖励

凭什么信这套评分:60 任务 benchmark、双平台黄金对照、reward 校准与真实评测档案。
benchmark 摘要平台对照reward 校准真实评测档案
60 任务 benchmark · 检出与一致性
0.820
recall
gold error 检出率(623 决策中 error 50)
0.7455
precision
检出结果中确为错误的占比
0.7810
F1
recall 与 precision 调和均值
0.8336
IRR κ
623 决策 · 一致率 93.58%(出处 F1 报告)
gold 分差 gap = +0.046(读自 benchmark_run_baseline.json · G 基线产物);M 窗口复跑 +0.0449(delta_after_m 键)——预注册口径 [-0.10, +0.10] 区间内无告警。
correct 477edge 96error 50合计 623 决策 · taskset 1.1.0
层间比较(strata)
范式 deg0.4431[0.3014, 0.5792] · n=18
范式 pan0.6264[0.5228, 0.7193] · n=20
范式 scrna0.5757[0.4522, 0.6826] · n=22

关于

Bio-Audit 是什么、为什么可信、接下来做什么。
Bio-Audit 把单细胞分析方法学审计自动化:分析管线被拆成一条条决策,逐条对照可执行规则给出等级与依据——分数可复现、结论可追溯、证据可展开
三个价值层
01
lint 层 · 审得准
像代码 linter 逐行检查一样,把「分析怎么做的」拆成一条条方法学决策(QC 怎么过滤、双联体有没有检测、归一化选了什么、多重检验校没校正…),逐条对照规则库给出等级(L3 正确 → L0 危险)与文献依据。不是给个总分了事——每一步都有说法,可展开、可追溯。
02
benchmark 层 · 信得过
60 条带人工标注的任务集 + 双平台黄金对照 + 真实运行档案组成回归底座:每次引擎/规则改动先重放,golden 0 差异 + pytest 全绿才允许合入——修好一个不弄坏十个,数字有出处、口径分列。
03
reward 层 · 可训练
把等级映射成奖励信号(L4 1.00 → L0 0.00,L-1 mask),给未来的分析 Agent 当强化学习信号。当前诚实标注 experimental_uncalibrated——未做 RLHF 校准,不用于生产决策。
274
pytest 测试
pytest --collect-only 实测(与实跑同源)
3.10+3.12
CI 双矩阵
Python 3.10 / 3.12 双矩阵(pytest 全量 + golden 重放 + 三/四/五闸 + reward-validate;.github/workflows/ci.yml)
0 差异
golden 重放
20 轨迹 137 决策重放 0 差异(tests/golden/golden_expected_output_after.json 冻结基线;提交级守卫)
0.3.0 · 1.7.0 · 0.1.3
三元组快照
engine · ruleset · ontology(每页结果带)