Methods

How VoilaPCR calculates your results. Every formula, threshold, and algorithm — documented so you can verify our work.

ΔΔCt (Livak Method)

The comparative Ct method, as described by Livak & Schmittgen (2001).

ΔCt = Cttarget − Ctreference

ΔΔCt = ΔCtsample − mean(ΔCtcontrol)

Fold Change = 2−ΔΔCt

This method assumes approximately equal amplification efficiency (~100%) for both target and reference genes. If efficiencies differ substantially, use the Pfaffl method instead.

Statistical testing

For each target gene, VoilaPCR compares ΔCt values between each treatment group and the control group using a Welch's unpaired t-test (two-tailed). Welch's test does not assume equal variance between groups. P-values are computed from the t-distribution using the regularized incomplete beta function with Welch–Satterthwaite degrees of freedom.

Significance thresholds: *** p < 0.001, ** p < 0.01, * p < 0.05, ns = not significant.

Error bars on fold-change plots represent the standard error of the mean (SEM) of ΔCt values, propagated through the 2−ΔΔCt transformation.

Pfaffl Method

Efficiency-corrected relative quantification, as described by Pfaffl (2001).

Ratio = (EtargetΔCt target) / (ErefΔCt ref)

where ΔCt = mean(Ctcontrol) − Ctsample

Unlike ΔΔCt, the Pfaffl method accounts for differences in PCR amplification efficiency between target and reference genes. Efficiency values (E) can be entered manually or derived from a standard curve. Default efficiency is 2.0 (100%).

Statistical testing follows the same Welch's t-test approach as ΔΔCt, applied to efficiency-corrected ratios.

geNorm Normalization

Multi-reference-gene stability assessment, implementing the algorithm described by Vandesompele et al. (2002).

M-value calculation

For each candidate reference gene, VoilaPCR calculates pairwise variation against every other candidate across all samples:

Ajk = log2(ratio) = Ctj − Ctk for each sample

Vjk = SD(Ajk) across all samples

Mj = mean(Vjk) across all other genes k

Lower M-values indicate more stable expression. VoilaPCR ranks all candidate genes by M-value and recommends the two most stable genes for normalization.

Normalization factor

The normalization factor for each sample is the geometric mean of the relative quantities (2−Ct) of the recommended reference genes, following the original geNorm protocol.

Requires a minimum of 2 candidate reference genes and 2 samples common to all candidates.

Standard Curve

Absolute quantification from a dilution series using linear regression of Ct versus log10(quantity).

Ct = slope × log10(quantity) + intercept

Efficiency = (10−1/slope − 1) × 100%

Quantity = 10(Ct − intercept) / slope

Acceptable efficiency range: 90–110%. R² must be ≥ 0.98 for reliable quantification. Both values are reported and checked by the automated QC system.

If a reference gene is provided, quantities are normalized: normalized quantity = quantity / reference quantity.

Replicate Handling & Outlier Removal

Technical replicates are automatically averaged before analysis. An outlier detection step flags individual replicates that deviate from the group mean:

Outlier if |Cti − mean(Ct)| > 0.5 cycles

When outliers are detected and at least one non-outlier replicate remains, the outlier is excluded from the average. If all replicates are flagged (e.g., high scatter across the entire group), all values are retained and averaged. Excluded wells and their deviations are reported in the QC output.

Automated Quality Control

Every analysis runs 8 diagnostic checks automatically. Each check is scored as Critical, Warning, Caution, or Pass.

CheckThresholdSeverity
NTC ContaminationNTC Ct within 5 cycles of sample meanCritical
NTC AmplificationNTC amplifies but > 5 cycles from samplesWarning
Reference Gene InstabilityCt range > 2.0 across samplesCritical
Reference Gene DriftCt range > 1.0 (ideally < 1.0)Warning
Replicate ScatterSD > 0.5 Ct within a replicate groupWarning
Late Ct ValuesCt > 38 (unreliable) / 35–38 (near limit)Warning / Caution
Amplification EfficiencyOutside 90–110% or R² < 0.98Warning
Extreme Fold Change|fold change| > 100× (ΔΔCt > 6.6)Caution
Identical Ct Across GroupsΔCt ≤ 0.1 between different groupsCaution
Undetermined WellsPattern analysis (row clustering, target-wide failure)Caution

Overall QC score

The report is scored as Red (any critical issue), Yellow (warnings but no critical issues), or Green (all checks pass or cautions only). Every flagged issue includes an explanation and actionable suggestions.

Validation

VoilaPCR output has been validated against independently calculated results (manual spreadsheet calculations and qbase+) across multiple datasets. ΔCt, ΔΔCt, and fold-change values were confirmed to be identical to manually computed values.

All statistical functions (Welch's t-test, standard deviation, SEM) use unbiased estimators (n−1 for sample variance) and compute exact p-values from the t-distribution — not normal approximations.

Data Processing & Privacy

All qPCR data processing — file parsing, Ct averaging, normalization, statistical testing, and figure generation — runs entirely in your browser using client-side JavaScript. Your spreadsheet data is never transmitted to any server. There is no server endpoint that accepts experimental data.

References

  1. Livak KJ, Schmittgen TD. Analysis of relative gene expression data using real-time quantitative PCR and the 2−ΔΔCt method. Methods. 2001;25(4):402-408. doi:10.1006/meth.2001.1262
  2. Pfaffl MW. A new mathematical model for relative quantification in real-time RT-PCR. Nucleic Acids Research. 2001;29(9):e45. doi:10.1093/nar/29.9.e45
  3. Vandesompele J, De Preter K, Pattyn F, et al. Accurate normalization of real-time quantitative RT-PCR data by geometric averaging of multiple internal control genes. Genome Biology. 2002;3(7):research0034. doi:10.1186/gb-2002-3-7-research0034
Questions about our methodology? hello@voilascience.com