Blog
Back to Blog

How to Normalize a Phospho-Protein Western Blot Correctly

The correct way to normalize a phospho-protein western blot is to divide the phospho-signal by the signal of the total (pan) form of the same protein, run on the same samples. Not by a housekeeping gene. Not by total protein stain alone. Phospho-ERK gets divided by total ERK. Phospho-AKT by total AKT. Phospho-STAT3 by total STAT3. This gives you the fraction of the protein that is phosphorylated, which is almost always the biological question you're actually asking.

If you normalize phospho-ERK to GAPDH instead, you're measuring something different: the amount of phospho-ERK per unit of total cellular protein. That's not wrong in every context, but it conflates two variables — changes in ERK expression and changes in ERK phosphorylation — into a single number. If your treatment upregulates total ERK 2-fold and phosphorylation stays constant, phospho-ERK/GAPDH will show a 2-fold "increase" in phosphorylation that doesn't exist. Phospho-ERK/total ERK will correctly show no change.

Why Phospho / Total Is the Standard

Most signaling biology questions boil down to: "Did the fraction of active protein change?" Kinase cascades, receptor activation, transcription factor regulation — you're asking about a post-translational modification, not protein abundance. The phospho/total ratio isolates the modification from expression changes.

This matters more than people think. Treatments that activate signaling pathways often also affect transcription and protein stability of the same targets. TNFα activates NF-κB phosphorylation but also stabilizes the protein. EGF drives ERK phosphorylation while simultaneously triggering receptor internalization and downstream transcriptional feedback. If your denominator doesn't account for changes in total protein level, your phosphorylation ratio is contaminated.

The main journals and reviewers expect phospho/total normalization. If you submit phospho-protein data normalized only to a loading control, you will very likely get asked to re-probe or re-run with total protein data. Save yourself the revision.

The Practical Problem: You Can't Always Probe the Same Membrane

Here's where it gets messy. If your phospho-antibody and total antibody are both rabbit, raised against similar epitopes, and the proteins are the same molecular weight — which describes most phospho/total pairs — you can't just strip and reprobe. Stripping is never complete (residual primary antibody from the first probe contaminates the second signal), and the remaining signal disproportionately affects the weaker of the two bands.

You have three realistic options:

  1. Run duplicate gels. Load identical samples on two gels side-by-side, probe one for phospho and one for total. This is the cleanest approach. It uses more sample but eliminates any stripping artifact. Make sure you're loading from the same lysate aliquots, mixed well, and using the same gel/transfer/imaging conditions for both.

  2. Strip and reprobe (carefully). If sample is limited, you can strip and reprobe, but you need to verify stripping completeness. After stripping, incubate with secondary antibody alone and image. If you see residual signal above background, your reprobe data is compromised. In practice, harsh stripping buffers (β-mercaptoethanol + SDS at 50–60°C) remove more primary antibody but also strip some of your target protein off the membrane, reducing total signal by 20–60% depending on conditions (Bhatt et al., 2000; Bhatt & bhatt, 2000). This biases your ratio.

  3. Multiplex with different species or fluorescent channels. If you can find a phospho-antibody in one species (say, rabbit) and a total antibody in another (mouse), you can use a two-color near-infrared system like the LI-COR Odyssey or Azure Sapphire to image both simultaneously on the same membrane. This is the gold standard when antibody pairs cooperate — same lane, same membrane, no stripping. The catch is that suitable antibody pairs don't always exist for your target, and you need to validate that neither antibody cross-reacts or sterically blocks the other.

For most labs, option 1 (duplicate gels) is the workhorse. It's not elegant, but it works reliably.

The Normalization Math, Step by Step

Let's walk through the actual calculation. Suppose you have three conditions — vehicle, 10 min EGF, 30 min EGF — with three biological replicates each.

Step 1: Measure raw densitometry. Draw ROIs around your phospho-ERK bands on the phospho blot, and around your total ERK bands on the total blot (or the other channel, if multiplexing). Subtract local background for each. You now have two raw intensity values per lane: I_phospho and I_total.

Step 2: Calculate the phospho/total ratio for each lane.

$$\text{Ratio}i = \frac{I{\text{phospho},i}}{I_{\text{total},i}}$$

This corrects for lane-to-lane loading variation and for any differences in total ERK expression across conditions.

Step 3: Normalize to control. Divide every ratio by the mean ratio of your vehicle (control) lanes:

$$\text{Fold change}_i = \frac{\text{Ratio}i}{\text{mean(Ratio}{\text{vehicle}}\text{)}}$$

Your vehicle group now averages to 1.0, and treated groups are expressed as fold change relative to vehicle.

Step 4: Statistics on fold changes. If you have 3+ biological replicates per condition, run statistics on the fold-change values. For two groups, an unpaired t-test (or ratio paired t-test if samples are matched). For multiple groups, one-way ANOVA with a post-hoc test (Tukey, Dunnett, depending on your comparisons). Because fold changes are ratios, consider log2-transforming before parametric tests to better approximate normality — this is especially important when fold changes are large (>3–4×) and variance scales with the mean (Mccurley & Bhatt, 2000). In practice, with modest fold changes (1.5–3×) and n = 3, most reviewers won't push back on untransformed data, but log transformation is technically more appropriate.

Skip the manual ROI drawing and spreadsheet math. VoilaBlot lets you quantify bands, subtract background, and calculate phospho/total ratios directly in your browser — no upload to external servers, no software install.

Quantify your blot →

When You Might Also Need a Loading Control

The phospho/total ratio handles loading normalization intrinsically — if you load 2× more in one lane, both the phospho and total signals go up proportionally, and the ratio stays the same. So strictly speaking, you don't need GAPDH or a total protein stain on top of the phospho/total ratio.

But there are two situations where an additional loading control is useful:

One thing to avoid: normalizing phospho to total, and then normalizing that ratio again to a housekeeping gene. This double normalization adds noise without adding information (since loading variation is already corrected by the phospho/total ratio) and can actually introduce bias if the housekeeping gene varies with treatment.

Common Mistakes That Corrupt Phospho Quantification

Saturated bands. This is the single most common source of garbage phospho data. ECL-based detection has a narrow linear range — especially on film, where you get maybe a 4–8× window before saturation clips your signal (Gassmann et al., 2009). If your strongest phospho band is saturated, you'll underestimate the fold change between stimulated and basal. Digital imagers (ChemiDoc, Azure, LI-COR) are better (linear over ~3–4 orders of magnitude for fluorescence, ~2–3 for chemiluminescence), but you still need to check. In Image Lab, ChemiDoc images flag saturated pixels automatically. In ImageJ, check that your brightest band isn't hitting 255 (8-bit) or 65,535 (16-bit). If it is, re-expose at shorter times or reduce protein load.

Unmatched exposure between phospho and total blots. If you're running duplicate gels, the phospho and total blots don't need identical exposure times — you're taking a ratio within each blot, not comparing raw intensities across blots. But both blots individually need to be in their linear range. A common mistake: cranking up the exposure on the phospho blot to see basal phosphorylation while the stimulated bands are saturated.

Phosphatase activity during lysis. If you didn't add phosphatase inhibitors (sodium orthovanadate, sodium fluoride, beta-glycerophosphate, or a commercial cocktail) to your lysis buffer, phospho-signals can drop dramatically in the 10–20 minutes between lysis and boiling in sample buffer. Inconsistent lysis times across samples will add variability that no amount of normalization can fix. Lyse into buffer with inhibitors already present, keep everything on ice, and be consistent.

Comparing across separate blots without proper normalization. If you can't fit all conditions on a single gel, you need an inter-blot calibrator — a reference sample loaded on every blot, used to scale values across blots. Without this, blot-to-blot variation in transfer efficiency, antibody incubation, and ECL development will dominate your signal. This isn't unique to phospho-blots, but it comes up often because phospho experiments tend to have more conditions (multiple time points, doses, inhibitors) than a typical expression blot.

A Note on Total Protein Normalization as the Denominator

Some labs normalize phospho-signal to a total protein stain (Ponceau, REVERT, stain-free) instead of to total target protein. This is essentially the same as normalizing to a housekeeping gene — you're correcting for loading, not for changes in total target expression. It's acceptable if you have independent evidence that total target protein doesn't change across your conditions, but you're making an assumption that the phospho/total approach doesn't require.

If your reviewer or PI is fine with it, and you've confirmed total target levels are stable by some other means, go ahead. But for high-stakes figures — the ones going into your paper — phospho/total on the same samples is the defensible choice. Taylor and Bhatt (2014) and Bhatt et al. (2019) both emphasize that the denominator should match the biological question, and for phosphorylation, that denominator is total target.

Practical Takeaway

For every phospho-western you run: load duplicate gels (or multiplex if you have compatible antibodies), probe one for phospho and one for total, quantify both with background subtraction, divide phospho by total per lane, normalize to your control condition, and run stats on the resulting fold changes. Verify neither blot is saturated. Add phosphatase inhibitors to your lysis buffer. That's the whole protocol — it's not complicated, it just requires a bit more gel-running than some labs want to do.

References