Skip to main content

Flow Visualization and Compensation

Plot types, axis scaling, overlays, and getting spillover out of your data.

The Add Plot dialog box in a flow analysis, with a suggested FSC vs SSC plot above controls for choosing the plot type and each axis's parameter and scale.

Adding a Plot

Add Plot in the sidebar's View section, or the A key, opens a chooser. It leads with suggestions built from your panel, such as FSC against SSC for size and granularity, FSC-A against FSC-H for doublet discrimination, and a histogram, because those are the plots almost every analysis starts with. Below them, or customize lets you set the plot type, both axes, and each axis's scale by hand.

When you first open a file, Conspecta creates a plot or two for you: FSC against SSC where it recognizes those channels, or the two widest-range channels otherwise, plus a second plot when the panel has enough colors to warrant it.

Plot Types

Four types, chosen from the menu at the top left of any plot:

TypeWhat it's for
ScatterIndividual events, best when you have few of them
DensityEvent density as color, which is the workhorse for gating
ContourDensity as lines, which reads well in print
HistogramOne parameter's distribution

Histograms always plot % of Max, so distributions with very different event counts stay comparable without you doing anything.

Reading and Coloring a Plot

Each plot's menu holds its display options.

Color By switches between plain, coloring events by a parameter's value, or coloring them by which population they fall into. Color Scheme offers Viridis (the default, and the one to use in a paper), Jet, Plasma, Inferno, Magma, and Grayscale. The rest of the menu covers back-gating, hiding the legend, All channel pairs (next section), exporting the plot, and removing it. The Backgate list carries All and None beside its heading, so you can put every child population on the plot at once and clear them the same way.

On a histogram, two extra buttons appear in the plot header. Overlays stacks other populations onto the same axes, which is how you show a shift between gates. Files overlays the same plot from other files, which is how you show a shift between samples.

Tip: On a scatter, density, or contour plot the equivalent of an overlay is Color By → Population, or back-gating from the same menu. Overlays are a histogram feature because two clouds of dots on top of each other rarely tell you anything.

Scanning Every Channel Pair

With a many-color panel, hunting for the next gate one plot at a time is slow. All channel pairs in a plot's menu opens a dialog box that draws every pair of the selected channels against each other, for the population that plot shows. Each cell is one pair, and the diagonal is that channel's histogram. A cell where the cloud tilts or splits names the pair worth drawing as a real plot.

Channels picks what the grid draws. It starts with your first six fluorescence channels and takes up to ten, which is already a 100 plot grid. The export button hands the grid to a markup workspace where you can annotate it before downloading.

Axis Scaling

Click an axis label to change the parameter or its scale. The four scales are Lin, Log, Logicle, and Asinh.

Logicle is the one to reach for on compensated fluorescence. It's linear near zero and logarithmic above it, so the events that land at or below zero after compensation stay visible instead of piling up against the axis. It's the same scale FlowJo draws, so a gate you draw here sits where you'd expect it to, and a strategy imported from a .wsp keeps the axis it was drawn on.

Pick Logicle or Asinh and the same menu shows the numbers behind the curve: Top of scale (T), Linear width (W), Decades (M), and Extra negative decades (A) for logicle, a single Cofactor for asinh. A plot imported from a .wsp shows the values it came with, so you can check them against the source workspace or correct them. Edit the values and press Apply to reshape the axis, which moves every gate evaluated on it; closing the menu without applying discards the edit. Reset to defaults puts the standard curve back in one click.

Scale is set per plot. Changing it on a parent doesn't change its children, which is deliberate: a population you've gated down to often wants a different scale than the plot you gated it from.

Focus (F) zooms in on the selected plot. Overview (O) fits the whole tree back into the window. Both appear once you have more than one plot. The arrow keys walk between plots, following the hierarchy rather than the screen layout.

A minimap appears in the corner on a large tree. Clicking a plot's box on it focuses that plot; clicking the space between jumps the view there. The path above the plots shows the gating route to whichever plot is selected.

For speed, scatter, density, and contour plots draw from a fixed subsample of up to 50,000 events, chosen once so the picture doesn't shimmer while you draw a gate. Every statistic is computed on every event, so what you measure is never the subsample.

Compensation

Open Compensation from the sidebar's Analysis section.

The Matrix tab shows the spillover matrix. If the file carries one from the cytometer, it's already there and you can review it, edit any value, and Apply Compensation. Remove Compensation puts the raw data back. You can import a matrix from a CSV, or export the one you're using.

The Controls tab is the rest of it, in one list: your tubes, the matrix measured from them, and the proof it worked.

Every file attached to the analysis is listed, including ones not loaded into the sidebar, which carry a Load button. Tick a file and pick the detector its tube was stained for. A file named after its dye ("FITC ctrl.fcs") is matched to its detector for you, so tagging a well-named control set is one click per file. Tags save with the analysis, so you set them once per experiment.

One detector belongs to one tube, because the matrix has one row for it. A detector another tube already holds is listed as taken and can't be picked, and a second file whose name points at the same dye ("FITC ctrl rerun.fcs") is left for you to place rather than tagged on top of the first. If a saved pair of tags claims the same detector, the row that lost says which tube holds it, and that tube is the one measured from.

Below the list, one line tells you which data a computed matrix will come from. With at least two tagged controls loaded, it measures spillover from them, which is the matrix worth trusting. With fewer, it approximates from the open file, and the line names any tagged file it can't use yet. Settings sets how bright an event must be to count as positive and how many positive events a channel needs. Compute Matrix runs it and brings you to the result, so the numbers aren't left sitting below a long list of files. Conspecta reports per-channel quality, how many positive events it found, and the maximum spillover, highlighting anything above 10% so an obviously wrong value doesn't get applied by accident. Apply Matrix commits it. Measuring needs at least two fluorescence channels.

The verdict travels with the button. If a control produced a row that isn't a measurement at all — almost no positive events, no signal in its own detector, or more spillover into another detector than into its own — Apply is turned off and the reason sits beside it, naming the control. Re-tag or replace that tube and Compute Again. If a control is merely under the minimum you set, the matrix is noisier rather than wrong, so the button reads Apply Anyway and stops looking like the recommended step; that call is yours.

Applying does not close the dialog box, because what happens next is the check. Each tagged control grows a strip of plots on its own row, drawing its stained channel against every other detector, compensated, with a verdict under each. A level cloud reads aligned, and a red cell names the pair that still leaks and whether the matrix corrects too little or too much. Fix that value on the Matrix tab, apply again, and the cell turns green. If you already have a matrix that isn't applied, Apply Current Matrix puts it on the data without computing a new one.

Applying compensation changes the data underneath the whole analysis at once, so there are no separate compensated channels to pick from in the axis menu. Your gates keep the bounds you drew, but the events inside them are recounted on the corrected values, so population counts and percentages move when you apply or remove a matrix. That is the point: a gate drawn to catch one dye should not be counting another dye's spillover.

A banner above the plots tells you when a file carries a spillover matrix that hasn't been applied yet, with View and Apply on it, and you can dismiss it if you're compensating deliberately. When compensation is on, a green dot marks it in the sidebar.

Changing compensation clears saved cell-cycle, proliferation, kinetics, and quality-control results. Those results were computed on the old values, so keeping them would mean showing numbers that no longer match the data. Compensate first, then run them.

Annotating and Exporting the Tree

Annotate in the Tools section draws on the canvas itself: text, arrows, and shapes over your plot tree, which is how you turn a gating strategy into a slide.

Export Tree in the Analysis section captures the whole hierarchy and hands it to a markup workspace where you can annotate it before downloading. You choose the output size and whether you want a PNG or an SVG. Individual plots export from their own menu.