AmplifyDNA {DECIPHER} | R Documentation

## Simulate Amplification of DNA by PCR

### Description

Predicts the amplification efficiency of theoretical PCR products (amplicons) given one or more primer sequences.

### Usage

    AmplifyDNA(primers,
            myDNAStringSet,
            maxProductSize,
            annealingTemp,
            P,
            ions = 0.2,
            includePrimers=TRUE,
            minEfficiency = 0.001,
            ...)

### Arguments

`primers` | A `DNAStringSet` object or character vector with one or more unaligned primer sequences in 5' to 3' orientation.
`myDNAStringSet` | A `DNAStringSet` object or character vector with unaligned template DNA sequences in 5' to 3' orientation.
`maxProductSize` | Integer specifying the maximum length of PCR products (amplicons) in nucleotides.
`annealingTemp` | Numeric specifying the annealing temperature used in the PCR reaction.
`P` | Numeric giving the molar concentration of primers in the reaction.
`ions` | Numeric giving the molar sodium equivalent ionic concentration. Values may range between 0.01M and 1M.
`includePrimers` | Logical indicating whether to include the primer sequences in the theoretical PCR products. (See details section below.)
`minEfficiency` | Numeric giving the minimum amplification efficiency of PCR products to include in the output (default `0.1%`). (See details section below.)
`...` | Additional arguments to be passed directly to `CalculateEfficiencyPCR`, including `batchSize`, `taqEfficiency`, `maxDistance`, `maxGaps`, and `processors`.

### Details

Exponential amplification in PCR requires the annealing and elongation of two primers from target sites on opposing strands of the template DNA. If the template DNA sequence (e.g., chromosome) is known then predictions of theoretical amplicons can be obtained from in silico simulations of amplification. `AmplifyDNA` first searches for primer target sites on the template DNA, and then calculates an amplification efficiency from each target site using `CalculateEfficiencyPCR`. Ambiguity codes (`IUPAC_CODE_MAP`) are supported in the `primers`, but not in `myDNAStringSet` to prevent trivial matches (e.g., runs of N's).

If `taqEfficiency` is `TRUE` (the default), the amplification efficiency of each primer is defined as the product of hybridization efficiency and elongation efficiency. Amplification efficiency must be at least `minEfficiency` for a primer to be amplified in silico. Overall amplification efficiency of the PCR product is then calculated as the geometric mean of the two (i.e., forward and reverse) primers' efficiencies. Finally, amplicons are generated if the two primers are within `maxProductSize` nucleotides downstream of each other.

Potential PCR products are returned, either with or without including the primer sequences in the amplicon. The default (`includePrimers=TRUE`) is to incorporate the primer sequences as would normally occur during amplification. The alternative is to return the complete template sequence including the target sites, which may not exactly match the primer sequences. Note that amplicons may be duplicated when different input `primers` can amplify the same region of DNA.

### Value

A `DNAStringSet` object containing potential PCR products, sorted from highest-to-lowest amplification efficiency. The sequences are named by their predicted amplification efficiency followed by the index of each primer in `myDNAStringSet`. (See examples section below.)

### Note

The program OligoArrayAux (http://mfold.rna.albany.edu/?q=DINAMelt/OligoArrayAux) must be installed in a location accessible by the system. For example, the following code should print the installed OligoArrayAux version when executed from the R console:

`system("hybrid-min -V")`

### Author(s)

Erik Wright eswright@pitt.edu

### References

ES Wright et al. (2013) "Exploiting Extension Bias in PCR to Improve Primer Specificity in Ensembles of Nearly Identical DNA Templates." Environmental Microbiology, doi:10.1111/1462-2920.12259.

### See Also

`CalculateEfficiencyPCR`, `DesignPrimers`, `DesignSignatures`, `MeltDNA`

### Examples

    data(yeastSEQCHR1)

    # not run (must have OligoArrayAux installed first):

    # match a single primer that acts as both the forward and reverse
    primer1 <- "TGGAAGCTGAAACG"
    ## Not run: AmplifyDNA(primer1, yeastSEQCHR1, annealingTemp=55, P=4e-7, maxProductSize=500)

    # perform a typical amplification with two primer sequences:
    primer2 <- c("GGCTGTTGTTGGTGTT", "TGTCATCAGAACACCAA")
    ## Not run: AmplifyDNA(primer2, yeastSEQCHR1, annealingTemp=55, P=4e-7, maxProductSize=500)

    # perform a multiplex PCR amplification with multiple primers:
    primers <- c(primer1, primer2)
    ## Not run: AmplifyDNA(primers, yeastSEQCHR1, annealingTemp=55, P=4e-7, maxProductSize=500)

[Package DECIPHER version 2.16.1 Index]