FlowCyto
Back home concordance · measured, reproducible

How closely FlowCyto matches FlowJo — measured, not claimed.

Every figure below is a measured value from a reproducible suite that runs the production FlowCyto engine against external references: FlowJo's own recorded population counts embedded in public, openly-licensed .wsp workspaces, the published Parks–Moore–Roederer logicle equations, ISAC GatingML 2.0 gate definitions, and each FCS file's own header bytes. No licensed FlowJo seat is used — FlowJo's numbers are read from public datasets. We state the tolerance for every number and list what we do not claim.

measured 2026-06-24 · regenerate from apps/api/concordance/

By capability

Concordant / comparable, with the tolerance each number is measured at. These are the independently-verified tracks.

CapabilityReferenceMatch%Tolerance
Gating — population countsFlowJo's own recorded count= attributes in public .wsp workspaces57/80 (71.25%) at strict ±2/1%; Δ ≤3.6% for populations ≥200 events (4 rare low-count cytokine+ gates differ more — see notes)80/80100%FlowJo standard (±50 events or 5%)
Transforms — logicle / log / linear / asinhPublished Parks–Moore–Roederer logicle equations + closed formsmax logicle error 9.9e-1313/13100%1e-4 display units
Compensation — spillover matrixEmbedded 11×11 spilloverMatrix in the public .wsp (re-parsed independently)import exact; engine inv(S)·S=I to 2.2e-16121/121100%1e-6 per element
FCS reading — header fidelityEach file's own HEADER/TEXT bytes, re-parsed independently33/33 instrument files byte-faithful (1 header-only stub skipped)231/231100%exact ($TOT/$PAR/$PnN/$PnB)
GatingML 2.0 — gate geometryISAC GatingML 2.0 raw-coordinate gate definitionsindependent rows only; 308 BD DIVA round-trip rows excluded — see notes224/224100%raw 0.5 / display 1e-6
Statistics — frequency of parentFrequencies derived from FlowJo's own recorded countstracks the strict-tolerance gating drift; channel-stat values are an internal NumPy check only41/5771.93%strict ±0.05pp / 1%

Headline gating concordance is measured at FlowJo's own standard tolerance (±50 events or 5%). At a strict tolerance (±2 events or 1%) the gating figure is 57/80 — see the per-population tables and limitations below. We show both so the number is not cherry-picked.

Gating, population by population

FlowCyto imports each public FlowJo workspace, re-runs the gating hierarchy on the same events, and reports every population beside FlowJo's own recorded count. Δ is the relative difference; a green dot marks a population that also lands within the strict ±2-event / 1% band.

a2004_A01.fcs · FlowJo v9.2 · 61,832 events 19/19 within standard tol · 68.42% strict
PopulationFlowJoFlowCytoΔ
Live49,54249,484-0.12%
Live / APC4,1414,162+0.51%
Live / APC / B Cell2,2712,190-3.57%
Live / APC / mDC502513+2.19%
Live / APC / mDC / IFNa+21-50.00%
Live / APC / mDC / IL-6+22220.00%
Live / APC / mDC / IL-12+220.00%
Live / APC / mDC / TNFa+7172+1.41%
Live / APC / pDC446431-3.36%
Live / APC / pDC / IFNa+10-100.00%
Live / APC / pDC / IL-6+000.00%
Live / APC / pDC / IL-12+250246-1.60%
Live / APC / pDC / TNFa+000.00%
Live / CD14-MHC2-26,79526,738-0.21%
Live / Monocytes2,9312,917-0.48%
Live / Monocytes / IFNa+1311-15.38%
Live / Monocytes / IL-6+6946940.00%
Live / Monocytes / IL-12+146138-5.48%
Live / Monocytes / TNFa+754731-3.05%
cytotrol_1.fcs · FlowJo v9.5.2 · 119,531 events 23/23 within standard tol · 69.57% strict
PopulationFlowJoFlowCytoΔ
not debris91,72091,7200.00%
not debris / singlets87,03387,022-0.01%
not debris / singlets / CD3+54,73755,074+0.62%
not debris / singlets / CD3+ / CD434,08334,380+0.87%
not debris / singlets / CD3+ / CD4 / 38- DR+1,1241,135+0.98%
not debris / singlets / CD3+ / CD4 / 38+ DR+1,0301,036+0.58%
not debris / singlets / CD3+ / CD4 / 38+ DR-14,68614,739+0.36%
not debris / singlets / CD3+ / CD4 / 38- DR-17,24017,470+1.33%
not debris / singlets / CD3+ / CD4 / CCR7- 45RA+733756+3.14%
not debris / singlets / CD3+ / CD4 / CCR7+ 45RA+12,10912,142+0.27%
not debris / singlets / CD3+ / CD4 / CCR7+ 45RA-14,76214,874+0.76%
not debris / singlets / CD3+ / CD4 / CCR7- 45RA-6,4766,608+2.04%
not debris / singlets / CD3+ / CD814,53014,430-0.69%
not debris / singlets / CD3+ / CD8 / 38- DR+1,3071,300-0.54%
not debris / singlets / CD3+ / CD8 / 38+ DR+1,3231,328+0.38%
not debris / singlets / CD3+ / CD8 / 38+ DR-4,4354,440+0.11%
not debris / singlets / CD3+ / CD8 / 38- DR-7,4687,362-1.42%
not debris / singlets / CD3+ / CD8 / CCR7- 45RA+3,9183,886-0.82%
not debris / singlets / CD3+ / CD8 / CCR7+ 45RA+6,7876,810+0.34%
not debris / singlets / CD3+ / CD8 / CCR7+ 45RA-1,5611,531-1.92%
not debris / singlets / CD3+ / CD8 / CCR7- 45RA-2,2672,203-2.82%
not debris / singlets / CD3+ / DNT1,3421,355+0.97%
not debris / singlets / CD3+ / DPT807790-2.11%
cytotrol_2.fcs · FlowJo v9.5.2 · 115,728 events 23/23 within standard tol · 56.52% strict
PopulationFlowJoFlowCytoΔ
not debris91,45091,4500.00%
not debris / singlets86,80286,804+0.00%
not debris / singlets / CD3+54,75555,125+0.68%
not debris / singlets / CD3+ / CD433,81034,116+0.91%
not debris / singlets / CD3+ / CD4 / 38- DR+1,1291,141+1.06%
not debris / singlets / CD3+ / CD4 / 38+ DR+1,1241,131+0.62%
not debris / singlets / CD3+ / CD4 / 38+ DR-14,20414,264+0.42%
not debris / singlets / CD3+ / CD4 / 38- DR-17,36017,580+1.27%
not debris / singlets / CD3+ / CD4 / CCR7- 45RA+725750+3.45%
not debris / singlets / CD3+ / CD4 / CCR7+ 45RA+11,82511,851+0.22%
not debris / singlets / CD3+ / CD4 / CCR7+ 45RA-14,84114,961+0.81%
not debris / singlets / CD3+ / CD4 / CCR7- 45RA-6,4266,554+1.99%
not debris / singlets / CD3+ / CD814,77014,688-0.56%
not debris / singlets / CD3+ / CD8 / 38- DR+1,4031,399-0.28%
not debris / singlets / CD3+ / CD8 / 38+ DR+1,3421,357+1.12%
not debris / singlets / CD3+ / CD8 / 38+ DR-4,4994,500+0.02%
not debris / singlets / CD3+ / CD8 / 38- DR-7,5277,432-1.26%
not debris / singlets / CD3+ / CD8 / CCR7- 45RA+3,9093,883-0.67%
not debris / singlets / CD3+ / CD8 / CCR7+ 45RA+7,0367,087+0.72%
not debris / singlets / CD3+ / CD8 / CCR7+ 45RA-1,6201,588-1.98%
not debris / singlets / CD3+ / CD8 / CCR7- 45RA-2,2062,130-3.44%
not debris / singlets / CD3+ / DNT1,2681,282+1.10%
not debris / singlets / CD3+ / DPT942931-1.17%
flowsom_68983.fcs · FlowJo v10.5.3 · 19,225 events 15/15 within standard tol · 100% strict
PopulationFlowJoFlowCytoΔ
Lymphocytes19,21219,225+0.07%
Lymphocytes / Singlets18,68918,702+0.07%
Lymphocytes / Singlets / Singlets218,57318,585+0.07%
Lymphocytes / Singlets / Singlets2 / NK1_1+9239230.00%
Lymphocytes / Singlets / Singlets2 / NK1_1+ / NK cells3123120.00%
Lymphocytes / Singlets / Singlets2 / NK1_1+ / NK T cells5355350.00%
Lymphocytes / Singlets / Singlets2 / NK1_1-17,45817,470+0.07%
Lymphocytes / Singlets / Singlets2 / NK1_1- / B cells2,4592,460+0.04%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells10,74510,747+0.02%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / ab T cells9,1889,191+0.03%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / ab T cells / CD4 T cells7,4807,482+0.03%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / ab T cells / CD8 T cells1,4071,4070.00%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / ab T cells / DN T cells266267+0.38%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / ab T cells / DP T cells660.00%
Lymphocytes / Singlets / Singlets2 / NK1_1- / T cells / gd T cells1,4701,4700.00%

What this does not claim

Concordance is only meaningful if its limits are stated. These are the honest caveats behind the numbers above.

  • Gating reaches 100% at FlowJo's standard tolerance (±50 events or 5%). At strict tolerance (±2 events or 1%) it is 57/80 (71.25%). For populations of ≥200 events all differences are ≤3.6%, concentrated in deep sub-populations near biexponential gate boundaries. 4 rare cytokine-positive gates with low counts differ more — up to 100% (1→0 events); the largest miss on a population above 100 events is Live / Monocytes / IL-12+ at -5.5% (146→138), driven by ±1–2 event differences that stay within FlowJo's ±50-event standard. The FlowSOM v10 panel matches 15/15 even at strict.
  • Coverage is 4 samples across 3 public FlowJo workspaces — a focused, reproducible validation set, not an exhaustive certification.
  • The compensation track verifies matrix-import fidelity and the engine's inv(S)·S=I identity, not an independent re-derivation of a spillover matrix from single-stain controls.
  • The GatingML headline counts only the 224 independently-verified geometry rows. A further 308 BD FACSDiva rows are a round-trip consistency check (oracle computed with our own display encoder) and are deliberately excluded from the headline figure.
  • Channel statistic values (median / MFI / CV) are checked against a NumPy re-derivation over the engine's own gated events — an internal consistency check, not an external oracle. Only the frequency-of-parent figures above use FlowJo's own numbers.

Datasets & references

Every input is public and openly licensed. We cite the source rather than redistributing it. FlowJo's counts are read from these files as published — no licensed seat is used.

SourceRepositoryLicense
flowjo_A2004_v9.2.wspRGLab/flowWorkspaceDataGPL-2
flowjo_manual_v9.5.2.wspRGLab/flowWorkspaceDataGPL-2
flowjo_flowsom_v10.5.3.wspsaeyslab/FlowSOMGPL-2+
gatingml_logtGml.xmlRGLab/CytoMLAGPL-3.0
gatingml_flowsom_manual.xmlsaeyslab/FlowSOMGPL-2+
mixed (GPL-2/2+, MIT) — see validation/manifest.json per file
Import your own .wsp and reproduce this on your files

FlowJo, FACSDiva, and BD are trademarks of Becton, Dickinson and Company. FlowCyto is an independent product and is not affiliated with, sponsored by, or endorsed by BD. The comparisons on this page describe file-format interoperability and measured numerical concordance against openly-licensed, publicly available datasets, using FlowJo's own published values as the reference. All figures are reproducible from the open suite in apps/api/concordance/ and are provided for technical evaluation, without warranty.