Methods
How VoilaBlot quantifies your blots. Every step, every threshold, every citation — documented so you can verify our work and defend it to reviewers.
Image Acquisition
VoilaBlot accepts TIFF, PNG, and JPEG images from any imager — Bio-Rad ChemiDoc, Thermo iBright, LI-COR Odyssey, Azure, Amersham, film scans, even phone photos.
For quantitative work we strongly recommend starting from a 16-bit raw scan exported directly from the imager. An 8-bit image has only 256 intensity levels, while 16-bit images have 65,536 — the difference between measuring with a ruler and a micrometer, and a well-known prerequisite for reliable densitometry (Gassmann et al., 2009; Janes, 2015).
Avoid JPEG whenever possible: its lossy compression discards quantitative information and introduces block artifacts around bands. TIFF and PNG are lossless and are accepted by journal author guidelines including The Journal of Biological Chemistry (JBC).
16-bit TIFFs are parsed with the UTIF2 library and kept as a Uint16Array for quantification. The display canvas is auto-scaled to 8-bit via min/max stretch so you can see the bands, but all pixel math runs against the original dynamic range.
Background Subtraction
Every band sits on top of non-zero membrane background. Subtracting that background is a requirement, not an option — raw integrated intensity is not a valid quantitative readout (Gassmann et al., 2009; Aldridge et al., 2008).
VoilaBlot offers two background methods:
Local minimum (default)
Samples a 5-pixel border immediately outside the band ROI and uses the minimum of those perimeter pixels as the local baseline. This follows the LI-COR Image Studio approach and the manufacturer-recommended workflow for the Odyssey platform, and handles membranes with spatially varying background far better than a global subtraction.
Median
Computes the median of all non-band pixels inside the lane ROI and subtracts that value from every band in the lane. Useful when the background is roughly flat within a lane but differs between lanes.
Rolling-ball background subtraction (the ImageJ default) is deferred; in practice, local-minimum and median subtraction cover the cases that matter for quantitative westerns.
Lane and Band Detection
Lanes can be placed automatically or drawn by hand. The auto-detect algorithm projects the image onto the horizontal axis to build a column-intensity profile, finds peaks corresponding to each lane, and places lane ROIs on the detected centers.
Detection is polarity-aware: VoilaBlot infers whether the image is dark-bands-on-light-background (the typical chemiluminescence scan) or light-bands-on-dark-background (typical fluorescence readout) from the image mean, then searches for the correct peak polarity accordingly. This matters because blindly assuming one polarity flips the sign of every subsequent peak search.
Every auto-detected ROI can be manually adjusted, added, or removed — the auto-detect step is a starting point, not a commitment. The lane/band editor uses Fabric.js, so you can drag corners, resize, and reposition directly on the canvas. Undo and redo are snapshot-based (up to 20 steps).
Normalization
Normalization corrects for lane-to-lane differences in sample loading and transfer efficiency. VoilaBlot currently supports three options:
- Loading control (default). Each target intensity is divided by a loading-control intensity measured in the same lane. You specify which band is the control, and you can label it with the actual protein you probed (ACTB, GAPDH, Vinculin, tubulin, etc.) so the auto-generated methods paragraph uses the right name.
- Specific lane. Fold-change is computed relative to one user-chosen reference lane (set to 1.0). Useful when you want to benchmark against a specific control sample rather than an internal housekeeping protein.
- None. Report background-subtracted intensities without normalization. Included for transparency, but only appropriate when loading is independently controlled.
A single housekeeping protein is the classical workflow, but it has real limitations: housekeeping proteins are not constant across conditions, cell types, or treatments, and this assumption has been criticized extensively (Aldridge et al., 2008; Taylor & Posch, 2014). VoilaBlot's QC report surfaces a warning when single-housekeeping normalization is active so the issue stays visible.
Total protein normalization (TPN) — the current best-practice recommendation (Eaton et al., 2014; Taylor & Posch, 2014) — is on the roadmap and will be added in a future release. Until then, loading control normalization with strong QC diagnostics is the supported path.
Quality Control
Every analysis runs 9 automated diagnostic checks. Each returns a status of pass, warn, fail, or info, along with a plain-English message explaining what was flagged and how to fix it.
- Pixel saturation. Flags bands with saturated pixels (≥ 99% of max). Saturated bands cannot be quantified — the detector has hit its ceiling and additional signal is invisible (Gassmann et al., 2009).
- Loading control consistency. Computes the coefficient of variation of the loading control across lanes. Warns at CV > 25% and fails at CV > 30%, following the uniformity threshold proposed by Janes (2015) for defensible loading-control-based normalization.
- Background uniformity. Checks whether the membrane background varies substantially across the image. Spatially non-uniform background compromises whole-image or global background correction.
- Dynamic range. Warns when band intensities span only a small fraction of the possible range, indicating you're operating near the noise floor and missing resolution.
- Band boundary warning. Detects cases where the band ROI touches an edge of significant signal — a sign the ROI is clipping the band and under-integrating its intensity.
- Signal-to-noise ratio. Warns when band integrated intensity falls below ~2× the estimated noise floor, where quantification becomes unreliable (Butler et al., 2019).
- Inconsistent ROI sizing. Flags band ROIs that are significantly different in area from their neighbors, which biases integrated-intensity comparisons across lanes.
- Image quality. Flags gross issues with the uploaded image itself — fully saturated regions, extreme low contrast, or degenerate histograms.
- Single housekeeping protein advisory. When loading-control normalization is active, emits an informational reminder that housekeeping-protein normalization should be validated for the specific system under study (Taylor & Posch, 2014).
Any warnings or failures from the QC report are automatically appended as limitation notes to the auto-generated methods paragraph, so reviewers see exactly what VoilaBlot saw.
Statistics
When you group lanes into biological replicates, VoilaBlot computes per-group descriptive statistics on the normalized fold-change values:
mean = Σxᵢ / n
SD = √( Σ(xᵢ − mean)² / (n − 1) ) (unbiased, n − 1)
SEM = SD / √n
All statistics use unbiased estimators (sample variance with n − 1 denominator). Error bars on the publication-ready bar chart default to SEM, matching the most common convention for biological replicates. Group statistics are exposed in the data table, in the Prism XML export, and in the auto-generated methods paragraph.
VoilaBlot does not currently perform group-versus-group inferential statistics (t-tests, ANOVA). The design choice is intentional: appropriate choice of test depends on the experiment, and we prefer you run it in GraphPad Prism (or your tool of choice) on the exported data rather than have VoilaBlot pick one silently.
Demo Data
The “Try with demo data” button on the upload screen loads a real published western blot, not a synthetic image. The source is Figure 2 of Maestri et al. (2025), PLOS ONE “Titration-WB” — an LDLR titration in HepG2 lysate (20, 40, 60 µg), detected at ~100 kDa. The bundled image is membrane WB4 of panel a: a clean dose series with a single band per lane whose intensity rises monotonically with load, so the highest lane reads strongest — exactly what a dose series should show. Lanes and bands are detected by the same auto-detect algorithm a real user would run.
The Titration-WB paper is published under CC-BY 4.0 and is freely reusable with attribution. Separately, the quantification engine is validated end-to-end against the serial dilution in Butler et al. (2019), “Misleading Westerns” — the engine reproduces that paper's published OD values (from its supplementary spreadsheet 5214821.f3.xlsx) within tolerance via scripts/validate-demo.mjs.
Methodological References
- Gassmann M, Grenacher B, Rohde B, Vogel J. Quantifying Western blots: pitfalls of densitometry. Electrophoresis. 2009;30(11):1845-1855. doi:10.1002/elps.200800720
- Janes KA. An analysis of critical factors for quantitative immunoblotting. Science Signaling. 2015;8(371):rs2. doi:10.1126/scisignal.2005966
- Taylor SC, Posch A. The design of a quantitative western blot experiment. BioMed Research International. 2014;2014:361590. doi:10.1155/2014/361590
- Butler TAJ, Paul JW, Chan E-C, Smith R, Tolosa JM. Misleading westerns: common quantification mistakes in western blot densitometry and proposed corrective measures. BioMed Research International. 2019;2019:5214821. doi:10.1155/2019/5214821
- Maestri A, Ehrenborg E, Werngren O, Olin M, Hagberg CE, Pedrelli M, Parini P. Titration-WB: a methodology for accurate quantitative protein determination overcoming reproducibility errors. PLOS ONE. 2025;20(6):e0325052. doi:10.1371/journal.pone.0325052
- Aldridge GM, Podrebarac DM, Greenough WT, Weiler IJ. The use of total protein stains as loading controls: an alternative to high-abundance single-protein controls in semi-quantitative immunoblotting. Journal of Neuroscience Methods. 2008;172(2):250-254. doi:10.1016/j.jneumeth.2008.05.003
- Eaton SL, Roche SL, Llavero Hurtado M, et al. Total protein analysis as a reliable loading control for quantitative fluorescent Western blotting. PLoS ONE. 2014;8(8):e72457. doi:10.1371/journal.pone.0072457
- Journal of Biological Chemistry author guidelines — image acquisition and quantification standards for western blots. jbc.org/author-instructions