Skip to contents

交付

  • U-M1s-09 ms_tally_rust(FFI):纯 Rust 组装核(排序→MNV 路由→2bit context→五表计数+ledger)+ FFI 导出(列主序进出、mmap 唯一 unsafe 位、逐分区中断轮询)。装配层新 skip 码:unknown_chrom / n_context(±2 窗 N,SPMG parity——sbs.rs 文档指派的调用方职责落地)/ n_dinuc / ref_mismatch / context_bounds。
  • U-M1s-10 ms_variants()(R 输入层):S7 泛型三分发(VCF/gz、TSV、MAF 路径 + data.frame 直构);多等位展开、<NON_REF>/breakend skip 计数、MAF Variant_Classification skip 统计、FILTER/caller/matched_normal/vaf_floor 体细胞信号透传;BCF 显式拒绝;构造器内部化 ms_variants_from_table()(唯一校验汇点)。
  • U-M1s-11 ms_tally()(装配):五模式(SBS96/192/384/1536/DBS78)→ .ms_tally_rust 单开关调用 → ms_catalog() 装配(labels 行名/hash 自动派生/ledger 与透传 provenance);strand 政策(192 无 strand 结构化错误不可降级、384 默认 N);五模式逐格无损对拍 + provenance/hash 断言。

审核(09/10:REVISE 1×P1 + 4×P2 → 全部修复;11 随批)

  • P1(语义级)跨样本 DBS 误配对:排序无样本维度致 cohort 模式下 S1/S2 相邻 SNV 被配成 DBS、两条 SBS 消失(SPMG dinuc 检测是单样本内的)。修复:分区改 (chrom, sample) 二元组 + 双层回归测试;golden 逐字节未变(金标批无跨样本相邻对——诚实核验而非侥幸)。可观察合法变化:中断轮询边界逐 (chrom,sample) run(polls 3→4 已如实更新)。
  • P2:io read.table 裸 simpleError → msuiter_error_parse;中断 mmap 地址空间保留至进程退出(U-M0-09 冻结限制)文档化于 lib.rs + ffi-surface(C-trampoline 硬化顺延 M8/CI);MAF Silent/Splice_Site 对齐 SPMG 默认过滤;ffi-surface:38 过期承诺改为如实状态(helper 统一顺延 M1s 收尾)。
  • P3(11 的被锁项):validator 接受 0 列 catalog(NULL colnames ≡ character(0))→ 空队列全零 MsCatalog 可达,SBS192 空队列免 strand 分支打通。

状态

  • 工作流文法前两环贯通:ms_variants() |> ms_tally() 端到端(VCF→2bit→MsCatalog)。
  • 电池:Rust 12 套件双工具链、testthat 1187 PASS、check 0/0/1NOTE、docs-sync 绿。
  • 遗留:helper 统一(M1s 收尾小单元);C-trampoline(M8/CI);U-M1s-12 ms_extract() 单方法 + U-M1s-14 KL 对拍 = M1s 收尾两单元。