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

All examples · Example 10 of 34

Box PlotComparisonStatistical report

Box Plot: Western Blot Quantification

Normalised band intensity for four conditions (boxes: all 12 lanes per condition). Brackets show BH-adjusted Welch t-tests on biological-replicate means (n = 3).

Normalised band intensity for four conditions (boxes: all 12 lanes per condition). Brackets show BH-adjusted Welch t-tests on biological-replicate means (n = 3).

Key findings

  • Tested on biological-replicate means (n = 3 per condition), not on 12 lanes: the correct unit of analysis.
  • One-way ANOVA F = 78.64, p = 2.8 × 10⁻⁶; Kruskal–Wallis p = 0.016. 6 of 6 Welch comparisons survive Holm correction.
  • Rank tests hit a floor at this n: with 3 vs 3, Mann–Whitney cannot go below p = 0.081 even when the groups do not overlap at all (Cliff's δ = ±1), so none survives correction. With three replicates, only the parametric tests can reach significance.
  • The minimum detectable effect at n = 3 per group is d = 3.07 (80% power): large effects like this treatment are visible, subtle ones would not be.
31 LabTools stats calls
9 of 15 stats methods
LabTools 0.14.3
600 dpi PNG Data (CSV) Raw LabTools output
In this reportDesign: why n = 3, not 12All lanes (descriptive only)Lane-level outlier screenBiological-replicate means (the unit of analysis)Equal variancesDo the groups differ? (omnibus tests)Which groups differ? (pairwise, corrected)

Design: why n = 3, not 12

Each condition has 3 biological replicates, each run as 4 technical lanes. Technical lanes are not independent — they share a lysate — so testing all 12 lanes as if they were would be pseudoreplication and would inflate every p-value. The lanes are averaged within each biological replicate (a mean computed here, before the data reach LabTools) and the tests below run on those n = 3 means per condition.

All lanes (descriptive only)

Per-condition summary of all 12 lanes. Useful for spotting a bad lane; not the unit of analysis.

GroupnMeanSDSEMMedianQ1 – Q3Min – MaxSkewnessExcess kurtosis
Control121.0970.11960.034511.0981.037 – 1.1450.921 – 1.3750.7731.95
Treated122.1690.19180.055372.2342.029 – 2.281.841 – 2.407-0.611-0.898
Treated + inhibitor121.6730.14140.040831.6641.618 – 1.7411.459 – 1.9730.4370.829
Inhibitor120.87640.081140.023420.8820.8407 – 0.93330.724 – 1.002-0.425-0.336
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.

Lane-level 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.

MethodControlTreatedTreated + inhibitorInhibitor
Grubbsnonenonenonenone
Generalised ESDnonenonenonenone
Dixon's Qnonenonenonenone
Modified z (MAD)nonenonenonenone
IQR fences (1.5×)1 (1.375)none1 (1.973)none
LabTools calls (5)
stats.outliers
labtools stats outliers --groups @groups.json --method grubbs
stats.outliers
labtools stats outliers --groups @groups.json --method generalized-esd --max-outliers 5
stats.outliers
labtools stats outliers --groups @groups.json --method dixon-q
stats.outliers
labtools stats outliers --groups @groups.json --method modified-z
stats.outliers
labtools 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.
  • The IQR rule is descriptive — it has no p-value and flags roughly 0.7% of a perfectly normal sample by construction.

Biological-replicate means (the unit of analysis)

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
Control31.0970.1020.058891.0971.046 – 1.1480.9945 – 1.198-0.0221—
Treated32.1690.1650.095242.1622.085 – 2.252.007 – 2.3370.175—
Treated + inhibitor31.6730.11010.063551.6261.61 – 1.7121.595 – 1.7991.58—
Inhibitor30.87640.046330.026750.87320.8525 – 0.89870.8317 – 0.92430.306—
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.

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.

TestStatisticpLargest / smallest varianceVerdict
Levene (Brown–Forsythe, median-centred)0.57230.6512.7Homogeneous
Bartlett2.2280.5312.7Homogeneous
LabTools calls (2)
stats.levene
labtools stats levene --groups @groups.json --method levene
stats.levene
labtools 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

  • Group 'Control' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.
  • Group 'Inhibitor' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.
  • Group 'Treated' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.
  • Group 'Treated + inhibitor' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.
  • Non-significant. This test has low power on small samples, so treat this as 'no evidence against equal variances', not as evidence for them.
  • Bartlett's test assumes normality and is badly inflated when that fails — confirm with stats.normality, or use method='levene'.

Do the groups differ? (omnibus tests)

One-way ANOVA compares means and assumes normal residuals with equal variances; Kruskal–Wallis compares ranks and assumes neither. Both only say the groups differ somewhere — the pairwise table below says where.

TestStatisticdfpEffect size
One-way ANOVAF = 78.643, 82.8 × 10⁻⁶ω² = 0.951 · η² = 0.967 · Cohen's f = 5.43
Kruskal–Wallis HH = 10.3830.016ε² = 0.944
LabTools calls (2)
stats.anova
labtools stats anova --groups @groups.json
stats.kruskal
labtools stats kruskal --groups @groups.json

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

LabTools notes

  • Group 'Control' has n = 3; normality screening has very low power at this size, so a non-significant Shapiro–Wilk is weak evidence of normality.

Which groups differ? (pairwise, corrected)

6 comparisons (every pair), each run as a Welch t-test and a Mann–Whitney test. Testing many pairs inflates false positives, so every p-value is corrected with Holm (family-wise) and Benjamini–Hochberg (false-discovery rate) through stats.adjust.

ComparisonMean diff.95% CIHedges' gWelch pHolmBHMann–Whitney pHolmCliff's δ
Control vs Treated-1.072[-1.409, -0.7349]-6.250.0020.0090.0050.0810.49-1
Control vs Treated + inhibitor-0.5764[-0.8175, -0.3353]-4.350.0030.0110.0050.0810.49-1
Control vs Inhibitor0.2203[0.005517, 0.4351]2.230.0470.0470.0470.0810.491
Treated vs Treated + inhibitor0.4955[0.1582, 0.8328]2.830.0170.0330.0200.0810.491
Treated vs Inhibitor1.292[0.9174, 1.667]8.530.0030.0110.0050.0810.491
Treated + inhibitor vs Inhibitor0.7968[0.5621, 1.031]7.550.0020.0110.0050.0810.491
LabTools calls (3)
stats.ttest
labtools stats ttest --a @Control.json --b @Treated.json --test welch --no-assumption-checks
stats.mannwhitney
labtools stats mannwhitney --a @Control.json --b @Treated.json
stats.adjust
labtools stats adjust --p-values @p_values.json --labels @labels.json --method holm

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

Design sensitivity

d = 3.07
Minimum detectable effect (80% power, α = 0.05)
n = 3 vs 3
7.7%
Power to detect d = 0.5
11.9%
Power to detect d = 0.8
20.7%
Power to detect d = 1.2
LabTools calls (2)
stats.power
labtools stats power --n1 3 --n2 3 --mode mde --power 0.8
stats.power
labtools stats power --n1 3 --n2 3 --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.

To avoid pseudoreplication, technical replicates were averaged within each biological replicate and conditions compared by Welch’s t-test on the replicate means (n = 3); p-values were adjusted by Benjamini–Hochberg. Treatment increased band intensity 2.0-fold (p_adj = 0.005), and the inhibitor partially reversed it (p_adj = 0.025).

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.

Q–Q Plot: Model ResidualsBar Chart: ELISA Results

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