Log vs Biexponential Scale in Flow Cytometry: Why Negatives Smear Against the Axis

biexponential vs log scale flow cytometry displayAugust 7, 2026

You compensate a two-color experiment, switch the plot to a log axis, and the negative population vanishes into a hard smear pressed against the bottom and left edges. Half of it looks like it fell off the plot entirely. The cells did not change — the axis did. This is the single most common reason a compensated plot looks wrong when the compensation is actually fine.

The fix is choosing the right display scale. Comparing biexponential vs log scale in flow cytometry is really a question about one thing: what does the axis do with values at or below zero? Log scaling has no answer; biexponential and logicle scaling do. Here is what is happening and when each scale is the right call.

Why the log axis breaks at the bottom

A logarithmic axis is defined only for positive numbers. The logarithm of zero is undefined, and negatives have no place on it at all. That is not a problem for raw, uncompensated fluorescence, where every value is positive. It becomes a problem the moment you compensate.

Compensation subtracts spillover. For a truly negative cell — one that does not express the marker — the subtraction lands the value right around zero, and measurement noise scatters it symmetrically into small positives and negatives. A real, Gaussian-shaped negative population is centered near zero with values on both sides. On a log axis, everything at or below zero gets crushed into the bottom decade or clipped off, so a clean symmetric distribution looks like a one-sided smear jammed against the edge.

Common Mistake Reading the axis artifact as bad compensation. A negative population that smears against the axis on a log plot but sits as a tidy Gaussian on a biexponential plot was compensated correctly — the log scale just cannot display it. Diagnosing real over- and under-compensation requires a scale that shows the negatives first.

The other log artifact: the picket fence

There is a second giveaway. On a 4-decade log axis spread across a fixed number of display channels, the lowest decade has very few channels to work with, so discrete data values land on top of each other. The result is vertical stripes — a “picket fence” of lines at the low end where the plot is trying to render more dynamic range than the bottom decade has room for. It is a display artifact, not structure in the data, and it disappears on a biexponential scale.

What biexponential and logicle scaling do differently

Biexponential and logicle scales solve the problem by being two scales stitched together. Near zero, the axis is roughly linear — so it can show negative values, zero, and small positives on a symmetric footing. Away from zero, it transitions to roughly logarithmic, so it keeps the wide dynamic range that made you reach for a log axis in the first place.

The simplest version of this idea is the inverse hyperbolic sine transform, which is linear for small inputs and logarithmic for large ones:

Key Transform $y = \sinh^{-1}\!\left(\frac{x}{c}\right)$

Here x is the channel value and c is a cofactor that sets where the axis switches from linear-like to log-like behavior. A small cofactor keeps more of the axis logarithmic; a large cofactor widens the linear region around zero. For conventional fluorescence a cofactor in the low hundreds is typical; the exact value is a display choice, not a result.

The logicle scale, introduced by Parks and colleagues, is a more carefully specified member of the same family. Instead of one cofactor it uses a few parameters: the top of scale T (commonly 262144 for an 18-bit instrument), the number of decades M, the width W of the linearized region around zero, and an offset A. Tuning W controls how much of the low end is displayed linearly — the knob you reach for when a negative population still looks pinched.

When to use each scale

  • Linear: scatter parameters (FSC, SSC). Cell size and granularity are positive, bounded, and do not span decades. A log axis on scatter just distorts the lymphocyte/monocyte/granulocyte layout you already know how to read.
  • Log: raw, uncompensated, strictly positive fluorescence where you do not need to see the bottom of the distribution. Defensible, but rarely the better choice once data is compensated.
  • Biexponential / logicle: any compensated or unmixed fluorescence parameter, and anything where the negative or dim population matters — which is most marker analysis. This is the default for fluorescence display in current practice.

The same reasoning applies after spectral unmixing, where residual signal can also push values negative; if your unmixed plots look pinched at the bottom, the scale is the first thing to check before you start chasing unmixing artifacts.

Why this changes the number you report

Display scale is not only cosmetic. Where you can see the negative population is where you place the gate, and where you place the gate sets the percent positive and the intensity you report. A median fluorescence read off a population that is half-hidden against a log axis is not trustworthy; the same population displayed on a biexponential axis gives a median you can defend. That is why the transform and its parameters belong in your methods — a gate is only reproducible alongside the scale it was drawn on, which is also why it is a required field when you export statistics for publication.

Tip If you want to build intuition for how compensation and display scale interact, the butterfly-plot simulator in the compensation calculator renders correct, over-, and under-compensated states on a biexponential axis — you can watch the negative population move without touching an FCS file.

The short version

Log scaling cannot show zero or negative values, so it misrepresents the negative populations that compensation creates — smearing them against the axis and adding picket-fence artifacts at the low end. Biexponential and logicle scaling are linear near zero and logarithmic away from it, so they show the full distribution and keep the dynamic range — the reason a transform beats a plain log axis for compensated data. Use linear for scatter, biexponential for compensated fluorescence, and record the transform parameters whenever a gate depends on them.

Try Cytomaton

AI-assisted flow cytometry analysis that learns your gating style. Free during beta.

Join the beta