本文へ移動
cccskills
無料GitHub で公開

western-blot-quantification

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

インストール方法を見る

含まれるファイル(1)

  • SKILL.md20.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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
SituationRecommended choiceRationale
Quantifying total protein abundance changesSingle-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 figureMean ± SDCommunicates the spread of the biological response
n = 3 replicates, statistical-precision figureMean ± SECommunicates the precision of the mean estimate
Small fold changes (~1.5×) on noisy blotsIncrease n to ≥ 4–6 and report SE with explicit n in legendLow effect size requires more replicates for adequate statistical power
Comparing 4+ discrete conditionsMulti-condition design + ANOVA with post-hoc correctionPairwise t-tests across many conditions inflate Type I error
Tracking the same effect over timeTime-course design, normalize to t = 0 within each replicateRemoves baseline drift between replicates
Determining potency (EC50 / IC50)Dose-response design with log-spaced concentrationsLog spacing samples the sigmoidal response uniformly; nonlinear fit gives EC50
Loading control band saturatedRe-image at lower exposure or dilute the lysateSaturated bands violate the linear dynamic range and silently bias normalization
One outlier replicate with unusually high variabilityDocument and exclude with justification (e.g., transfer artifact)Honest exclusion is preferable to a noisy mean; never silently drop data

Standard Workflow

Step 1: Image Preprocessing and Band Detection

Objective: Identify ROIs and isolate individual bands in the Western blot image.

Key Considerations:

  • Use analyze_pixel_distribution then find_roi_from_image functions
  • If find_roi_from_image couldn't detect ROIs properly, retry with different lower_threshold and upper_threshold parameters
  • If there are still undetected ROIs, you can manually infer the coordinates of undetected ROIs by using the correctly detected ROIs (IMPORTANT: You MUST preserve the coordinates of correctly detected ROIs)
  • The final image with ROIs should also be saved as an image
  • Detect all bands for target proteins
  • Identify experimental repetitions (typically arranged in lanes)
  • Recognize different conditions (e.g., control, treatment groups)
  • Handle potential artifacts, background noise, and lane alignment issues

Tools: analyze_pixel_distribution, find_roi_from_image

Step 2: Intensity Measurement

Objective: Quantify band intensities for all detected bands.

Procedure:

  1. For each lane/repetition, measure the intensity of:

    • Target protein band (e.g., PSMAD2)
    • Loading control band (e.g., SMAD2, GAPDH)
    • Background intensity (for correction if needed)
  2. Record measurements in a structured format:

    • Condition name (e.g., "control", "P144", "TGF-β1", "Tβ1Ab")
    • Repetition number (e.g., Rep1, Rep2, Rep3)
    • Protein target (e.g., PSMAD2, SMAD2, GAPDH)
    • Raw intensity value

Best Practices:

  • Use consistent ROI (Region of Interest) sizes for all bands
  • Apply background subtraction if necessary
  • Verify band detection visually before proceeding

Step 3: Normalization Procedure

Objective: Normalize target protein intensities to account for loading variations.

Two-Step Normalization Process:

Step A: Loading Control Normalization

Calculate the relative intensity of the loading control protein:

SMAD2_norm = Intensity_SMAD2 / Intensity_GAPDH

This accounts for variations in total protein loading across samples.

Step B: Target Protein Normalization

Calculate the final normalized target protein intensity:

Target_value = Intensity_PSMAD2 / SMAD2_norm

This provides the normalized PSMAD2 intensity that accounts for both loading control and relative protein levels.

Alternative Normalization Methods:

  • Single loading control: If only GAPDH is available: Target_norm = Intensity_Target / Intensity_GAPDH
  • Total protein normalization: If using total protein stain: Target_norm = Intensity_Target / Intensity_TotalProtein
  • Housekeeping gene: Common controls include GAPDH, β-actin, α-tubulin

Step 4: Relative Quantification (Fold Change Calculation)

Objective: Express results relative to a control condition.

Procedure:

  1. For each experimental repetition, identify the control condition
  2. Calculate fold change for each condition:
Fold_Change = Target_value_condition / Target_value_control
  1. The control condition will have a fold change of 1.0 by definition
  2. Treatment conditions will show fold changes relative to control (e.g., 1.5 = 50% increase, 0.7 = 30% decrease)

Important Notes:

  • Always normalize within the same repetition before comparing across repetitions
  • Ensure control condition is clearly identified
  • Document which condition serves as the baseline

Step 5: Statistical Aggregation

Objective: Combine data from multiple experimental repetitions.

Procedure:

  1. Collect normalized values (or fold changes) from all repetitions
  2. For each condition, calculate:
    • Mean: Average across repetitions
    • Standard Deviation (SD): Measure of variability
    • Standard Error (SE): SD / √n, where n = number of repetitions
    • Sample size (n): Number of repetitions

Statistical Considerations:

  • Minimum of 3 repetitions recommended for meaningful statistics
  • Report both mean and error measure (SD or SE)
  • Consider statistical tests (t-test, ANOVA) if comparing multiple conditions
  • Document any excluded repetitions and reasons

Step 6: Visualization

Objective: Create clear, publication-ready visualizations.

Bar Graph Requirements:

  1. X-axis: Experimental conditions (e.g., Control, P144, TGF-β1, Tβ1Ab)
  2. Y-axis: Normalized values or fold change (typically starting from 0)
  3. Bars: Mean values for each condition
  4. Error bars: Standard deviation or standard error
  5. Labels: Clear condition names, units, sample size (n=X)

Visualization Best Practices:

  • Use consistent colors for conditions across figures
  • Include statistical significance indicators if applicable (e.g., *, **, ***)
  • Add figure title and axis labels
  • Save in high resolution (300 DPI for publications)

Verification Images:

  • Create grid/overlay images showing detected ROIs
  • Helps verify correct band detection
  • Useful for troubleshooting and quality control
  • Save as separate file (e.g., wb_grid_verification.png)

Common Experimental Designs

Design 1: Multiple Conditions with Replicates

  • Structure: 3-4 conditions × 3 repetitions = 9-12 lanes
  • Example: Control, Treatment A, Treatment B, Treatment C (each in triplicate)
  • Analysis: Normalize within each repetition, then aggregate across repetitions

Design 2: Time Course

  • Structure: Multiple time points × conditions × repetitions
  • Example: 0h, 6h, 12h, 24h for Control and Treatment
  • Analysis: Normalize to time 0 control, then compare across time points

Design 3: Dose Response

  • Structure: Multiple concentrations × repetitions
  • Example: 0, 1, 5, 10, 50 μM treatment
  • Analysis: Normalize to 0 concentration, plot dose-response curve

Troubleshooting

Issue: Inconsistent Band Detection

Problem: Some bands not detected or incorrectly identified Solutions:

  • Adjust detection parameters (threshold, size filters)
  • Manually verify and correct ROI placement
  • Check image quality and contrast
  • Use grid verification image to validate detection

Issue: High Variability Between Repetitions

Problem: Large standard deviations or inconsistent results Solutions:

  • Verify loading control normalization is correct
  • Check for technical artifacts (bubbles, uneven transfer)
  • Ensure consistent sample preparation
  • Consider excluding outliers if justified

Issue: Unexpected Normalization Results

Problem: Normalized values don't match expected biological response Solutions:

  • Verify loading control bands are appropriate (not saturated)
  • Check that control condition is correctly identified
  • Ensure all calculations are performed in correct order
  • Review raw intensity values for anomalies

Issue: Background Issues

Problem: High background affecting intensity measurements Solutions:

  • Apply background subtraction
  • Use local background measurement near each band
  • Adjust image preprocessing (contrast, brightness)
  • Consider re-imaging if background is too high

Quality Control Checklist

Before finalizing analysis, verify:

  • All bands detected correctly (verify with grid image)
  • Loading control bands are present and measurable for all samples
  • Normalization calculations are correct
  • Control condition is clearly identified
  • All repetitions included in statistical analysis
  • Error bars represent appropriate measure (SD or SE)
  • Visualization clearly shows experimental design
  • Results are biologically plausible

Output Files

Required Outputs:

  1. Quantification results: CSV or Excel file with:

    • Raw intensities
    • Normalized values
    • Fold changes
    • Statistical summaries (mean, SD, SE)
  2. Visualization: Bar graph image (e.g., psmad2_quantification.png)

    • High resolution (300 DPI minimum)
    • Clear labels and error bars
    • Publication-ready format
  3. Verification image (optional but recommended): wb_grid_verification.png

    • Shows detected ROIs
    • Helps validate analysis

Example Workflow Summary

For a typical experiment with 3 repetitions and 4 conditions:

  1. Detect bands: Identify all PSMAD2, SMAD2, and GAPDH bands across 12 lanes
  2. Measure intensities: Extract intensity values for each band
  3. Normalize:
    • Step A: SMAD2_norm = SMAD2 / GAPDH (for each sample)
    • Step B: Target_value = PSMAD2 / SMAD2_norm (for each sample)
  4. Calculate fold change: Target_value_condition / Target_value_control (within each repetition)
  5. Aggregate: Calculate mean ± SD across 3 repetitions for each condition
  6. Visualize: Create bar graph with error bars
  7. Save: Export quantification table and visualization images

Key Formulas Reference

Loading Control Normalization:
  Loading_norm = Intensity_LoadingControl / Intensity_Housekeeping

Target Normalization:
  Target_norm = Intensity_Target / Loading_norm

Fold Change:
  Fold_Change = Target_norm_condition / Target_norm_control

Statistics:
  Mean = Σ(values) / n
  SD = √[Σ(value - mean)² / (n-1)]
  SE = SD / √n

Common Pitfalls

  • Pitfall: Reporting raw band intensities without loading-control normalization. Differences seen on the blot can be entirely explained by per-lane loading variation.

    • How to avoid: Always divide by a loading-control band measured in the same lane (or a total-protein stain). Never plot raw intensities as a quantitative result.
  • Pitfall: Using a saturated loading control. A saturated GAPDH/β-actin band looks "even" but is outside the linear dynamic range, so normalization silently understates true differences.

    • How to avoid: Confirm the loading control intensity is below saturation (e.g., max pixel value < 90% of detector range) before using it for normalization. Re-image at shorter exposure if needed.
  • Pitfall: Aggregating normalized values across replicates before computing fold change. This conflates gel-to-gel variation with biological signal and inflates the apparent effect size.

    • How to avoid: Normalize within each replicate first, compute fold change vs the within-replicate control, then aggregate fold changes across replicates.
  • Pitfall: Plotting SE bars but labeling them SD (or vice versa). Reviewers and readers cannot interpret the figure correctly.

    • How to avoid: State the error measure (SD or SE) and the n explicitly in the figure legend; if both are useful, plot SD and report SE in the text.
  • Pitfall: Drawing conclusions from n = 1 or n = 2 experiments. A single observation cannot distinguish biological effect from technical noise.

    • How to avoid: Run a minimum of n = 3 independent biological replicates before quantifying effect sizes; for small fold changes (~1.5×) plan for n ≥ 4–6.
  • Pitfall: Silently excluding outlier replicates without documentation. This biases the reported mean and is irreproducible.

    • How to avoid: Document the reason for any exclusion (transfer artifact, poor membrane, no signal in loading control) and report both the included-only and all-data analyses if there is any ambiguity.
  • Pitfall: Choosing a loading control that itself responds to the treatment. Some "housekeeping" proteins (e.g., GAPDH) change under metabolic stress, hypoxia, or starvation, breaking the assumption that the loading control is constant.

    • How to avoid: For treatments that may affect housekeeping genes, use a total-protein stain (Ponceau S, stain-free) instead of a single housekeeping protein.
  • Pitfall: Using fixed-threshold automatic ROI detection on every image. Different exposures, contrasts, and noise floors require different thresholds; one-size-fits-all detection misses dim bands or splits strong ones.

    • How to avoid: Tune lower_threshold and upper_threshold per image; manually verify the grid overlay before extracting intensities, and preserve correctly detected ROIs when adjusting parameters.

Best Practices

  1. Always normalize: Never use raw intensities without normalization. Per-lane loading variation alone can produce 2–3× apparent differences that have nothing to do with biology.
  2. Use appropriate controls: Choose loading controls that are stable across the specific treatments being studied. For metabolic, hypoxic, or stress treatments, prefer total-protein stains over single housekeeping proteins.
  3. Verify detection: Always review the grid/verification image overlay before extracting intensities. Automatic ROI detection can split or merge bands and silently introduce errors.
  4. Document exclusions: Note any excluded samples and the reasons. Silent exclusion biases the reported mean and breaks reproducibility.
  5. Report statistics: Include both the mean and an explicit error measure (SD or SE) along with n; state which error measure is plotted in the figure legend.
  6. Save intermediate data: Keep raw intensities, ROI coordinates, and per-replicate normalized values for potential re-analysis or supplementary deposition.
  7. Visual validation: Cross-check the final visualization (bar / line graph) against the qualitative impression of the original blot. If the chart and the image disagree, investigate before publishing.

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

API + Python SDK for ordering cell-free protein expression and binding assays. Submit sequences for expression (10–100 µg), measure binding affinity (KD) against targets, track status, and retrieve results programmatically — no wet-lab setup. Built for ML-guided directed evolution and antibody/nanobody optimization. Requires Adaptyv account and API key.

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

aeon

無料

scikit-learn compatible Python toolkit for time series ML: classify, cluster, regress, segment, transform with 30+ algorithms (ROCKET, InceptionTime, KNN-DTW, HIVE-COTE, WEASEL). Handles panel, multivariate, and unequal-length series. Maintained successor to sktime. Alternatives: sktime (larger ecosystem), tslearn (fewer algorithms), catch22 (features only).

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

AiZynthFinder retrosynthetic route planning (CASP) from AstraZeneca Molecular AI. Monte Carlo tree search guided by a template-based neural expansion policy recursively disconnects a target SMILES until precursors are found in a purchasable stock. Covers config.yml (v4 format), aizynthcli batch screening, the AiZynthFinder/AiZynthExpander Python API, one-step disconnections, custom stocks via smiles2stock, scorers, Retro*/breadth-first/DFPN search alternatives, and reading output.json.gz / trees.json. Use for synthesis route planning, synthesizability screening, and building-block/precursor search. For reaction barriers use neb-irc-activation-energy; for 2D reaction scheme drawing use rdkit-chemdraw-cdxml.

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

Access AlphaFold DB's 200M+ predicted structures by UniProt ID. Download PDB/mmCIF, analyze pLDDT/PAE, bulk-fetch proteomes via Google Cloud. For experimental structures use PDB; for prediction use ColabFold or ESMFold.

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

Annotated matrices for single-cell genomics. Stores X with obs/var metadata, layers, embeddings (obsm/varm), graphs (obsp/varp), uns. Use for .h5ad/.zarr I/O, concatenation, scverse integration. For analysis use scanpy; for probabilistic models use scvi-tools.

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

GRN inference from expression via GRNBoost2 (gradient boosting) or GENIE3 (Random Forest). Load matrix, filter by TFs, infer TF-target-importance links, save network. Dask-parallelized to single-cell scale. Core SCENIC component.

日本語の概要は準備中です。原文の説明を表示しています。

jaechang-hits/SciAgent-Skills3762026年9月29日 更新

jaechang-hits のスキルをすべて見る

このスキルの問題を報告する