Skip to content

Compensation

Editing compensation requires a license.

Three routes, in descending order of convenience:

  1. From the FCS file. If your acquisition software wrote a spillover matrix into the file, it is already there.
  2. Computed from single-stain controls. Open the controls and let the app derive the matrix.
  3. Imported. Bring a matrix in from another tool.

You can also edit any matrix cell by cell, which is what you end up doing when one channel pair is stubborn and everything else is right.

Auto-compensation from single-stain controls

Section titled “Auto-compensation from single-stain controls”

Give the app your single-stain controls and it computes the spillover coefficients. This is the route to prefer when you have the controls: a hand-tuned matrix drifts between operators, and a computed one is reproducible.

Check the result rather than trusting it: compensation is only as good as the controls, and a control that is dim, saturated or mislabelled produces a confident and wrong matrix.

Fluorescence-minus-one controls establish where “positive” actually starts for a channel in the context of your full panel. The app can calculate thresholds from FMO controls, which is a more defensible boundary than eyeballing a gate on the fully-stained sample.

Compensation subtracts signal, so negative values are normal afterwards. If your dim populations disappear or smear against the axis, that is a scale problem, not a compensation problem — switch the axis to logicle, asinh or hyperlog.

  1. Confirm channel names are right — see the parameter editor in The interface.
  2. Apply or compute compensation.
  3. Choose scales.
  4. Gate.

Compensating after gating means the gates were drawn in a coordinate space that no longer exists. The app will not stop you, but check every gate afterwards.

The matrix can be exported, which is worth doing for the record: it is part of how a result was produced, and a figure without it is not reproducible.

The compensation implementation is checked against FlowKit — an independent reference implementation — and agrees to within 6×10⁻⁸ on an asymmetric test matrix, with a round-trip test pinning the convention so the transpose cannot silently invert.

That is worth stating plainly because a transposed spillover matrix is a real and notoriously quiet failure mode: it produces plots that look plausible and numbers that are wrong.