← SkillSafe / Cyto Desk

One acquisition in. A straight answer on whether it can be gated.

Paste the FCS keyword block — or drop the .fcs file itself, it is read in your browser and never uploaded. The page decodes the HEADER and TEXT segments, builds the channel table from $PnN, $PnS, $PnB, $PnE and $PnR, derives the event rate from $TOT and the clock keywords, and checks the parameter block against itself.

Both examples ship with a saved model run for all three lanes, so you can see the whole answer — including the methods prose — without signing in and without spending a credit.

nothing recognised yet
Drag an .fcs file in, or An FCS file is read as bytes in your browser and only its keyword block is decoded. Nothing uploads until you run.
Paste a keyword block, or drop an .fcs file, to price the run.

What this does, and what it does not

The prescan is parsing and arithmetic, not opinion. When it decodes a dropped file it reads the 58-byte HEADER for the version string and the six segment offsets, then splits the TEXT segment on its own first byte, treating a doubled delimiter as an escaped literal — which is why a marker name containing the delimiter survives. The DATA segment is never touched, so a 400 MB acquisition costs a few kilobytes of work and the file never leaves your browser.

When it reports a condition number it has inverted your spillover matrix by Gauss-Jordan elimination with partial pivoting and multiplied the infinity norms of the matrix and its inverse. That number is not decoration: compensation multiplies every event by that inverse, so a condition number of 40 means the one percent error a good single-stain control leaves in a coefficient can arrive as a forty percent error in a compensated value. A singular matrix has no inverse at all, which means two detectors have been described as seeing indistinguishable mixtures and no arithmetic separates them.

When it says a population is out of reach it has done the Poisson arithmetic. At 8,000 recorded events a 0.1% subset is eight dots, and eight dots have a relative standard error near 35% before any biology is considered — so a two-fold difference between conditions is not measurable, whatever the gate says. Those are facts, and they are handed to the run as facts it must reconcile one by one, then checked back against its answer afterwards.

What it does not do: it never reads your event data, so it cannot see a clog, a gate, a cluster or a real MFI. It cannot tell you whether your antibody titre was right or whether your cells were alive. And it does not run software — there are no commands anywhere in this app's output, by design.