Describes qPCR as Poisson process.

qpcr2pp(data, cyc = 1, fluo = NULL, Cq_range = c(min(data[cyc]) + 6,
  max(data[cyc]) - 6), model = l5, SDM = TRUE, NuEvents = 1, delta = 1,
  exper = "qPCR1", replicate = 1, assay = "Unknown", type = "np")

Arguments

data
a dataframe containing the qPCR data.
cyc
the column containing the cycle data. Defaults to first column.
fluo
the column(s) (runs) to be analyzed. If NULL, all runs will be considered (equivalent of (1L:ncol(data))[-cyc]).
Cq_range
is a user defined range of cycles to be used for the determination of the Cq values.
model
is the model to be used for the analysis for all runs. Defaults to 'l5' (see pcrfit).
SDM
if TRUE, Cq is approximated by the second derivative method. If FALSE, Cy0 method is used instead.
NuEvents
"number of expected events" within a time frame (interval).
delta
difference "time (cycles) points" e.g., Cycle 18 and 25.
exper
The id of experiments.
replicate
The id of technical replicates.
assay
The name or id of assays.
type
object of class "character" defining type of data. Could be "np" (status (positive (1) or negative(0)) of each droplet) or"ct" (threshold cycle).

Value

An object of qdpcr class.

Details

Selected platforms (e.g., Open Array) are real-time platforms. dPCR can be described by Poisson statistics. The function qpcr2pp takes a step further and interprets the dPCR as a Poisson process if it is analyzed as a "time" based process.

The dPCR Technology breaks fundamentally with the previous concept of nucleic acid quantification. dPCR can be seen as a next generation nucleic acid quantification method based on PCR. The key difference between dPCR and traditional PCR lies in the method of measuring (absolute) nucleic acids amounts. This is possible after ``clonal DNA amplification'' in thousands of small separated partitions (e.g., droplets, nano chambers). Partitions with no nucleic acid remain negative and the others turn positive. Selected technologies (e.g., OpenArray(R) Real-Time PCR System) monitor amplification reactions in the chambers in real-time. Cq values are calculated from the amplification curves and converted into discrete events by means of positive and negative partitions and the absolute quantification of nucleic acids is done by Poisson statistics.

PCR data derived from a qPCR experiment can be seen as a series of events over time. We define t_i as the time between the first (i - 1)^st and the i^th event. Therefore, the time \(S_n\) is the sum of all \(t_i\) from \(i = 1\) to \(i = n\). This is the time to the n^th event. \(S(t)\) is the number of events in \([0, t]\). This can be seen as a Poisson process. The Poisson statistics is the central theorem to random processes in digital PCR.

The function qpcr2pp is used to model random point events in time units (PCR cycles), such as the increase of signal during a qPCR reaction in a single compartment. A Poisson process can be used to model times at which an event occurs in a "system". The qpcr2pp (quantitative Real-Time PCR to Poisson process) function transforms the qPCR amplification curve data to quantification points (Cq), which are visualized as Poisson process. This functions helps to spot differences between replicate runs of digital PCR experiments. In ideal scenarios the qpcr2pp plots are highly similar.

This tool might help to spot differences between experiments (e.g., inhibition of amplification reactions, influence of the chip arrays). The qPCR is unique because the amplification of conventional qPCRs takes place in discrete steps (cycles: 1, 2 ... 45), but the specific Cq values are calculated with continuous outcomes (Cq: 18.2, 25.7, ...). Other amplification methods such as isothermal amplifications are time based and thus better suited for Poisson process.

Examples

library(qpcR) test <- cbind(reps[1L:45, ], reps2[1L:45, 2L:ncol(reps2)], reps3[1L:45, 2L:ncol(reps3)]) # before interpolation qPCR experiment must be converted into dPCR qpcrpp <- qpcr2pp(data = test, cyc = 1, fluo = NULL, Cq_range = c(20, 30), model = l5, delta = 5) summary(qpcrpp)
#> #> Number of positive partitions: 48 #> Total number of partitions: 79 #> #> Number of runs: 1 #> Number of experiments: 1 #> #> experiment replicate assay method lambda lambda.low lambda.up m #> qPCR1 1 Unknown dube 0.9354606 0.6929900 1.256209 73.90139 #> qPCR1 1 Unknown bhat 0.9354606 0.7954612 1.075460 73.90139 #> m.low m.up c c.low c.up k n #> 54.74621 99.24047 0.9354606 0.6929900 1.256209 48 79 #> 62.84144 84.96135 0.9354606 0.7954612 1.075460 48 79