>Jean
Jean

Analyze

Flow cytometry

Open a flow cytometry list-mode file, compensate it with the spillover matrix it carries, apply a Gating-ML 2.0 gating strategy, and read every population's size and intensity. Every step a flow analysis takes between the instrument and the population table is here and is checked against the field's reference implementations: the reading of the file, the compensation, the display scale, the gate, and the statistics.

An 8-color FCS 3.0 acquisition with its own spillover and a 30-gate Gating-ML 2.0 strategy, and a 2002 FACSCalibur CD3/CD4/CD8 T-cell file, for compensation, gating and population statistics

01

What it does

  1. 01Reads FCS 2.0, 3.0 and 3.1 list-mode files, integer, float and double, either byte order, and linearises them as the standard prescribes: the anti-log of a log-amplified channel, its gain, and the time step
  2. 02Compensates with the spillover matrix the file declares, by either published algorithm: FlowKit's solve or flowCore's inverse
  3. 03Eleven display scales: Logicle, ArcSinh, Hyperlog, linear, log and ratio as Gating-ML 2.0 defines them, FlowJo's log and biex, and flowCore's Logicle, arcsinh and biexponential
  4. 04Applies a Gating-ML 2.0 strategy: rectangle, range and box gates, polygons, ellipses and ellipsoids, quadrants, and AND, OR and NOT, each dimension compensated and scaled as it declares, each population inside its parent
  5. 05Every population's event count, percent of parent and percent of all events
  6. 06The mean, median, standard deviation and CV of every channel in every population, on linear values (MFI) or on the display scale
  7. 07A two-channel density plot of any population, with the gates on that pair drawn in the scale they were written in
  8. 08A density-valley threshold on any channel, by flowDensity's deGate
  9. 09Writes the strategy back out as Gating-ML 2.0
02

What it runs on

packages/ports/assay/cytometry. The reader is checked against FlowIO over every event of 19 FCS files, refusals included; compensation against R's reference LAPACK and flowCore; the eleven scales against FlowUtils, FlowKit and flowCore over 20 million values and against the Gating-ML 2.0 specification's own printed tables; gating against ISAC's expected per-event answers for all 80 gates of the Gating-ML 2.0 compliance suite; the statistics against NumPy.

Everything runs client-side. Files are parsed in the browser and projects are saved on this machine, so an unpublished sequence is never uploaded.

03

Questions

Does it read my FCS file?
Any FCS 2.0, 3.0 or 3.1 list-mode file, which is what every flow cytometer exports. A file whose header and text disagree about where the data starts is refused and the two positions are named, because reading either one silently is how a file loads shifted by a few bytes and every event comes out wrong.
Which compensation does it use?
The spillover matrix the instrument wrote into the file ($SPILLOVER or $SPILL), unless you switch it off. Two published algorithms are offered: the one FlowKit uses, which solves the system for each event, and the one flowCore uses, which inverts the matrix once. They agree to about one part in 10^15 of full scale.
Why do my gate percentages differ from FlowJo's?
Usually the scale. A gate is a region in the coordinates it was drawn in, so the same polygon drawn on a Logicle axis and on a biex axis selects different events. Gating-ML records the scale with every gate and this tool applies it; a FlowJo workspace (.wsp) is not read here.
What does the threshold do?
It smooths the channel's distribution and finds the valleys between its peaks, which is flowDensity's deGate. On a channel with one peak it cuts at the inflection point instead. The cut is shown on the display scale and as an intensity, with the events above it counted.
Is anything uploaded?
No. The file is read, compensated and gated in your browser.

Also searched as

open an fcs file online · fcs file viewer · flow cytometry analysis in the browser · FlowJo alternative · FCS Express alternative · Cytobank alternative · FlowKit in the browser · flowCore in the browser · Gating-ML 2.0 viewer · apply a Gating-ML file · spillover compensation · compensate flow cytometry data · logicle transform · biexponential display · arcsinh cofactor transform · population percentages from gates · MFI per population · flowDensity threshold