Devlog · M3b 收官三件:U-M3b-04 / 05 / 06(2026-10-04)
Source:vignettes/articles/devlog-2026-10-04-M3b-close.qmd
状态:交付完成,M3b 6/6 待终审确认后正式勾选 ROADMAP(本单元不 git commit;设计备忘
2026-10-04-M3b-design-memo.md§5 切分表 + PI 裁决三分为实现锚)。 输入锚:src/rust/src/calibrate.rs(U-M3b-03 纯核 +ms_calibration_grid_rustFFI,含 verdict 字段)、engine/resample.rs::nb_sample(U-M3b-01)、fit.rs BCa 面(U-M3b-02)、R/fit.R(ms_fit / ms_fit_bootstrap 装配惯例)。
U-M3b-04 · R 面装配(R/calibrate.R,PASS)
-
ms_calibration_grid(sigs, n_grid, shares, m, n_boot, bca, n_threads, seed, n_samples, nb_size, arm, window) -> data.frame:198-cell 概念网格的单字典扫面(n_grid-major × shares cell 序)——列n / share / cell / mean_coverage / se / n_reps / pass_window / true_zero / false_keep / false_zero / kept_covered / kept_missed;协议回显(window/arm/bca/n_boot/seed/n_samples/nb_size/n_grid/shares)随 attributes。m= 备忘的 M(每 cell MC reps,冻结协议 2000 → 4SE 窗 [0.930, 0.970])。 -
ms_calibration_verdict(calibration, window) -> list:核侧calibration_verdict的纯 R 孪生——含端点窗成员、all_in_window、per_cell_in、1-basedfailing_cells;测试断言与内核pass_window逐位相等(.ms_bh_adjust 孪生纪律)。 - **R 面校验(先行层,msuiter_error_*):sigs 矩阵 finite/非负、n_grid 正整数严格递增**(R 面曲线契约,严于内核)、share∈[0,1] finite、m/n_samples 正整数 i32 域、bca/arm/window 门(arm 三形
multinomial/poisson/nb:<κ>);.ms_calibration_grid_rustwrapper 走 t(sigs) 布局契约 +.msffi_check。 -
测试(tests/testthat/test-calibrate.R,9 testthat 块全绿):小网格 2×2×3 装配形状/列序/tally 代数(se = √(p(1−p)/6) 解析对位)、孪生 verdict 逐位、threads∈{1,2} identical + seed 确定性 + 异 seed 移动、bca/poisson/nb:8 臂回显、错误路径 ~30 条(全部 msuiter_error_* 结构化)、FFI 边界 NA→
na层。 - 偏离契约:无。
_rust名不进用户承诺面(ffi-surface 既有行未动;L-H 表只记四个用户 API)。
U-M3b-05 · 曲线判据可视化(R/calibrate-plot.R,PASS)
-
plot_calibration_curve(calibration_df, window, se) -> ggplot:coverage vs N(log x、CoordCartesian y∈[0,1]、0.95 虚线参考)、判据窗灰带(annotate rect,有限带边避开 log10 对 ±Inf 的 NaN 变换警告)、逐 cell 二项误差棒、按 share 分面、pass_window == FALSE格红叉标记层(不重判,只标记内核列)——CAPABILITY-MATRIX 清单第 7 条「覆盖率曲线作为一等可视化」首面。 - 测试(test-calibrate-plot.R,4 块全绿):图层结构断言(GeomRect/Errorbar/Line/Point、FacetWrap、双 panel、轴标签)、失败格增层 + se=FALSE 去层、真实小网格集成 + ggsave 非空 PNG、错误路径。
-
偏离契约(记入 devlog,待终审):任务书称「ggplot2 已在 Imports」——实际 DESCRIPTION Imports 仅 S7/rlang。按零新增硬依赖纪律落 Suggests + 调用时
requireNamespace惰性守卫(缺席 →msuiter_error_package)。
U-M3b-06 · real-data sanity harness(R/calibrate-real.R + inst/sanity/README.md,PASS)
-
ms_calibration_sanity(catalog_real, sigs_real, n_boot, bca, dilution_sizes, n_dilutions, synthetic, tolerance, seed, nb_size, n_threads) -> ms_calibration_sanity:生产面全量拟合(likelihood_bidirectional / 0.01 / rescale)→ 声明 pseudo-truth → 降采样稀释Multinomial(N, counts_j/total_j)(K 轴 {100, 1000, 10000} 默认;base Rrmultinom固定序 + RNG 状态进出恢复)→ 逐级生产面 + CI(percentile/BCa)→ S(N) = 稀释 CI 对稀释后 pseudo-truth(share ≥ 0.05 内点)的覆盖率 → 验收:与合成主臂曲线同 N 差 ±0.05(或 [0.90,1.00] 地板,取宽者之并)∧ 无系统性单调反转(>容差步降过半数为 systematic)。 - 协议文档(inst/sanity/README.md):非声明纪律(sanity 永不写成 calibration 证据)、PCAWG WGS 十分位 ≥20 例主(WTSI/ICGC 公开矩阵路径 + 治理:只取聚合 channel counts、快照日期入分析日志、目录不入库)、TCGA GDC open WXS 副(治理最净、TMB 天花板、WES/panel 轴推迟 M4)、用法 sketch、D13 措辞禁令。真实数据零下载零提交(本单元仅有合成 fixture 测试)。
- 测试(test-calibrate-real.R,8 块全绿):合成小例端到端 PASS(S 钉 1,1;seed 鲁棒)+ 混合签名 FAIL 臂(S 0.92→0.67:within FALSE + systematic inversion)、确定性 + RNG 状态恢复、±0.05 双向 + 地板并集、死样本记账、单调门/窗门纯函数直钉(二进制精确 dyadic 值)、错误路径 ~15 条。
- 实现期修正(自纠,测试钉位):S(N) 尺度对齐——稀释 CI 在稀释计数尺度,pseudo-truth 必须同深度稀释(factor = N/total_j,多项恰守恒)后比较。
收口声明
- M3b 六单元 6/6 交付在位:U-M3b-01 NB 原语(resample.rs)、02 BCa+FFI(fit.rs)、03 校准驱动(calibrate.rs + ffi-surface diagnostic 档)、04 R 面装配、05 曲线可视化、06 sanity harness。
- 验收:
devtools::test()全绿(30 套件 0 失败,基线 2577 + 新增 3 套件 calibrate/calibrate-plot/calibrate-real);R CMD build exit 0 + check(–no-manual,本机无 TeX)NOTE 收敛至 1(License+ file LICENSE项为 DESCRIPTION 既有口径,非本单元引入,不动治理面);docs-sync 绿(四个新 API 已入 L-H 表 + ARCH §5 MSU-Fit 行补记,44 项 0 drift);check-dep-direction 绿;ffi-surface 漂移守卫不动(无新 Rust 导出)。 -
收口顺手修(Rd 卫生,服务于 ≤1 NOTE):(a) 本单元
ms_calibration_gridRd 的StreamId{...}花括号与 (b) U-M3b-02 遗留的ms_fit_bootstrapRdPhi^{-1}(#{boot < point}/B)花括号按 Rd 转义修复(\{),Rd2HTML/checkRd 双双零告警;(c)plot_calibration_curve以@importFrom rlang .data消除「no visible binding」NOTE(rlang 本在 Imports,零新依赖)。 -
环境注记(2026-10-04 本机):CLT SDK 于当日更新致
MacOSX.sdk悬空别名 + clang 17/SDK 27 tbd 失配——R CMD 构建须SDKROOT=MacOSX26.5.sdk;pdflatex 缺失故 check 用--no-manual(均为环境事实,非包缺陷;CI/终审机如 TeX 齐全可直接全量 check)。 -
遗留(不阻塞,留给终审/M4):(a) 分层 calibrated-percentile 升级臂未触发(主臂在窗,阶梯第 2 步无实装需求——设计备忘 §2.3 保留);(b) 真实 PCAWG/TCGA 目录的实际 sanity 运行待数据到位(协议就绪,governance 记录随首次运行补 devlog);(c) G2 统计学 co-author 门为 ROADMAP 独立条目,非本三件范围;(d) 任务书「ggplot2 在 Imports」与仓库事实不符,已按 Suggests 纪律处理(见 U-M3b-05 节);(e) sitrep「not yet」口径同步为实验面已交付(ms_sitrep 文案更新,测试语义
planned|M3b不变仍绿)。 - ROADMAP M3b 勾选待终审确认——本文件为关闭依据,不代勾。