Learn R Programming

pcrsim (version 1.0.1)

simPCR: PCR Simulator

Description

Simulates the Polymerase Chain Reaction (PCR) process.

Usage

simPCR(data, kit = NULL, method = "DEFAULT", pcr.cyc = 30, pcr.prob = 0.8, sd.pcr.prob = 0, stutter = TRUE, stutter.prob = 0.002, sd.stutter.prob = 0, stutter.reg = FALSE, vol.aliq = 10, sd.vol.aliq = 0, vol.pcr = 25, sd.vol.pcr = 0, debug = FALSE)

Arguments

data
data.frame with simulated data. Preferably output from simExtraction. Required columns are 'Marker', 'Allele', 'Sim', Volume', and 'DNA'.
kit
string representing the typing kit used, or data.frame with kit characteristics. Provides locus specific PCR efficiency and stutter probabilities. If NULL pcr.prob and stutter.prob will be used for all loci.
method
string representing the method of the specified kit.
pcr.cyc
numeric for the number of PCR cycles.
pcr.prob
numeric for the PCR efficiency (probability amplifying a DNA molecule). Only used if kit is NULL.
sd.pcr.prob
numeric for the standard deviation of pcr.prob.
stutter
logical to simulate stutters.
stutter.prob
numeric for the probability generating a stutter. Only used if kit is NULL.
sd.stutter.prob
numeric for the standard deviation of stutter.prob.
stutter.reg
logical to use regression for stutter probability.
vol.aliq
numeric for the aliquot extract forwarded to PCR.
sd.vol.aliq
numeric for the standard deviation of vol.aliq.
vol.pcr
numeric for the total PCR reaction volume.
sd.vol.pcr
numeric for the standard deviation of vol.pcr.
debug
logical to print debug information.

Value

data.frame with simulation results in columns 'PCR.Pip.Vol', 'PCR.Aliq.Prob', 'PCR.DNA', 'PCR.Vol', 'PCR.Prob', 'PCR.Prob.Stutter', 'PCR.Amplicon', 'PCR.Stutter.1', 'PCR.Stutter.2', and updated 'DNA' column (added if needed).

Details

Simulates the PCR process by a series of binomial distributions, or multinomial distributions if stutter=TRUE. The PCR probability/ efficiency can be specified globally or per locus. Probability of stutter formation can be specified globally, per locus, or per locus and allele size.

See Also

simExtraction

Examples

Run this code
# Create a data frame with a DNA profile.
markers = rep(c("D3S1358","TH01","FGA"), each=2)
alleles = c(15,18,6,10,25,25)
df <- data.frame(Marker=markers, Allele=alleles)

# Simulate profile.
smpl <- simProfile(data=df, sim=10)

# Simulate sample.
smpl <- simSample(data=smpl, cells=1000, sd.cells=200)

# Simulate extraction.
smpl <- simExtraction(data=smpl, vol.ex=200, sd.vol=10, prob.ex=0.6, sd.prob=0.1)

# Simulate PCR with 95% PCR efficiency and 0.2% stutter probability for all loci.
res <- simPCR(data=smpl, pcr.prob=0.95, pcr.cyc=30, vol.aliq=10,
 sd.vol.aliq=0.1, vol.pcr=25, sd.vol.pcr=1)

# Simulate PCR with locus specific PCR efficiency and stutter probability.
res <- simPCR(data=smpl, kit="ESX17", pcr.cyc=30, vol.aliq=10,
 sd.vol.aliq=0.1, vol.pcr=25, sd.vol.pcr=1)

# Simulate PCR with locus specific PCR efficiency and stutter probability.
res <- simPCR(data=smpl, kit="ESX17", pcr.cyc=30, vol.aliq=10,
 sd.vol.aliq=0.1, vol.pcr=25, sd.vol.pcr=1, stutter.reg=TRUE)

Run the code above in your browser using DataLab