LabToolsThe Research Infrastructure
  • Features
  • Demo
  • Technology
  • Examples
  • White Paper
  • FiTrace
  • Data Analysis ↗
  • Calculators
  • Scheduler
Download
FeaturesDemoTechnologyExamplesWhite PaperFiTraceData Analysis ↗CalculatorsSchedulerHealth Tracker ↗

All examples · Example 8 of 34

2D HistogramDistributionStatistical report

2D Histogram: Flow Cytometry FSC vs SSC

Forward (FSC-A) vs side scatter (SSC-A) density for 20,000 events, showing two cell populations and low-scatter debris.

Forward (FSC-A) vs side scatter (SSC-A) density for 20,000 events, showing two cell populations and low-scatter debris.

Key findings

  • FSC and SSC are strongly associated: Spearman ρ = 0.846, Pearson r = 0.833, Kendall τ = 0.653 (n = 20,000).
  • The mixture model finds 3 components in FSC and 3 in SSC — the populations a gate would separate.
  • SSC is strongly skewed (skewness 0.669; mean 294.5 vs median 202.2).
8 LabTools stats calls
4 of 15 stats methods
LabTools 0.14.3
600 dpi PNG Data (CSV) Raw LabTools output
In this reportDescriptive statisticsNormalityScatter populations per channel (Gaussian mixture)FSC–SSC association

Descriptive statistics

Location, spread and shape for every group — the first thing to read before choosing a test. Skewness near 0 and excess kurtosis near 0 are what a normal distribution looks like.

GroupnMeanSDSEMMedianQ1 – Q3Min – MaxSkewnessExcess kurtosis
FSC-A20,000471.4155.81.101451.1390.8 – 606.320.2 – 899.2-0.420.153
SSC-A20,000294.5174.41.233202.2168 – 48110.2 – 795.80.669-1.1
LabTools call
stats.describe
labtools stats describe --groups @groups.json

The same method is available as an MCP tool (stats_describe) and from the desktop app's statistics panel.

Normality

At n = 20,000 even trivial departures from normality are 'significant', so read these alongside skewness and kurtosis. Note that LabTools refuses Shapiro–Wilk above n = 5,000 and says so — it is not calibrated there.

GroupnShapiro–Wilk WpAnderson–Darling A²pK–S DpVerdict
FSC-A20,000n/a—236.33.7 × 10⁻²⁴0.076765.7 × 10⁻³¹⁹Normality rejected
SSC-A20,000n/a—1,5723.7 × 10⁻²⁴0.2592< 10⁻³⁰⁰Normality rejected
LabTools calls (3)
stats.normality
labtools stats normality --groups @groups.json --method shapiro-wilk

LabTools declined: stats.normality: Invalid argument: Shapiro-Wilk not recommended for n > 5000 (use Anderson-Darling instead)

stats.normality
labtools stats normality --groups @groups.json --method anderson-darling
stats.normality
labtools stats normality --groups @groups.json --method kolmogorov-smirnov

The same method is available as an MCP tool (stats_normality) and from the desktop app's statistics panel.

LabTools notes

  • LabTools declined one test — stats.normality (shapiro-wilk): stats.normality: Invalid argument: Shapiro-Wilk not recommended for n > 5000 (use Anderson-Darling instead)
  • Group 'FSC-A' rejects normality (p = 0.0000); prefer a rank-based test.
  • Group 'FSC-A' has n = 20000; at this size a normality test flags departures far too small to affect a t-test. Judge by the skewness/kurtosis and a QQ plot instead.
  • Group 'SSC-A' rejects normality (p = 0.0000); prefer a rank-based test.
  • Group 'SSC-A' has n = 20000; at this size a normality test flags departures far too small to affect a t-test. Judge by the skewness/kurtosis and a QQ plot instead.

Scatter populations per channel (Gaussian mixture)

Fits 1, 2 … k Gaussian components by EM (10 restarts, fixed seed, so the numbers are reproducible) and compares them by BIC, which is consistent for the number of components. best k = 1 is positive evidence for a single population.

FSC-A (n = 20,000) — best k by BIC = 3, by AIC = 3

klog-likelihoodAICBICConvergedComponents (weight, mean, SD)
1-129,344258,691258,707yes100.0% at μ = 471.4 (σ = 155.7)
2-128,967257,945257,984no11.0% at μ = 228.7 (σ = 144.2); 89.0% at μ = 501.4 (σ = 128.5)
3 ★-125,953251,922251,985yes10.8% at μ = 174.5 (σ = 91.47); 54.0% at μ = 421.7 (σ = 49.08); 35.2% at μ = 639.2 (σ = 59.95)
LabTools call
stats.gmm
labtools stats gmm --groups @groups.json --k-max 3

The same method is available as an MCP tool (stats_gmm) and from the desktop app's statistics panel.

SSC-A (n = 20,000) — best k by BIC = 3, by AIC = 3

klog-likelihoodAICBICConvergedComponents (weight, mean, SD)
1-131,601263,206263,222yes100.0% at μ = 294.5 (σ = 174.4)
2-119,876239,762239,802yes65.1% at μ = 172.9 (σ = 42.97); 34.9% at μ = 520.8 (σ = 69.61)
3 ★-118,503237,022237,085no3.8% at μ = 57.08 (σ = 29.47); 61.2% at μ = 179.9 (σ = 31.83); 35.0% at μ = 520.4 (σ = 70.11)
LabTools call
stats.gmm
labtools stats gmm --groups @groups.json --k-max 3

The same method is available as an MCP tool (stats_gmm) and from the desktop app's statistics panel.

LabTools notes

  • 'FSC-A': BIC prefers 3 components over 1 — the column looks like a mixture, not a single population.
  • 'SSC-A': BIC prefers 3 components over 1 — the column looks like a mixture, not a single population.
  • 'SSC-A': the selected k=3 fit did not converge; raise n_init or lower k_max before trusting its components.

FSC–SSC association

Forward scatter tracks cell size and side scatter tracks granularity. Three correlation coefficients on all 20,000 events: Pearson for linear association, Spearman and Kendall for any monotonic trend. Kendall's τ on 20,000 pairs runs in a fraction of a second.

CoefficientEstimater²np
Pearson r (linear)0.83260.693220,000< 10⁻³⁰⁰
Spearman ρ (monotonic, rank)0.846—20,000< 10⁻³⁰⁰
Kendall τ (rank, tie-robust; normal-approximation p)0.6531—20,000< 10⁻³⁰⁰
LabTools calls (3)
stats.correlation
labtools stats correlation --a @FSC-A.json --b @SSC-A.json --method pearson
stats.correlation
labtools stats correlation --a @FSC-A.json --b @SSC-A.json --method spearman
stats.correlation
labtools stats correlation --a @FSC-A.json --b @SSC-A.json --method kendall

The same method is available as an MCP tool (stats_correlation) and from the desktop app's statistics panel.

LabTools notes

  • Pearson's r measures LINEAR association only, and is sensitive to outliers. A scatter plot (plot.create kind='scatter') is worth a look before reporting it; use method='spearman' if the relationship is monotonic but curved.

Methods paragraph

Written to go straight into a manuscript.

Event density was binned on a 70 × 70 grid. FSC-A and SSC-A were strongly correlated (Spearman ρ = 0.85, n = 20,000).

Every number on this page was computed by the LabTools statistics engine (version 0.14.3) from the example's CSV on 2026-09-23. Where a value was derived before the data reached LabTools (replicate means, paired differences, log odds ratios), the text says so. The data are simulated from a fixed random seed.

Ridgeline Plot: Cell Size over TimeQ–Q Plot: Model Residuals

Get started

Run the same analysis on your data

Every test on this page is built into LabTools — from the statistics panel, the command line, or an AI assistant through MCP.

Download freeMore examples

LabTools

The research infrastructure: plot to figure to manuscript in one place. Free for academic and individual use.

Product

  • Features
  • Technology
  • Demo & Tutorials
  • Examples
  • Download

Support

  • Contact Support
  • Help Center

Filliaux Industries

  • filliaux.com
  • Data Analysis
  • Health Tracker

Stay updated

Research tips, product updates, and release notes. No spam.

© 2026 Filliaux Industries · LabToolsPrivacyTermsCookiesLinkedIn