qpcR_functions: The nonlinear/mechanistic models implemented in qpcR

Description Usage Details Note Author(s) References Examples

Description

A summary of all available models implemented in this package.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18

Details

The following nonlinear sigmoidal models are implemented:

l7:

f(x) = c + k1 \cdot x + k2 \cdot x^2 + \frac{d - c}{(1 + exp(b(log(x) - log(e))))^f}

l6:

f(x) = c + k \cdot x + \frac{d - c}{(1 + exp(b(log(x) - log(e))))^f}

l5:

f(x) = c + \frac{d - c}{(1 + exp(b(log(x) - log(e))))^f}

l4:

f(x) = c + \frac{d - c}{1 + exp(b(log(x) - log(e)))}

b7:

f(x) = c + k1 \cdot x + k2 \cdot x^2 + \frac{d - c}{(1 + exp(b(x - e)))^f}

b6:

f(x) = c + k \cdot x + \frac{d - c}{(1 + exp(b(x - e)))^f}

b5:

f(x) = c + \frac{d - c}{(1 + exp(b(x - e)))^f}

b4:

f(x) = c + \frac{d - c}{1 + exp(b(x - e))}

The following nonlinear models for subsets of the curve are implemented:

expGrowth:

f(x) = ≤ft. a \cdot exp(b \cdot x) + c \; \right|_{n_1 ≤q x ≤q n_2}


expSDM:

f(x) = ≤ft. a \cdot exp(b \cdot x) + c \; \right|_{1 ≤q x ≤q \rm{SDM}}


linexp:

f(x) = ≤ft. a \cdot exp(b \cdot x) + (k \cdot x) + c \; \right|_{1 ≤q x ≤q \rm{SDM}}


lin2:

f(x) = ≤ft. η \cdot log≤ft(exp≤ft(a1 \cdot \frac{x - τ}{η}\right) + exp≤ft(a2 \cdot \frac{x - τ}{η}\right)\right) + c \; \right|_{1 ≤q x ≤q \rm{SDM}}


The following mechanistic models are implemented:

mak2 & mak2i:

F_n = ≤ft. F_{n-1} + k \cdot log ≤ft(1 + ≤ft(\frac{F_{n-1}}{k}\right)\right) + Fb \; \right|_{1 ≤q x ≤q \rm{SDM}}

mak3 & mak3i:

F_n = ≤ft. F_{n-1} + k \cdot log ≤ft(1 + ≤ft(\frac{F_{n-1}}{k}\right)\right) + (slope \cdot n + Fb) \; \right|_{1 ≤q x ≤q \rm{SDM}}

cm3:

F_n = F_{n-1} \cdot ≤ft(1 + ≤ft(\frac{max - F_{n-1}}{max}\right) - ≤ft(\frac{F_{n-1}}{Kd + F_{n-1}}\right)\right) + Fb

Other models:

spl3:

S:[a, b] \to Real, a = n_0 < n_1 < … < n_{k-1} < n_k = b

mak2 and mak3 are two mechanistic models developed by Gregory Boggy (see references). The mechanistic models are a completely different approach in that the response value (Fluorescence) is not a function of the predictor value (Cycles), but a function of the preceeding response value, that is, F_n = f(F_{n-1}). These are also called 'recurrence relations' or 'iterative maps'. The implementation of these models in the 'qpcR” package is the following:
1) In case of mak2/mak2i or mak3/mak3i, all cycles up from the second derivative maximum (SDM) of a four-parameter log-logistic model (l4) are chopped off. This is because these two models do not fit to a complete sigmoidal curve. An offset criterion from the SDM can be defined in pcrfit, see there.
2) For mak2i/mak3i, a grid of sensible starting values is created for all parameters in the model. For mak2/mak3 the recurrence function is fitted directly (which is much faster, but may give convergence problems), so proceed to 7).
3) For each combination of starting parameters, the model is fit.
4) The acquired parameters are collected in a parameter matrix together with the residual sum-of-squares (RSS) of the fit.
5) The parameter combination is selected that delivered the lowest RSS.
6) These parameters are transferred to pcrfit, and the data is refitted.
7) Parameter D_0 can be used directly to calculate expression ratios, hence making the use of threshold cycles and efficiencies expendable.
cm3 is a mechanistic model by Carr & Moore (see references). In contrast to the mak models, cm3 models the complete curve, which might prove advantageous as no decision on curve subset selection has to be done. As in the mak models, D_0 is the essential parameter to use.
spl3 is a cubic spline function that treats each point as being exact. It is just implemented for comparison purposes.
lin2 is a bilinear model developed by P. Buchwald (see references). These are essentially two linear functions connected by a transition region.

The functions are defined as a list containing the following items:
$expr the function as an expression for the fitting procedure.
$fct the function defined as f(x, parm).
$ssfct the self-starter function.
$d1 the first derivative function.
$d2 the second derivative function.
$inv the inverse function.
$expr.grad the function as an expression for gradient calculation.
$inv.grad the inverse functions as an expression for gradient calculation.
$parnames the parameter names.
$name the function name.
$type the function type as a character string.

Note

For models l6, l7, b6, b7 there are no explicit solutions to the inverse function. The calculation of x from y (Cycles from Fluorescence) is done using uniroot by minimizing model$fct(x, parm) - y in the interval [1, 100].

Author(s)

Andrej-Nikolai Spiess

References

4-parameter logistic:
Validation of a quantitative method for real time PCR kinetics.
Liu W & Saint DA.
Biochem Biophys Res Commun (2002), 294:347-53.

Standardized determination of real-time PCR efficiency from a single reaction set-up.
Tichopad A, Dilger M, Schwarz G & Pfaffl MW.
Nucleic Acids Res (2003), 31:e122.

Sigmoidal curve-fitting redefines quantitative real-time PCR with the prospective of developing automated high-throughput applications.
Rutledge RG.
Nucleic Acids Res (2004), 32:e178.

A kinetic-based sigmoidal model for the polymerase chain reaction and its application to high-capacity absolute quantitative real-time PCR.
Rutledge RG & Stewart D.
BMC Biotechnol (2008), 8:47.

Evaluation of absolute quantitation by nonlinear regression in probe-based real-time PCR.
Goll R, Olsen T, Cui G & Florholmen J.
BMC Bioinformatics (2006), 7:107

Comprehensive algorithm for quantitative real-time polymerase chain reaction.
Zhao S & Fernald RD.
J Comput Biol (2005), 12:1047-64.

4-parameter log-logistic; 5-parameter logistic/log-logistic:
qpcR: an R package for sigmoidal model selection in quantitative real-time polymerase chain reaction analysis.
Ritz C & Spiess AN.
Bioinformatics (2008), 24:1549-51.

Highly accurate sigmoidal fitting of real-time PCR data by introducing a parameter for asymmetry.
Spiess AN, Feig C & Ritz C.
BMC Bioinformatics (2008), 29:221.

exponential model:
Standardized determination of real-time PCR efficiency from a single reaction set-up.
Tichopad A, Dilger M, Schwarz G & Pfaffl MW.
Nucleic Acids Research (2003), 31:e122.

Comprehensive algorithm for quantitative real-time polymerase chain reaction.
Zhao S & Fernald RD.
J Comput Biol (2005), 12:1047-64.

mak2, mak2i, mak3, mak3i:
A Mechanistic Model of PCR for Accurate Quantification of Quantitative PCR Data.
Boggy GJ & Woolf PJ.
PLoS ONE (2010), 5:e12355.

lin2:
A general bilinear model to describe growth or decline time profiles.
Buchwald P.
Math Biosci (2007), 205:108-36.

cm3:
Robust quantification of polymerase chain reactions using global fitting.
Carr AC & Moore SD.
PLoS One (2012), 7:e37640.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
m1 <- pcrfit(reps, 1, 2, b4)
m2 <- pcrfit(reps, 1, 2, b5)
m3 <- pcrfit(reps, 1, 2, l6)
m4 <- pcrfit(reps, 1, 2, l7)

## Get the second derivative
## curve of m2.
d2 <- b5$d2(m2$DATA[, 1], coef(m2))
plot(m2)
lines(d2, col = 2)  

Example output

Loading required package: MASS
Loading required package: minpack.lm
Loading required package: rgl
Loading required package: robustbase
Loading required package: Matrix
Warning messages:
1: In rgl.init(initValue, onlyNULL) : RGL: unable to open X11 display
2: 'rgl_init' failed, running with rgl.useNULL = TRUE 
3: .onUnload failed in unloadNamespace() for 'rgl', details:
  call: fun(...)
  error: object 'rgl_quit' not found 
[1] "pcrfit" "nls"   

qpcR documentation built on May 2, 2019, 5:17 a.m.

Related to qpcR_functions in qpcR...