Skip to content

mirpy-lib 3.14.0

Choose a tag to compare

@mikessh mikessh released this 23 Sep 22:52
· 107 commits to master since this release

The bulk-blood scale reference ships, and it fills the B-cell hole

--scale blood-v3 selects a reference fitted on 23,234 bulk blood RNA-seq samples across 947 SRA study groups. It was fitted on 2026-08-13 and never pulled into a wheel. It is in this one.

Measured on 20 samples of the SRA cohort in isalgo/airr_benchmark, --preset classify:

reference columns nan for every sample
deep-tcr (default) 28 of 615
blood-v3 3 of 615

The 25 recovered columns are vsig:div:{0D_c,1D_c,2D_c,clonality} and vsig:pgen:frac_atypical on IGH, IGK, IGL, TRG and TRD -- the five loci the amplicon reference has no coverage constant for. It scales 1,377 of 1,403 columns against the default's 394, and carries cstar for all seven loci against the default's two.

mir signature --preset classify --scale blood-v3 samples/*.tsv -o sig.tsv

It is a drop-in. Column order is byte-identical to the default, asserted by a test, so nothing already computed moves position or meaning -- holes get filled and nothing else changes. The default is unchanged, so existing users pay nothing.

Weighted and unweighted names

Each RNA-seq corpus will ship two fits: blood / blood-unweighted, tissue / tissue-unweighted. Weighted gives every study one vote, unweighted every sample.

Weighted is the default and the measurement is not close -- held-out-study agreement at 640 study groups (~14,500 samples), five seeds: 0.843-0.857 of columns pass on both location and scale weighted, against 0.533-0.551 unweighted. The unweighted fit ships anyway: it is the right reference when your cohort is one large study.