Skip to content

Invariants

Core invariants protect scientific meaning across parsers, domain models, identification, quantification, PTM, DIA, targeted analysis, benchmarks, and public artifacts. They remain true even when implementations or performance paths change.

Scientific invariants

Invariant Required meaning Violation example
source lineage is retained every imported row and derived record can be traced to producer, input, and transformation external-engine output appears native
acceptance is explicit accepted, rejected, refused, failed, and missing inputs remain distinguishable invalid rows disappear from totals
units and orientation are declared mass, time, intensity, ratio, probability, score direction, and thresholds have stable interpretation larger becomes better after an adapter change without policy change
policy travels with results FDR, normalization, missingness, inference, localization, calibration, and QC policy is reviewable identical numbers hide different rules
target and decoy meaning is stable labels, competition set, strata, orientation, and denominator are explicit FDR changes because decoys were silently reclassified
missingness is not zero absent, censored, filtered, failed, and numeric zero remain distinct when the workflow distinguishes them imputation occurs through parsing convenience
deterministic inputs yield deterministic governed outputs ordering, stable identifiers, serialization, and seeded behavior do not drift unexplained parallel execution changes accepted record order or hash
workflow evidence does not transfer automatically DDA, DIA, LFQ, multiplex, PTM, and targeted status are evaluated independently a strong LFQ packet raises multiplex posture
computation and execution remain separate Core owns scientific transformation; Runtime owns run state and retained execution a scientific model declares operational success
evidence and recommendation remain separate Core results can be grounded and judged without becoming their own citation or decision authority a benchmark result writes its own recommendation posture
flowchart LR
    I["input and provenance"] --> P["declared scientific policy"]
    P --> C["computation"]
    C --> A["accepted, rejected, and failed records"]
    A --> O["deterministic artifact"]
    O --> E["family-specific evidence ceiling"]

Cross-field invariants

Many failures are coherent field-by-field and wrong only in combination: a threshold with the wrong score orientation, a localized site without protein mapping, a ratio without channel identity, or a targeted result outside its calibration range. Validation must protect relationships, not only types.

Failure response

When an invariant fails, preserve the offending input, reason code, policy, and affected counts. Reject or narrow the result. Do not repair scientific meaning through undocumented defaults, silent row loss, fallback imputation, or post hoc relabeling.