Skip to main content

References and gaps

References​

  • opentims - https://github.com/michalsta/opentims (MIT). Validates the raw scan-offset header layout (codec 2 inner layout) and supplies the open-source linear calibration model.
  • alphatims - https://github.com/MannLabs/alphatims (Apache-2.0). Documents the codec 1 frame header and delta + bit-pack scheme; source of the codec 1 verbatim implementation.
  • rustims - https://github.com/theGreatHerrLebert/rustims (MIT). rustdf/src/data/handle.rs LinearFrameConverter uses the same linear model documented in 04-calibration.md.
  • Public format references - the publicly distributed PaSER schema reference is consistent with what we observe on the DiaFrameMsMs* / PasefFrameMsMsInfo tables.

Copyright notices and license terms for the ported code are in THIRD-PARTY-NOTICES at the repository root.

Out-of-scope items​

MALDI (analysis.tsf)​

MALDI timsTOF acquisitions produce analysis.tsf bundles. The .tsf format uses a different SQLite schema: spectra are indexed by spot position rather than retention time, there is no scan (1/K0) dimension, and the binary data layout is different. Supporting .tsf would require a parallel implementation targeting a distinct format and acquisition modality (MALDI vs ESI / nanoESI). The opentimstdf crate targets .tdf (ESI / nanoESI timsTOF) only. A separate crate (e.g. opentsf) would be the appropriate scope.

Proprietary polynomial models​

MzCalibration (ModelType=1). Implemented from the bundle's own reference data; see 04-calibration.md. Open items: the meaning of C3 (zero in every observed ModelType = 1 row), the temperature terms (T1, T2, dC1, dC2, not applied), and ModelType = 2 (older impacTEM bundles, which use the range fallback).

TimsCalibration voltage polynomial (ModelType=2). A proprietary model uses 10 coefficients stored in CalibrationInfo blobs (MeasuredTimsVoltages, MeasuredTimsCurrents) to map voltage to scan index. The functional form is not publicly documented. The open-source linear approximation is sufficient for all analyses not requiring sub-scan-index 1/K0 accuracy.

Implementing the proprietary models is an explicit non-goal. The path forward is to find published (tof_index, mz) or (scan_index, 1/K0) pairs from open literature or open datasets and fit the 13 or 10 coefficient model directly.

Multi-segment calibration (schema only, hypothetical)​

The Segments table supports N rows with associated TimsCalibration entries (one per segment). All 64 probe bundles have exactly one segment. Multi-segment calibration is a schema feature that may be used in very long acquisitions or split-gradient experiments but no example has been observed in the public corpus. The parser handles it correctly (by accepting any TimsCalibration row), but the feature has not been exercised.

Per-polarity calibration (partial)​

MzCalibration may have one row per polarity (Id=1 for +, Id=2 for -). Frames.MzCalibration identifies which polarity row applies. The open-source linear approximation reads only GlobalMetadata acquisition-range keys (MzAcqRangeLower, MzAcqRangeUpper), which are single values for the whole acquisition. Per-polarity differentiation would require the proprietary polynomial model, which is unavailable in the open schema. A multi-polarity sv=3.3 bundle was observed in the probe corpus; the parser reads it correctly, but only the calibration accuracy for the non-primary polarity is affected by this limitation.

Stepped collision-energy sweeps​

CollisionEnergySweepingInfo is present in all sv >= 3.7 bundles by schema but never populated in any of the 81 probe / public bundles checked. No populated example has been found in any public dataset; the feature may be used only in instrument-internal validation runs or future modes not yet publicly released.