Skip to main content

_CHROMS.INF

Binary instrument channel descriptor file. Present when LC/pump/analog channels are recorded alongside the mass spectrometry data (typically on LC-MS systems). Absent in direct-infusion or pure-MS datasets.

Status: Fully Decoded

Observed in: PXD068881 (CtpA, SYNAPT G2-Si with LC), PXD075602 (DHPR_11257-1.raw, Xevo G2-XS with LC)

File Layout

[128-byte file header]
[85-byte meta record 0] -- always type 1 (Flags)
[85-byte meta record 1] -- always type 2 (Description)
[85-byte data record 0]
[85-byte data record 1]
...
[85-byte data record N-1]

File size = 128 + (2 + N_data) × 85

Validated: PXD068881 CtpA _CHROMS.INF = 128 + 7×85 = 723 bytes (7 records: 2 meta + 5 data) Validated: PXD075602 DHPR_11257-1.raw _CHROMS.INF = 553 bytes = 128 + 5×85 (5 records: 2 meta + 3 data)

File Header (128 bytes)

OffsetTypeValueDescription
0x00u160x0080 (128)Header size in bytes
0x02u161Format version (always 1 observed)
0x04u160x0055 (85)Record size in bytes
0x06u162Number of meta records that follow (always 2 observed)
0x08-0x7Fzeroes-Padding to 128 bytes

Meta Records (85 bytes each, always 2 records)

The two meta records immediately follow the header at offsets 0x80 and 0xD5.

Offset within recordTypeDescription
0x00u32Meta type: 1 = Flags, 2 = Description
0x04-0x54bytesNull-padded ASCII name string

Observed names:

  • Type 1 (Flags): "Flags"
  • Type 2 (Description): "Description"

Data Records (85 bytes each)

Data records follow immediately after the two meta records (at byte offset 128 + 2×85 = 298). Each record describes one recorded chromatographic channel.

OffsetTypeConfirmedDescription
0x00u32YesSource device type (4 = BSM pump, 1 = column/sample device)
0x04bytesYesNull-padded ASCII channel name (Windows-1252; may start with 0xB5 = µ)
...strYes$CC$ spec string (null-terminated, at end of record)

The channel name and $CC$ string are packed into bytes 0x04-0x54 in sequence, separated by a null byte between them.

$CC$ Spec String Format

$CC$,<scale_f>,<type_code>,<lo_limit>,<hi_limit>,<units>
  • scale_f = float scale factor (e.g. 1.0 or 0.1)
  • type_code = integer (always 3 in observed data)
  • lo_limit = lower display limit (float)
  • hi_limit = upper display limit (float)
  • units = ASCII units string (e.g. psi, %, uL/min, % Power, C)

Observed Channels (PXD068881 CtpA.raw - 5 data records)

Recordsource_typeChannel Nameunits
04 (BSM)BSM Composition B%
14 (BSM)BSM Measured Flow Rate AµL/min
24 (BSM)BSM Measured Flow Rate BµL/min
31 (col/samp)(1) Peltier Engine Power% Power
41 (col/samp)(1) Chamber Temp°C

Observed Channels (PXD075602 DHPR_11257-1.raw - 3 data records)

Recordsource_typeChannel Nameunits
04 (BSM)BSM Measured Flow Rate BµL/min
14 (BSM)Column Temperature°C
24 (BSM)Room Temp°C

Note: BSM channel names are prefixed with 0xB5 (µ in Windows-1252) in the raw bytes. The lo/hi fields in $CC$ are 0,0 in all observed samples (limits may not be stored here). Units encoding is Windows-1252: ° is 0xB0, µ is 0xB5.

Companion Chromatogram Files

For each data record in _CHROMS.INF there is a corresponding _CHROnnnn.DAT file numbered 1-based with 3-digit zero-padding (e.g., _CHRO001.DAT for record 0). The .DAT files contain the time-series intensity data for each channel. The encoding of _CHROnnnn.DAT is not yet decoded (but see $CC$ scale factor for a clue to the units conversion).

Reference Sources

  • Empirical hex analysis using re/src/analysis/inspect.py
  • Corpus samples:
    • PXD068881/20220517_CtpA_1076_2h_1.raw (7 records, 723 bytes)
    • PXD075602/DHPR_11257-1.raw (5 records, 553 bytes)