What this report supports.It documents reproducible implementation checks for gating, cell-cycle DNA distributions, proliferation generation profiles, and acquisition-time kinetics. It is evidence of software behavior, not clinical validation or a claim of vendor-equivalent output.
Open evidence boundary.A same-FCS FlowJo Table Editor export is included: 13 samples, 0 within tolerance, 5 requiring review, and 8 with invalid FlowJo phase estimates. This is a recorded external baseline, not a claim of numerical equivalence.
Open the local real-FCS preflight manifest
Open the FlowJo comparison result
Cell-cycle model
Independent DJF-style and Watson-style DNA mixtures on known synthetic phase distributions.
PASS
npm run validation:cell-cycle:model
> [email protected] validation:cell-cycle:model
> node scripts/cell-cycle-model-validation.mjs
Balanced (djf): 52.68 / 28.86 / 18.46%; ratio 1.962, R2 0.947, background 0.00%
G1-enriched (djf): 71.00 / 20.06 / 8.94%; ratio 1.971, R2 0.956, background 0.00%
S-enriched (djf): 35.97 / 43.09 / 20.94%; ratio 1.953, R2 0.895, background 0.00%
G2/M-enriched (djf): 30.73 / 24.31 / 44.96%; ratio 1.946, R2 0.996, background 0.00%
Balanced Watson (watson): 51.95 / 25.26 / 22.79%; ratio 1.962, R2 0.950, background 0.00%
Model-sensitive S phase: DJF 51.86%, Watson 52.16%
Balanced manual peaks (djf): 52.68 / 28.86 / 18.46%; ratio 1.962, R2 0.947, background 0.00%
Background stress: R2 0.779, estimated background 10.67%
PASS: constrained DNA-content mixture recovers four synthetic phase profiles.
Cell-cycle FCS
End-to-end parsing and DNA histogram fitting for bundled linear DAPI and PI FCS fixtures.
PASS
npm run validation:cell-cycle:fcs
> [email protected] validation:cell-cycle:fcs
> node scripts/cell-cycle-fcs-validation.mjs
cell-cycle-standard-linear-dapi.fcs (djf): 46.7/7.8/45.5%, G2/G1 1.982, R2 0.971
cell-cycle-standard-linear-dapi.fcs (watson): 46.9/8.0/45.1%, G2/G1 1.982, R2 0.970
cell-cycle-standard-pi.fcs (djf): 45.5/8.6/46.0%, G2/G1 1.972, R2 0.973
cell-cycle-standard-pi.fcs (watson): 46.3/7.9/45.8%, G2/G1 1.972, R2 0.970
cell-cycle-standard-dapi-simple.fcs (djf): 46.7/8.2/45.1%, G2/G1 1.983, R2 0.968
cell-cycle-standard-dapi-simple.fcs (watson): 46.9/8.4/44.7%, G2/G1 1.983, R2 0.968
PASS: cell-cycle FCS parsing and histogram fitting remain stable.
Public DNA distributions
Physical plausibility across four public DAPI cell-line distributions.
PASS
npm run validation:cell-cycle:public-dna
> [email protected] validation:cell-cycle:public-dna
> node scripts/cell-cycle-public-dna-validation.mjs
WT: 89.7/1.1/9.3%, G2/G1 2.032
KRAS_G13D: 37.6/35.3/27.1%, G2/G1 1.860
PIK3CA_E545K: 73.5/17.6/8.8%, G2/G1 1.993
PIK3CA_H1047R: 75.8/13.7/10.5%, G2/G1 2.160
PASS: real public DAPI distributions remain physically plausible across four cell lines.
Cell-cycle reference interface
Same-FCS, same-model FlowJo/ModFit reference-table comparison path.
PASS
npm run validation:cell-cycle:reference
> [email protected] validation:cell-cycle:reference
> node scripts/cell-cycle-reference-compare-validation.mjs
PASS: cell-cycle reference comparator preserves a same-FCS, same-model reference result.
Real FlowRepository PI FCS preflight
Common-input morphology/singlet/PI preflight on FR-FCM-Z55E and FR-FCM-Z55H; exports gated FCS for independent FlowJo or ModFit fitting.
PASS
npm run validation:cell-cycle:flowrepository
> [email protected] validation:cell-cycle:flowrepository
> node scripts/cell-cycle-flowrepository-preflight.mjs
DNA channel: FL2-A (PE-A); no-PI 99.5th-percentile threshold: 33795.60
CANDIDATE FR-FCM-Z55H/Control 1 - Control.fcs: 7907/10000 gated; R2 0.883
CANDIDATE FR-FCM-Z55H/Control 2.fcs: 7347/10000 gated; R2 0.925
BACKGROUND-CONTROL FR-FCM-Z55H/Control no PI.fcs: 21/10000 gated
REVIEW-FIT FR-FCM-Z55H/T317E PI 1.fcs: 7982/10000 gated; R2 0.548
REVIEW-FIT FR-FCM-Z55H/T317E PI 2.fcs: 6786/10000 gated; R2 0.553
REVIEW-FIT FR-FCM-Z55H/T33 T317 E 1.fcs: 6837/10000 gated; R2 0.651
REVIEW-FIT FR-FCM-Z55H/T33 T317 E 2.fcs: 7112/10000 gated; R2 0.338
CANDIDATE FR-FCM-Z55H/T33E 1.fcs: 7292/10000 gated; R2 0.792
REVIEW-FIT FR-FCM-Z55H/T33E 2.fcs: 7306/10000 gated; R2 0.229
BACKGROUND-CONTROL FR-FCM-Z55H/WT no PI.fcs: 3173/10000 gated
REVIEW-FIT FR-FCM-Z55H/WT1.fcs: 2166/4378 gated; R2 0.085
REVIEW-FIT FR-FCM-Z55H/WT2.fcs: 6730/10000 gated; R2 0.358
INSUFFICIENT-GATED-EVENTS FR-FCM-Z55E/G1.fcs: 898/5154 gated
CANDIDATE FR-FCM-Z55E/M.fcs: 8525/10000 gated; R2 0.911
CANDIDATE FR-FCM-Z55E/S.fcs: 70077/76560 gated; R2 0.995
CANDIDATE FR-FCM-Z55E/unsynchronized.fcs: 9238/10000 gated; R2 0.857
Preflight report: /Users/haifeng/flowapp/.codex-artifacts/biological-alignment/flowrepository-z55/preflight.json
Reference template: /Users/haifeng/flowapp/.codex-artifacts/biological-alignment/flowrepository-z55/flowjo-or-modfit-reference-template.csv
Proliferation
Public flowFit CFSE, CPD, and CTV generation-profile regression envelope.
PASS
npm run validation:proliferation:compare
> [email protected] validation:proliferation:compare
> node scripts/proliferation-reference-compare.mjs
Fig 2a CFSE CD4 T Stim.fcs: 11/10 generations, mean error 0.49 pp, max 1.37 pp, raw/log delta 0.00 pp
Fig 2a CPD CD4 T Stim.fcs: 17/16 generations, mean error 0.52 pp, max 1.83 pp, raw/log delta 0.00 pp
Fig 2a CTV CD4 T Stim.fcs: 17/16 generations, mean error 0.36 pp, max 1.57 pp, raw/log delta 0.00 pp
PASS: FlowApp generation profiles remain within the public flowFit regression envelope.
Kinetics
Known acquisition-time trend plus protection against event-index overclaiming.
PASS
npm run validation:kinetics:model
> [email protected] validation:kinetics:model
> node scripts/kinetics-model-validation.mjs
slope 2.500, R2 1.0000, duration 80.0
PASS: robust kinetics model recovers the known acquisition-time trend.
PASS: event-index kinetics remains exploratory even when its fitted trend is stable.
PASS: FCS time source selection covers seconds, $TIMESTEP ticks, and acquisition-clock fallback.
Gating standard
Gating-ML standard and runtime replay evidence.
PASS
npm run validation
> [email protected] validation
> node scripts/validation-report.mjs
FlowApp validation: 28/28 deterministic checks passed
Runtime validation: 91/91 runtime checks passed
External corpus: 80/80 external corpus case(s) passed.
JSON: /Users/haifeng/flowapp/.codex-artifacts/validation/flowapp-validation-report.json
HTML: /Users/haifeng/flowapp/.codex-artifacts/validation/flowapp-validation-report.html
Reproducibility fingerprints
SHA-256 values identify the model code and public fixtures used for this run.
src/cell-cycle-model.js9203277a1ab009a0d473a430a7e70459a6717ae5a472c2eebca1289f7facce4bsrc/proliferation-model.js21c426d0e94339fe463876ef7485956001b8069ed2ade01098e90c8ca17efdffsrc/kinetics-model.js58d6dc5518e4fb68d098b62c99944a33ebbbcf9d243412bc1cdd0026bb36d696test-data/flowjo-reference/quah-parish-flowfit-reference.csv2a93aaa13409a7b88556a0276bbf6bb7849bb7420d14e2be5ecbee481f602a12test-data/public-regression/flowfit-quah-parish/Fig-2a-All-CD4-T-Nonstim.fcs9a9f49a67ca9579ddf8d78020b1bd13eb0e3c84b8a58a59e6a175dbd37332b94test-data/public-regression/fcsparser/miltenyi-pbs-fcs31.fcs8cfedc08f387a53cd492c98b5150c3a85ad704499aec07190de5bb249897598e