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.
| Check | Threshold | Severity |
|---|---|---|
| NTC Contamination | NTC Ct within 5 cycles of sample mean | Critical |
| NTC Amplification | NTC amplifies but > 5 cycles from samples | Warning |
| Reference Gene Instability | Ct range > 2.0 across samples | Critical |
| Reference Gene Drift | Ct range > 1.0 (ideally < 1.0) | Warning |
| Replicate Scatter | SD > 0.5 Ct within a replicate group | Warning |
| Late Ct Values | Ct > 38 (unreliable) / 35–38 (near limit) | Warning / Caution |
| Amplification Efficiency | Outside 90–110% or R² < 0.98 | Warning |
| Extreme Fold Change | |fold change| > 100× (ΔΔCt > 6.6) | Caution |
| Identical Ct Across Groups | ΔCt ≤ 0.1 between different groups | Caution |
| Undetermined Wells | Pattern 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
- 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
- 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
- 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