| pcrsim {qpcR} | R Documentation |
Simulated sigmoidal qPCR curves are generated from an initial model to which some user-defined noise is added. One or more models can then be fit to this random data and goodness-of-fit (GOF) measures are calculated for each of the models. This is essentially a Monte-Carlo approach testing for the best model in dependence to some noise structure in sigmodal models.
pcrsim(cyc = 1:30, model = l4, par = NULL, nsim = 10,
error = 0.02, errfun = function(y) 1, plot = TRUE,
fitmodel = NULL, select = FALSE,
statfun = function(y) mean(y, na.rm = TRUE), ...)
cyc |
the number of cycles to be simulated. |
model |
the initial model used for generating the simulated curves. |
par |
a numeric vector (required) with the parameter values for model. |
nsim |
the number of simulated curves. |
error |
the gaussian error used for the simulation. See 'Details'. |
errfun |
an optional function for the error distribution. See 'Details'. |
plot |
should the simulated and fitted curves be displayed? |
fitmodel |
a model or model list to test against the initial model. |
select |
if TRUE, a matrix is returned with the best model in respect to each of the GOF measures. |
statfun |
a function to be finally applied to all collected GOF measures, default is the average. |
... |
other parameters to be passed on to plot or pcrfit. |
The value defined under error is just the standard deviation added plainly to each y_i value from the initial model, thus generating
a dataset with random homoscedastic noise. With aid of errfun, the distribution of the error along the y_i values can
be altered and therefore be used to generate heteroscedastic variance along the curve, so that the standard deviation is a function
of the magnitude.
Example:
errfun = function(y) 1
same variance for all y_i, as is.
errfun = function(y) y
variance as a function of the y-magnitude.
errfun = function(y) 1/y
variance as an inverse function of the y-magnitude.
For the effect, see 'Examples'.
A list containing the following items:
cyc |
same as in 'arguments'. |
fluoMat |
a matrix with the simulated qPCR data in columns. |
coefList |
a list with the coefficients from the fits for each model, as subitems. |
gofList |
a list with the GOF measures for each model, as subitems. |
statList |
a list with the GOF measures summarized by statfun for each model, as subitems. |
modelMat |
if select = TRUE, a matrix with the best model for each GOF measure and each simulation. |
Andrej-Nikolai Spiess
## generate initial model
m <- pcrfit(reps, 1, 2, l4)
## simulate homoscedastic error
## and test initial model, w3 and l5
## model on data
res <- pcrsim(cyc = 1:30, model = l4, par = coef(m),
error = 0.2, nsim = 20, fitmodel = list(l4, w3, l5))
## use heteroscedastic noise typical for
## qPCR: more noise at lower fluorescence
## Not run:
res2 <- pcrsim(cyc = 1:30, model = l4, par = coef(m),
error = 0.01, errfun = function(y) 1/y,
nsim = 20, fitmodel = list(l4, w3, l5))
## End(Not run)
## get 95% confidence interval for
## the models GOF in question (l4, w3, l5)
## Not run:
res <- pcrsim(cyc = 1:30, model = l4, par = coef(m),
error = 0.2, nsim = 20, fitmodel = list(l4, w3, l5),
statfun = function(y) quantile(y, c(0.025, 0.975)))
res$statList
## End(Not run)
## show best model for each simulation
## based on different GOF measures
## Not run:
res <- pcrsim(cyc = 1:30, model = l4, par = coef(m),
error = 0.2, nsim = 20, fitmodel = list(l4, w3, l5),
select = TRUE)
res$modelMat
## End(Not run)