All examples · Example 5 of 34
Swarm Plot: Calcium Transient Amplitude
Peak calcium transient amplitude (ΔF/F0) in individual WT and KO cells (n = 120 per genotype).

Key findings
- Amplitudes are right-skewed (skewness 1.05 and 1.47); Shapiro–Wilk rejects normality in 2 of 2 groups.
- Mann–Whitney U = 3,818, p = 3.2 × 10⁻¹⁰, Cliff's δ = -0.47 — KO transients are larger.
- Welch's t-test reaches the same conclusion (p = 7.2 × 10⁻¹⁰), so the result does not hinge on the choice of test.
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.
| Group | n | Mean | SD | SEM | Median | Q1 – Q3 | Min – Max | Skewness | Excess kurtosis |
|---|---|---|---|---|---|---|---|---|---|
| WT | 120 | 1.288 | 0.5404 | 0.04933 | 1.195 | 0.923 – 1.597 | 0.43 – 3.087 | 1.05 | 1.27 |
| KO | 120 | 1.91 | 0.9018 | 0.08232 | 1.712 | 1.301 – 2.217 | 0.517 – 5.63 | 1.47 | 2.85 |
LabTools call
stats.describelabtools 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
Three tests of the same question — could these values come from a normal distribution? Shapiro–Wilk has the best power at bench sample sizes, Anderson–Darling is more sensitive in the tails, and Kolmogorov–Smirnov (Lilliefors-corrected) is included for comparability with older papers. A significant p means normality is rejected.
| Group | n | Shapiro–Wilk W | p | Anderson–Darling A² | p | K–S D | p | Verdict |
|---|---|---|---|---|---|---|---|---|
| WT | 120 | 0.9316 | 1.2 × 10⁻⁵ | 2.118 | 2.1 × 10⁻⁵ | 0.133 | 2.0 × 10⁻⁵ | Normality rejected |
| KO | 120 | 0.8906 | 6.7 × 10⁻⁸ | 3.341 | 2.1 × 10⁻⁸ | 0.1264 | 7.0 × 10⁻⁵ | Normality rejected |
LabTools calls (3)
stats.normalitylabtools stats normality --groups @groups.json --method shapiro-wilk
stats.normalitylabtools stats normality --groups @groups.json --method anderson-darling
stats.normalitylabtools 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
- Group 'KO' rejects normality (p = 0.0000); prefer a rank-based test.
- Group 'WT' rejects normality (p = 0.0000); prefer a rank-based test.
- Group 'KO' rejects normality (p = 0.0001); prefer a rank-based test.
Equal variances
Student's t and one-way ANOVA assume every group has the same spread. LabTools' Levene test uses deviations from the group median (the Brown–Forsythe form), which stays reliable on skewed data; Bartlett's test is more powerful but only trustworthy when the data are normal. A significant p means the equal-variance assumption fails — prefer Welch's t-test or a rank-based test.
| Test | Statistic | p | Largest / smallest variance | Verdict |
|---|---|---|---|---|
| Levene (Brown–Forsythe, median-centred) | 14.12 | 0.0002 | 2.78 | Variances differ |
| Bartlett | 29.8 | 4.8 × 10⁻⁸ | 2.78 | Variances differ |
LabTools calls (2)
stats.levenelabtools stats levene --groups @groups.json --method levene
stats.levenelabtools stats levene --groups @groups.json --method bartlett
The same method is available as an MCP tool (stats_levene) and from the desktop app's statistics panel.
LabTools notes
- Variances differ: use Welch's t-test (stats.ttest default) or stats.kruskal rather than the pooled-variance alternatives.
- Bartlett's test assumes normality and is badly inflated when that fails — confirm with stats.normality, or use method='levene'.
Outlier screen
Five detectors with different assumptions. Grubbs tests the single most extreme point, generalised ESD looks for up to several (immune to masking), Dixon's Q is the small-sample chemistry test, modified-z uses the median and MAD so needs no normality, and the IQR rule is Tukey's boxplot fence. LabTools flags points; it never deletes them.
| Method | WT | KO |
|---|---|---|
| Grubbs | none | 1 (5.63) |
| Generalised ESD | none | 2 (5.63, 5.087) |
| Modified z (MAD) | 2 (3.087, 3.049) | 5 (4.034, 4.046, 5.63, 5.087 …) |
| IQR fences (1.5×) | 4 (2.658, 2.725, 3.087, 3.049) | 6 (4.034, 4.046, 5.63, 3.858 …) |
LabTools calls (4)
stats.outlierslabtools stats outliers --groups @groups.json --method grubbs
stats.outlierslabtools stats outliers --groups @groups.json --method generalized-esd --max-outliers 5
stats.outlierslabtools stats outliers --groups @groups.json --method modified-z
stats.outlierslabtools stats outliers --groups @groups.json --method iqr
The same method is available as an MCP tool (stats_outliers) and from the desktop app's statistics panel.
LabTools notes
- Flagged points are candidates, not verdicts, and nothing has been removed. Look for a physical cause before excluding anything; if there is none, keep the point and use a robust test instead. Any exclusion must be reported.
- Grubbs tests only the single most extreme point, so a second outlier can mask the first. On larger samples use method='generalized_esd'.
- The IQR rule is descriptive — it has no p-value and flags roughly 0.7% of a perfectly normal sample by construction.
Confidence intervals for the mean
t-based intervals: the range of population means these data are consistent with. Report them alongside p-values — an interval shows the size of an effect, a p-value does not.
| Group | n | Mean | 95% CI |
|---|---|---|---|
| WT | 120 | 1.288 | [1.19, 1.385] |
| KO | 120 | 1.91 | [1.747, 2.073] |
LabTools calls (2)
stats.cilabtools stats ci --data @WT.json --conf-level 0.95
stats.cilabtools stats ci --data @KO.json --conf-level 0.95
The same method is available as an MCP tool (stats_ci) and from the desktop app's statistics panel.
WT vs KO
The same comparison three ways. Welch's t-test (the LabTools default) does not assume equal variances; Student's pools them; Mann–Whitney compares ranks and needs no normality. When they agree the conclusion is robust to the choice.
| Test | Statistic | df | p | Mean difference (WT − KO) | 95% CI of difference |
|---|---|---|---|---|---|
| Welch t-test | t = -6.484 | 194.7 | 7.2 × 10⁻¹⁰ | -0.6223 | [-0.8116, -0.4331] |
| Student t-test | t = -6.484 | 238 | 5.1 × 10⁻¹⁰ | -0.6223 | [-0.8114, -0.4333] |
| Mann–Whitney U | U = 3,818 | — | 3.2 × 10⁻¹⁰ | — | — |
LabTools calls (3)
stats.ttestlabtools stats ttest --a @WT.json --b @KO.json --test welch
stats.ttestlabtools stats ttest --a @WT.json --b @KO.json --test student
stats.mannwhitneylabtools stats mannwhitney --a @WT.json --b @KO.json
The same method is available as an MCP tool (stats_ttest) and from the desktop app's statistics panel.
Effect sizes — how big, not just whether
| Measure | Estimate | 95% CI | Magnitude |
|---|---|---|---|
| Hedges' g (bias-corrected) | -0.834 | [-1.097, -0.5706] | large |
| Cohen's d | -0.837 | — | large |
| Glass's Δ (scaled by the WT SD) | -1.15 | — | large |
| Cliff's δ (non-parametric) | -0.47 | — | medium |
LabTools calls (4)
stats.effectsizelabtools stats effectsize --a @WT.json --b @KO.json --measure hedges-g
stats.effectsizelabtools stats effectsize --a @WT.json --b @KO.json --measure cohens-d
stats.effectsizelabtools stats effectsize --a @KO.json --b @WT.json --measure glass-delta
stats.effectsizelabtools stats effectsize --a @WT.json --b @KO.json --measure cliffs-delta
The same method is available as an MCP tool (stats_effectsize) and from the desktop app's statistics panel.
LabTools notes
- Group 'a' departs from normality (Shapiro–Wilk W = 0.9316, p = 0.0000 < 0.05). Consider stats.mannwhitney.
- Group 'b' departs from normality (Shapiro–Wilk W = 0.8906, p = 0.0000 < 0.05). Consider stats.mannwhitney.
Design sensitivity
LabTools calls (2)
stats.powerlabtools stats power --n1 120 --n2 120 --mode mde --power 0.8
stats.powerlabtools stats power --n1 120 --n2 120 --effect-size 0.5
The same method is available as an MCP tool (stats_power) and from the desktop app's statistics panel.
Methods paragraph
Written to go straight into a manuscript.
Amplitudes were right-skewed, so genotypes were compared by a two-sided Mann–Whitney U test (U = 3,818, z = −6.29, p < 0.0001); Cliff’s δ = −0.47 (medium effect, KO larger).
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.
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.