Domain and codebase terms as MuMDIA uses them. Each entry is self-contained.
Assertions about code behavior cite file:line against the source tree; read
that source to confirm details. Terms are alphabetical.
AIF (all-ion fragmentation). A wide isolation mode in which no quadrupole
window is applied, so every precursor in the scan range is co-fragmented into one
highly chimeric MS2. When convert sees an MS2 whose isolation bounds are both
zero, it synthesizes a full-range window [0, 1e6] so the scan is treated as
covering all precursors (rust/mumdia/crates/mumdia/src/stages/convert.rs:143).
The LFQ_Orbitrap_AIF_Ecoli_01 benchmark file is AIF.
apex. The retention-time point (a scan or a small scan group) where a
candidate's co-eluting fragments are strongest, taken as the PSM's single
representative scan. extract locates it as the final step of its acceptance
cascade and emits one apex-level PSM per surviving candidate
(rust/mumdia/crates/mumdia/src/stages/extract.rs:10). Because a single fragment
m/z channel is chimeric in DIA, the apex is chosen by co-eluting fragment breadth,
optionally by only the top-K predicted (signature) fragments, rather than by raw
maximum intensity (rust/mumdia/crates/mumdia-core/src/config.rs:413).
candidate_id. The dense integer key for one library entry (a peptidoform at a
charge). It is a precondition of the fragment index that candidate_id be the
contiguous range 0..n in precursor-row order, and that precursors be sorted
ascending by precursor m/z; Library::load checks both and fails loudly if
violated (rust/mumdia/crates/mumdia/src/index.rs:74,
rust/mumdia/crates/mumdia/src/index.rs:135). This lets the inverted index recover
the isolation-window candidate slice by a binary search over candidate_id, since
candidate_id order equals precursor-m/z order
(rust/mumdia/crates/mumdia/src/index.rs:6).
chimeric spectrum. An MS2 in which fragments from several co-isolated,
co-eluting precursors overlap in one spectrum, the normal case in DIA (in
wide-window DIA about 98% of fragment m/z collide within tolerance,
rust/mumdia/crates/mumdia-core/src/config.rs:127). Chimeric interference is why
intensity-based apex selection and single-scan gates are unreliable, and why
in-silico decoys can under-model the true false-match population (motivating the
entrapment cross-check, rust/mumdia/crates/mumdia/src/fdr.rs:60).
chromatogram / XIC (extracted ion chromatogram). The intensity of one m/z
channel traced across retention time. extract emits a per-fragment chromatogram
for each surviving candidate plus MS1 isotope XICs for the precursor
(rust/mumdia/crates/mumdia/src/stages/extract.rs:12); features and quant
read these traces for co-elution, apex-shape, and integration.
claimed / contested / shared peak. In chimeric DIA one observed peak often
matches several candidates at once. A shared peak is one matched by more than one
candidate; claiming is the policy (PeakClaim) that decides how its intensity is
apportioned so a chimeric candidate cannot borrow a real peptide's peak wholesale,
ranging from None (every claimant gets the full peak) through winner-take-all to
co-elution-profile apportionment
(rust/mumdia/crates/mumdia-core/src/config.rs:132). With
emit_contested_features the extractor records a non-destructive contested_frac
per PSM: the fraction of a candidate's matched intensity a co-eluting competitor
claims more strongly (rust/mumdia/crates/mumdia-core/src/config.rs:454). All peak
claiming is default-off.
co-elution. Agreement in retention-time shape: a candidate's fragments should
rise and fall together over the same scans. extract uses a consecutive-scan
co-elution run in its acceptance cascade
(rust/mumdia/crates/mumdia/src/stages/extract.rs:11), and the co-elution feature
family scores each fragment's XIC against a predicted-intensity-weighted reference
profile (rust/mumdia/crates/mumdia/src/stages/features/coelution.rs:3). It is
temporal agreement, orthogonal to intensity-pattern agreement.
decoy (reverse / scramble / shift). A deliberately false library entry used to
estimate the false discovery rate. MuMDIA mints one paired decoy per target at
digest time: Reverse reverses the interior residues keeping the C-terminal
residue fixed, Scramble runs a seeded deterministic Fisher-Yates shuffle of the
interior (rust/mumdia/crates/mumdia/src/stages/digest.rs:99). Native decoys are
collision-checked: a decoy that would collide with a target or an already-emitted
decoy is re-scrambled with independent seeds while keeping the C terminus fixed,
and dropped if no distinct sequence is found
(rust/mumdia/crates/mumdia/src/stages/digest.rs:137). DiannShift (a
terminal-residue fragment m/z shift) is threaded through config but realized
nowhere and rejected by validation
(rust/mumdia/crates/mumdia/src/stages/digest.rs:126,
rust/mumdia/crates/mumdia-core/src/config.rs:1021). The default is Reverse
(rust/mumdia/crates/mumdia-core/src/config.rs:20).
DeepLC fine-tune. An optional per-run adaptation of the DeepLC retention-time
model on the confident seed PSMs, run between search-seed and RT calibration; it
writes a new _ft precursor-library table with replaced predicted_irt and
rebinds downstream stages to it; the input file is unchanged. It is opt-in
(rt_im_train.finetune_deeplc) and nondeterministic (no fixed torch/numpy seed).
See iRT.
entrapment. An optional decoy-independent FDR cross-check that spikes a foreign
proteome into the search library and treats those spike-in PSMs as real negatives.
entrapment_q estimates FDR = (ratio * n_entrap + 1) / max(1, n_real), the
empirical-null analog of target-decoy q that also feels the chimeric interference
in-silico decoys under-model (rust/mumdia/crates/mumdia/src/fdr.rs:64). A PSM is
classified as entrapment when its protein contains entrapment_marker (with
exclude/contaminant carve-outs, rust/mumdia/crates/mumdia/src/stages/rescore.rs:577).
Opt-in via RescorerKind::Entrapment; the default path relies on target-decoy FDR.
final ID (vs seed). The identifications reported to the user, produced by
rescore from the extracted, feature-scored, competed PSMs with target-decoy
q-values. This is distinct from the seed search, whose only purpose is calibration
(see seed). See q-value.
gate (min_frag_corr) and GateMode. The extraction acceptance gate: a
candidate is rejected when its observed-vs-predicted fragment agreement falls below
extract.min_frag_corr (default 0.2; 0 disables,
rust/mumdia/crates/mumdia-core/src/config.rs:406,
rust/mumdia/crates/mumdia-core/src/config.rs:522). GateMode selects which
agreement score is thresholded: ApexPearson (single-apex-scan intensity Pearson,
the default), PeakSpectral (peak-integrated spectrum), SpectralEntropy (Li
similarity on sqrt-transformed intensities), Coelution (temporal correlation), or
Combined (spectral AND co-elution), at
rust/mumdia/crates/mumdia-core/src/config.rs:551. Gating on the rescorer's single
best discriminator regresses end-to-end, so a strong discriminator is the wrong
criterion for a gate.
hyperscore. The Sage-style score used by search-seed, defined as
ln(matched!) + ln(1 + summed matched intensity)
(rust/mumdia/crates/mumdia/src/stages/search_seed.rs:413). It ranks candidates in
the broad seed search only; it is not the final rescoring score.
inverted fragment index. A peak-major index mapping fragment m/z to the
candidates that predict a fragment there, so extraction work scales with
peak-candidate collisions rather than library size. The Library form is a flat
structure-of-arrays globally sorted by fragment m/z and bucketed, with candidates
ordered by precursor m/z within a bucket
(rust/mumdia/crates/mumdia/src/index.rs:1); the default fragindex matcher is a
separate log-binned CSR implementation of the same idea
(rust/mumdia/crates/mumdia/src/matchers/fragindex.rs:1). See matcher.
iRT (indexed retention time). A run-independent predicted retention-time
coordinate carried per candidate as predicted_irt. predict-frag assigns it
natively or from a DeepLC sidecar
(rust/mumdia/crates/mumdia/src/stages/predict_frag.rs:3); rt-im-train calibrates
iRT onto this run's observed RT (linear or LOESS) and derives per-candidate RT
windows from the residuals (rust/mumdia/crates/mumdia/src/stages/rt_im_train.rs:1).
Peptidoforms with no predicted iRT are anchored at 0.0: this is the silent
construction default (rust/mumdia/crates/mumdia/src/stages/predict_frag.rs:96),
and the DeepLC path additionally logs a warning when the sidecar returns no iRT
(rust/mumdia/crates/mumdia/src/stages/predict_frag.rs:298). See DeepLC fine-tune.
isolation window. The precursor m/z range the instrument selected for
fragmentation in an MS2, given as (target, lower, upper). extract and
search-seed use it to restrict candidates to those whose precursor m/z falls
inside the window (Library::candidate_range,
rust/mumdia/crates/mumdia/src/index.rs:238). In AIF/all-ion scans there is no
quadrupole selection, so a full-range window stands in (see AIF).
manifest. manifest.json, the per-run provenance record run writes: the
resolved config and its hash, per-stage model identities, and one
ArtifactRecord per output (path, schema, row count, content hash, producing
stage). Provenance is recorded, not required: because every stage reads
path-addressable inputs, no stage depends on the manifest to run
(rust/mumdia/crates/mumdia-core/src/manifest.rs:1).
matcher (fragindex). The fragment-matcher backend shared by search-seed and
extract. The default Fragindex is a log-space-binned CSR inverted index that is
faster than the older Bucketed Library::page_search path with essentially
unchanged identifications (rust/mumdia/crates/mumdia-core/src/config.rs:34,
rust/mumdia/crates/mumdia/src/matchers/fragindex.rs:1). Both apply the same
f32-stored / f64-verify ppm predicate.
MBR / transfer (match-between-runs). A cross-run step (Stage D3) that transfers
an identification confident in one run to a run where it scored below threshold,
gaining sensitivity. In MuMDIA it is a stub with config hooks and a Python sidecar
contract (mbr_worker.py); the default is no MBR and it needs at least two runs
(rust/mumdia/crates/mumdia/src/sidecar.rs:157,
rust/mumdia/crates/mumdia-core/src/config.rs:845). A transferred PSM is flagged
is_transferred with its q-value lowered
(rust/mumdia/crates/mumdia/src/main.rs:249).
mokapot. An opt-in Python rescoring sidecar (RescorerKind::Mokapot) run over
the PIN file with a logistic-regression default; the default rescore.strict=true
makes failure fatal. Setting strict false explicitly enables native compatibility
fallback
(rust/mumdia/crates/mumdia-core/src/config.rs:941,
rust/mumdia/crates/mumdia/src/stages/rescore.rs:172). See percolator_lite.
nn_torch. An opt-in PyTorch semi-supervised MLP rescoring sidecar
(RescorerKind::NnTorch, nn_rescore_worker.py) over the same PIN contract as
mokapot; a nonlinear Percolator/mokapot-style model with CV folds and iterative
positive re-selection that beats the linear model on the E.coli benchmark and gains
further when the extraction gate is opened
(rust/mumdia/crates/mumdia-core/src/config.rs:107).
peptidoform. A concrete modified peptide: a stripped sequence plus a specific
placement of fixed and variable modifications and a charge state. peptidoforms
expands stripped peptides into peptidoforms and emits each as a ProForma-lite
string with UniMod names (rust/mumdia/crates/mumdia/src/stages/peptidoforms.rs:1).
One peptidoform at one charge is one library candidate (see candidate_id).
percolator_lite. The native default rescorer (RescorerKind::NativeTda): a
deterministic Percolator/mokapot-style linear model that standardizes features and,
per CV fold, trains logistic regression on confident targets versus all decoys with
iterative positive-set re-selection, then computes target-decoy q-values
(rust/mumdia/crates/mumdia/src/rescoring.rs:1). It is always available and needs
no external dependency.
pg_q_value. See q-value.
precursor. The intact peptide ion selected for fragmentation, i.e. a
peptidoform at a charge, characterized by its precursor m/z. It is the grouping key
for precursor_q (peptidoform + charge,
rust/mumdia/crates/mumdia/src/stages/rescore.rs:388) and the reporting unit of
peptides.tsv, whose rows are precursors, not stripped sequences
(rust/mumdia/crates/mumdia/src/stages/report.rs:93).
prelim_score. A cheap preliminary PSM score computed in features before
rescoring, combining matched-fragment count scaled by fragment correlation, mean
co-elution, log apex intensity, and an RT-error penalty
(rust/mumdia/crates/mumdia/src/stages/features.rs:901). It orders candidates for
compete (winner-take-all and margin-gated modes use it) and seeds the native
rescorer's positive-set selection; it is not the reported score.
ProForma-lite. The subset of the ProForma peptidoform notation MuMDIA parses
and emits: an optional [Mod]- N-terminal group, residues each optionally followed
by [Mod], and an optional trailing -[Mod] C-terminal group, where a [Mod] is
a UniMod name or a signed mass such as [+15.9949]
(rust/mumdia/crates/mumdia-core/src/mass.rs:138). Peptidoform strings in the
library and PSM tables are ProForma-lite.
protein group. The set of protein accessions a peptide maps to, used as the
unit for protein-level FDR. The MVP grouping keys on the protein-accession-set
string (decoys carry a DECOY_ prefix), and full parsimony/razor inference is a
later option; pg_q_value is the target-decoy q over the best PSM per group
(rust/mumdia/crates/mumdia/src/stages/rescore.rs:306).
PSM (peptide-spectrum match). One hypothesis pairing a candidate peptidoform
with observed spectral evidence at a retention-time apex. extract emits one
apex-level PSM per surviving candidate; downstream stages carry PSMs through
features, competition, and rescoring. A PSM's label must be exactly "target" or
"decoy", because the target-decoy null depends on exact labeling
(rust/mumdia/crates/mumdia/src/fdr.rs:122).
q-value. The minimum false discovery rate threshold at which a given PSM (or
peptide, or protein group) would be accepted, the trusted FDR estimate MuMDIA
reports. The native estimator is the conservative no-pi0 target-decoy form
q = (n_decoys + 1) / max(1, n_targets), computed in score order with tied-score
blocks collapsed to one q and monotonized so q is non-increasing with score
(rust/mumdia/crates/mumdia/src/fdr.rs:7,
rust/mumdia/crates/mumdia/src/fdr.rs:38). rescore writes several q columns for
different grouping contexts (rust/mumdia/crates/mumdia/src/stages/rescore.rs:461):
| Column | Grouped over | Use when |
|---|---|---|
q_value |
per-PSM, pooled across all runs (alias of global_q_value / experiment_psm_q) |
experiment-wide PSM FDR; cross-run precursor quant off a pooled rescore (QuantQColumn::PsmQ) |
experiment_psm_q |
per-PSM, pooled across all runs (identical to q_value) |
explicit experiment-wide PSM FDR |
run_psm_q |
per-PSM, target-decoy re-run within each source run separately | per-run PSM FDR; the correct filter for cross-run quant off an experiment-wide rescore (QuantQColumn::RunPsmQ) |
precursor_q |
best PSM per (peptidoform + charge) | precursor-level FDR; valid as a per-run quant filter only when rescore itself was single-run |
peptide_q_value |
best PSM per base (stripped) peptide | peptide-level FDR; single-run quant (QuantQColumn::PeptideQ, default). Note: under an experiment-wide rescore this is a GLOBAL per-peptide value carried on one best PSM, so it is wrong for per-run cross-run quant |
pg_q_value |
best PSM per protein group | protein-level FDR |
The run_psm_q / experiment_psm_q split and the QuantQColumn caveats are
documented at rust/mumdia/crates/mumdia/src/stages/rescore.rs:340 and
rust/mumdia/crates/mumdia-core/src/config.rs:772.
schema id (classifier_feature_schema_id). A blake3 hash of the ordered active
feature-column list, written to a companion <features>.schema.json so the
rescorer input is reproducible and can never be applied under a mismatched feature
set (rust/mumdia/crates/mumdia/src/stages/features.rs:5,
rust/mumdia/crates/mumdia/src/stages/features.rs:233).
seed (search-seed). The native broad DIA-aware search whose purpose is
calibration, not final identification: it scores candidates by hyperscore to
provide confident PSMs for per-run mass recalibration and RT calibration
(rust/mumdia/crates/mumdia/src/stages/search_seed.rs:1). The final identifications
come from extract + features + rescore (see final ID).
stripped sequence. The bare amino-acid sequence of a peptide with all
modifications and charge removed (the base peptide). It is the grouping key for
peptide-level FDR (peptide_q_value) and is reported alongside the precursor in
peptides.tsv (rust/mumdia/crates/mumdia/src/stages/report.rs:95). Peptidoforms
are expanded from stripped peptides (see peptidoform).
target-decoy FDR. The community-standard false discovery rate control MuMDIA
uses: score real (target) library entries against paired decoys and estimate the
FDR at each score threshold from the decoy count. The engine reports native
target-decoy q-values at PSM, peptide, and protein-group level as its trusted FDR
estimate (rust/mumdia/crates/mumdia/src/fdr.rs:1). A decoy-free library makes
these q-values invalid, so Library::load fails loudly when it finds no decoys
(rust/mumdia/crates/mumdia/src/index.rs:152). See q-value, decoy,
entrapment.