Analyzing a western blot means converting the bands on your membrane into numbers you can compare across samples, then testing whether those differences are real. The process involves image capture, background subtraction, measuring band intensity, normalizing to a loading control, and running statistics on biological replicates. Each step introduces potential error, and western blot data is considered semi-quantitative, so careful technique at every stage matters more than with many other assays.
Capture Your Image Correctly
Before any analysis begins, you need a usable image. If you’re using film-based detection with chemiluminescence, the linear range of film is only about one order of magnitude (a 10-fold range). That narrow window makes it very easy to over- or underexpose without realizing it. Camera-based digital imaging systems offer a much broader linear dynamic range of roughly three to four orders of magnitude, which is why most labs doing quantitative work have moved to digital capture.
Fluorescent detection generally produces less variability between dilution points compared to chemiluminescence, and for some targets, fluorescence gives a wider linear range. Both methods can be sensitive enough for most proteins, but fluorescence tends to be more reproducible when you need precise quantification. Whichever system you use, check for signal saturation before proceeding. If the brightest bands have hit the maximum pixel intensity, your measurements will underestimate the true differences between samples. With film, saturation is nearly impossible to judge by eye. Digital systems typically have a saturation indicator or a pixel intensity histogram you can check.
Verify You’re in the Linear Range
This is the step most people skip, and it’s the most common source of bad western blot data. The relationship between the amount of protein on the membrane and the signal your detector captures is only linear over a limited range. Outside that range, doubling the protein does not double the signal, and your fold-change calculations become meaningless.
To check linearity, run a dilution series of your lysate (five or more points in two-fold steps works well) and plot the signal against the amount loaded. You should see a straight line over the concentrations you plan to use in your experiments. Published validation data show that most antibodies are quantitatively valid over an 8-fold to 64-fold range, with the majority working well across about 16-fold. If your experimental samples fall outside this window, you’ll need to adjust your protein loading amount.
When protein load is too high, the gel itself can become saturated. The membrane binds protein in layers, and a two-dimensional detector only captures signal from protein near the surface. This creates a plateau where adding more protein doesn’t increase signal. With film specifically, you can even see signal intensity decrease at very high loads because the background between bands saturates before the bands themselves do, compressing your background-subtracted values downward.
Measure Band Intensity
Most labs use ImageJ (or its distribution Fiji) for densitometry because it’s free and well-documented. The basic workflow is straightforward. Open your image, convert it to grayscale if needed, and set your measurements to record the mean gray value. Draw a rectangle around your largest band in the row, then use that same rectangle size for every band in that row to keep your measurement area consistent.
For each band, place the rectangle so the band is centered inside it, then record the measurement. Next, take a background reading by placing that same rectangle in a blank area of the membrane directly above or below each band, where there are no other bands or staining artifacts. Subtract the background value from each band’s value. This background-subtracted intensity is your raw data point for that band.
Some researchers use ImageJ’s gel analysis tool with lane profile plots instead, which integrates the area under each peak. Either approach works as long as you apply it consistently across all bands in the experiment. The key mistakes to avoid are using different-sized selection areas for different bands and forgetting to subtract background.
Normalize to a Loading Control
Raw band intensities can’t be compared directly between lanes because small differences in how much protein was loaded, how evenly it transferred to the membrane, and how uniformly the antibody bound will all affect the signal. Normalization corrects for these inconsistencies. You have two main options: housekeeping proteins or total protein staining.
Housekeeping Proteins
The traditional approach uses a protein assumed to be expressed at constant levels across your samples. Common choices include beta-actin, GAPDH, and tubulin. You probe the same membrane for your target and the housekeeping protein, then divide each target band’s intensity by the corresponding housekeeping band’s intensity in that lane.
The problem is that housekeeping proteins are not as stable as once assumed. Beta-actin expression is low in heart tissue and its mRNA levels can change with insulin treatment. GAPDH runs low in small intestine. Alpha-tubulin and beta-tubulin both show low expression in pancreas. Beyond tissue-specific variation, housekeeping protein levels can shift between cell lines, disease states, and experimental treatments. If your “control” protein is actually changing across your conditions, your normalized data will be wrong.
Total Protein Staining
A more reliable alternative is normalizing to the total protein loaded in each lane. This uses dyes like Ponceau S, Coomassie, or stain-free gel technology to visualize all proteins on the membrane, then measures the total signal per lane. Because you’re averaging across hundreds of proteins, the measurement reflects the true sample load more accurately than any single protein can. Studies comparing the two approaches find that total protein normalization produces lower variance between technical replicates and eliminates the problem of individual protein expression variability.
The tradeoff is practical: traditional dye staining adds extra wash and destaining steps to your protocol, and stain-free technology requires compatible gels and a UV-capable imager. If those are available to you, total protein normalization is the stronger choice.
Calculate Fold Change
Once every band has a normalized intensity value (target intensity divided by loading control intensity), you express your results as fold change relative to a control condition. Pick one sample or condition as your reference (typically the untreated or wild-type group), and divide every normalized value by the average normalized value of that reference group. This gives you a ratio where the control equals 1 and everything else is expressed relative to it.
Ideally, the relationship between signal intensity and protein amount follows a directly proportional model (y = mx, a straight line through the origin). In practice, some antibody-target combinations are better fit by a line that doesn’t pass through zero, or even by a nonlinear curve. If you’ve run a standard dilution series, you can check which model fits your data best. For most routine comparisons between treated and untreated groups, a simple ratio of normalized intensities is sufficient, but be aware that this assumes proportionality.
Run Statistics on Biological Replicates
A single blot, no matter how clean, is one experiment. Quantitative conclusions require biological replicates, meaning the entire experiment repeated with independently prepared samples. Technical replicates (loading the same lysate multiple times) tell you about measurement precision but don’t capture biological variability.
Three biological replicates is a common minimum, though more replicates give you better statistical power. For comparing two conditions, a t-test on the normalized fold-change values is standard. For three or more conditions, use ANOVA. Western blot intensity data often follows a log-normal rather than a normal distribution, so consider log-transforming your values before running parametric tests. A p-value below 0.05 is the conventional threshold, but report your actual values and show the individual data points rather than just bar graphs.
Present Your Data for Publication
Journal guidelines have become increasingly strict about western blot figures. The Journal of Biological Chemistry’s standards are representative of what most journals now expect. Show enough of the blot that readers can evaluate antibody specificity: don’t crop so tightly that only the band of interest is visible. Include the positions of molecular weight markers both above and below your band of interest so readers can confirm the protein is running at the expected size.
If you must splice lanes from different positions on the same gel, mark the splice boundaries clearly with a visible line and explain it in the figure legend. Splicing lanes from different gels or blots into a single panel image is not acceptable. Show the loading control blot alongside your target blot. Include your quantification as a bar graph or dot plot next to the blot images, with error bars representing the spread across biological replicates and the number of replicates stated in the legend.
Common Quantification Mistakes
The most frequent error is quantifying saturated bands. Once the signal hits the detector’s ceiling, differences between samples are compressed or lost entirely. Always check your brightest bands against the detector’s maximum before analyzing. If any bands are saturated, re-expose at a shorter time or load less protein.
Using inconsistent background subtraction is another common problem. If you measure background in a different region for each band, or use different-sized selection areas, you introduce noise that has nothing to do with biology. Keep your rectangle size locked and your background region in the same relative position for every measurement.
Finally, normalizing to a housekeeping protein without first confirming that it’s stable across your experimental conditions will propagate error through every calculation. Run your housekeeping protein across all conditions and verify that its raw intensity doesn’t change before trusting it as a reference. If it shifts by more than about 20% across your conditions, switch to a different loading control or use total protein normalization instead.