Skip to content

mirpy-lib 3.15.0

Choose a tag to compare

@mikessh mikessh released this 23 Sep 23:34
· 105 commits to master since this release

All six scale references ship, including tissue

--scale corpus studies scaled columns
deep-tcr 7 deep amplicon cohorts, 4,080 samples — 394 / 1,403
blood 23,234 blood samples 947 1,377 / 1,403
blood-unweighted same corpus, one vote per sample 947 1,377 / 1,403
blood-v3 same corpus, pre-3.11 fit, kept for continuity 947 1,377 / 1,403
tissue 13,577 tissue samples 1,024 1,360 / 1,403
tissue-unweighted same corpus, one vote per sample 1,024 1,370 / 1,403

v3 was fitted under mirpy 3.9.0, which predates weight_by_group/min_n_groups entirely, so it is a per-sample fit whether or not anyone intended one. The v4 arms are the same corpora refitted with min_n_obs=1000, min_n_groups=20, and the weighting stated explicitly.

cstar did not move and neither did the rotation. The coverage constants are consumed at emission time and are already baked into the matrices these fits read, so v3 → v4 moves location and scale only.

Tissue is not blood, measured

Over the 1,359 columns the blood and tissue references both establish, the median scale ratio is 0.721 and the largest location difference is 17.2 robust deviations. A tissue sample read against the blood reference is not slightly off, it is in the wrong units, and the div columns are where it shows first.

vsig:kmer can finally be declared

kmer_spaces_v1.npz ships. Until it existed the block could not even be declared: layout.py fixes a block's width at declaration and the k-mer block's width is whatever rank was fitted. 7 loci at rank 32, from 423 surviving terms (TRG) to 38,962 (IGH).

from vdjtools.signature.kmer import register_kmer
from mir.signature import load_kmer_spaces

register_kmer(load_kmer_spaces())      # vsig:kmer, 33 columns x 7 loci

Registering is opt-in, and it appends. core (152) and standard (688) are untouched; full goes 1,403 → 1,634 with the first 1,403 columns keeping their meaning and their index. A vector computed before registering stays valid — asserted by a test, because it is the whole contract.

Note on size

The wheel is now 10 MB, up from 3 MB. The k-mer artifact is the entire increase, and it is stored float32 for that reason — float64 would have made it 14.2 MiB rather than 7.0 MiB, at a worst-case projection error of 4.9e-9 relative. Requires vdjtools >= 3.12.1, which is what makes these files loadable without pickle.