l7
l6
l5
l4
l3
b7
b6
b5
b4
b3
expGrowth
linexp
mak2
mak2i
mak3
mak3i
lin2
cm3
spl3mak2 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 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 D0 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, D0 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. By default, cycles 1 ... (cpD2 + 3) are used.
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.m1 <- pcrfit(reps, 1, 2, b3)
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)Run the code above in your browser using DataLab