docs: explain why mt and genome scope cannot share threshold sampling
The pass-threshold is estimated from the observed distribution of modification probabilities, so the sample must represent the material being called. mtDNA carries comparatively little methylation and its BAM holds fewer reads than modkit's default --num-reads, so all reads are used and the estimate is deterministic unseeded. The whole genome carries far more methylation and greatly exceeds --num-reads, so modkit subsamples, which is why genome scope passes --seed and --sampling-frac and mt scope passes neither. modkit_seed, modkit_sampling_frac and --filter-percentile are therefore not scope-neutral. Copying a value across scopes changes what the threshold represents. Records the seed history (277e8382 removed it; it returned for genome scope only) and the fact that the 3 July 2026 hippocampus run is reproducible under seed 42 but will not reproduce bit-identically under the current tree, because the subsample is now pinned to 10%.
Loading
Please register or sign in to comment