Skip to content
Development
Skill

/western-blot-quantification

Protocols and best practices for western blot quantification and analysis including band detection, normalization, and statistical methods.

From plugin
sciagent-skills
384200 skills

Claude Code

$ npx -y skills add jaechang-hits/SciAgent-Skills --skill western-blot-quantification --agent claude-code

SKILL.md

western-blot-quantification.SKILL.md
name: western-blot-quantification
description: Protocols and best practices for western blot quantification and analysis including band detection, normalization, and statistical methods.
license: open

Western Blot Quantification and Analysis

---

Metadata

**Short Description**: Comprehensive guide for quantifying and analyzing Western blot images with multiple experimental repetitions, including intensity measurement, normalization, statistical analysis, and visualization.

**Authors**: Ohagent Team

**Version**: 1.0

**Last Updated**: December 2025

**License**: CC BY 4.0

**Commercial Use**: ✅ Allowed

---

Overview

This guide provides a standardized workflow for analyzing Western blot images, particularly for experiments with multiple repetitions and conditions. The protocol covers band intensity detection, normalization procedures, statistical aggregation, and visualization best practices.

Key Concepts

Loading Control Normalization

Western blot quantification cannot use raw band intensities, because total protein loaded per lane varies between samples (pipetting error, transfer efficiency, gel artifacts). A **loading control** is a protein assumed to be expressed at the same level across all samples (commonly GAPDH, β-actin, α-tubulin, or a total-protein stain such as Ponceau S / stain-free imaging). Dividing the target band intensity by the loading control intensity in the same lane yields a normalized value that corrects for these per-lane technical variations. The loading control must itself be unsaturated and within the linear dynamic range of the detection system.

Two-Step Normalization

When two related signals are measured in the same blot — for example a total form (SMAD2) and its phosphorylated form (PSMAD2) — a **two-step normalization** disentangles changes in protein abundance from changes in modification state. Step A normalizes the total protein to a housekeeping control (`SMAD2_norm = SMAD2 / GAPDH`); Step B normalizes the modified form to that loading-corrected total (`PSMAD2_target = PSMAD2 / SMAD2_norm`). This isolates the modification-specific signal from changes in expression of the underlying protein.

Statistical Aggregation Across Repetitions

Each Western blot is one experimental observation; biological conclusions require **biological replicates** (independent experiments, not just multiple lanes from one gel). Aggregation steps: (1) normalize *within* each replicate, (2) compute fold-change relative to the within-replicate control (so the control is 1.0 by definition), (3) compute mean and dispersion (SD or SE) *across* replicates. Normalizing across replicates before computing fold-change inflates apparent effect size and confuses gel-to-gel variation with biological effect.

Standard Deviation vs Standard Error

**SD** describes the spread of the underlying biological response across replicates and is appropriate when the question is "how variable is this effect?". **SE** (= SD / √n) describes the precision of the estimated mean and is appropriate when the question is "how confident are we in this mean value?". For typical n=3 western blot experiments, SD bars look larger than SE bars but communicate the underlying biology more honestly. Always state which error measure is plotted in the figure legend.

Decision Framework

Western blot quantification decision tree
└── Single target protein measured?
    ├── Yes -> Single-step normalization: Target / LoadingControl  (per lane)
    │           └── Compute fold change vs control within each replicate
    │               └── Aggregate mean +/- error across replicates
    └── No, two related signals (e.g., total + modified form)
        └── Two-step normalization
            ├── Step A: TotalForm_norm = TotalForm / LoadingControl  (per lane)
            └── Step B: ModifiedForm_target = ModifiedForm / TotalForm_norm

Error bar choice:
└── Reporting biological variability of the effect? -> SD
└── Reporting precision of the mean estimate?       -> SE = SD / sqrt(n)

Experimental design choice:
└── Discrete treatments (control vs conditions)            -> Multi-condition design + bar graph + ANOVA / t-tests
└── Same treatment over multiple time points               -> Time course design + line graph; normalize to t0 control
└── Same treatment at multiple concentrations              -> Dose response design + log-x line graph; fit EC50 / IC50

| Situation | Recommended choice | Rationale | |-----------|--------------------|-----------| | Quantifying total protein abundance changes | Single-step normalization (Target / LoadingControl) | One measurement per lane; loading control corrects total-protein loading | | Quantifying post-translational modification (phosphorylation, ubiquitination) | Two-step normalization (Modified / Total_norm) | Isolates modification stoichiometry from changes in total protein expression | | n = 3 replicates, biology-focused figure | Mean ± SD | Communicates the spread of the biological response | | n = 3 replicates, statistical-precision figure | Mean ± SE | Communicates the precision of the mean estimate | | Small fold changes (~1.5×) on noisy blots | Increase n to ≥ 4–6 and report SE with explicit n in legend | Low effect size requires more replicates for adequate statistical power | | Comparing 4+ discrete conditions | Multi-condition design + ANOVA with post-hoc correction | Pairwise t-tests across many conditions inflate Type I error | | Tracking the same effect over time | Time-course design, normalize to t = 0 within each replicate | Removes baseline drift between replicates | | Determining potency (EC50 / IC50) | Dose-response design with log-spaced concentrations | Log spacing samples the sigmoidal response uniformly; nonlinear fit gives EC50 | | Loading control band saturated | Re-image at lower exposure or dilute the lysate | Saturated bands violate the linear dynamic range and silently bias normalization | | One outlier repl

Read more
@jaechang-hits
Ships withsciagent-skills

Turn your AI coding agent into a life sciences expert — 199 bioinformatics skills for Claude Code covering RNA-seq, single-cell analysis, genomics, proteomics, drug discovery, and more. Boosted BixBench from 65% to 92%. Open source.

Stars on GitHub

Momentum

stars in total
384
Star history of jaechang-hits/SciAgent-Skills on GitHub, a chart by star-history.com

Other skills on sciagent-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about western-blot-quantification.

Which coding agents can use western-blot-quantification?
western-blot-quantification installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.