Design PCR Primers Targeting a Specific Group of Sequences

Share:

Description

Assists in the design of primer sets targeting a specific group of sequences while minimizing the potential to cross-amplify other groups of sequences.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DesignPrimers(tiles,
              identifier = "",
              start = 1,
              end = NULL,
              minLength = 17,
              maxLength = 26,
              maxPermutations = 4,
              minCoverage = 0.9,
              minGroupCoverage = 0.2,
              annealingTemp = 64,
              P = 4e-07,
              monovalent = 0.07,
              divalent = 0.003,
              dNTPs = 8e-04,
              minEfficiency = 0.8,
              worstScore = -Inf,
              numPrimerSets = 0,
              minProductSize = 75,
              maxProductSize = 1200,
              maxSearchSize = 1500,
              batchSize = 1000,
              maxDistance = 0.4,
              primerDimer = 1e-07,
              ragged5Prime = TRUE,
              taqEfficiency = TRUE,
              induceMismatch = FALSE,
              processors = 1,
              verbose = TRUE)

Arguments

tiles

A set of tiles representing each group of sequences, as in the format created by the function TileSeqs.

identifier

Optional character string used to narrow the search results to those matching a specific identifier. Determines the target group(s) for which primers will be designed. If "" then all identifiers are selected.

start

Integer specifying the starting position in the alignment where potential forward primer target sites begin. Preferably a position that is included in most sequences in the alignment.

end

Integer specifying the ending position in the alignment where potential reverse primer target sites end. Preferably a position that is included in most sequences in the alignment.

minLength

Integer providing the minimum length of primers to consider in the design.

maxLength

Integer providing the maximum length of primers to consider in the design, which must be less than or equal to the maxLength of tiles.

maxPermutations

Integer providing the maximum number of permutations considered as part of a forward or reverse primer set.

minCoverage

Numeric giving the minimum fraction of the target group's sequences that must be covered with the primer set.

minGroupCoverage

Numeric giving the minimum fraction of the target group that must have sequence information (not terminal gaps) in the region covered by the primer set.

annealingTemp

Numeric indicating the desired annealing temperature that will be used in the PCR experiment.

P

Numeric giving the molar concentration of primers in the reaction.

monovalent

The molar concentration of monovalent ([Na] and [K]) ions in solution that will be used to determine a sodium equivalent concentration.

divalent

The molar concentration of divalent ([Mg]) ions in solution that will be used to determine a sodium equivalent concentration.

dNTPs

Numeric giving the molar concentration of free nucleotides added to the solution that will be used to determine a sodium equivalent concentration.

minEfficiency

Numeric giving the minimum efficiency of hybridization desired for the primer set. Note that an efficiency of 99% (0.99) will greatly lower predicted specificity of the primer set, however an efficiency of 50% (0.5) may be too low in actuality to amplify the target group due to error in melt temperature predictions.

worstScore

Numeric specifying the score cutoff to remove target sites from consideration. For example, a worstScore of -5 will remove all primer sets scoring below -5, although this may eventually result in no primer sets meeting the design criteria.

numPrimerSets

Integer giving the optimal number of primer sets (forward and reverse primer sets) to design. If set to zero then all possible forward and reverse primers are returned, but the primer sets minimizing potential cross-amplifications are not chosen.

minProductSize

Integer giving the minimum number of nucleotides desired in the PCR product.

maxProductSize

Integer giving the maximum number of nucleotides desired in the PCR product.

maxSearchSize

Integer giving the maximum number of nucleotides to search for false priming upstream and downstream of the expected binding site.

batchSize

Integer specifying the number of primers to simulate hybridization per batch that is passed to CalculateEfficiencyPCR.

maxDistance

Numeric specifying the maximal fraction of mismatched base pairings on a rolling basis beginning from the 3' end of the primer.

primerDimer

Numeric giving the maximum amplification efficiency of potential primer-dimer products.

ragged5Prime

Logical specifying whether the 5' end or 3' end of primer permutations targeting the same site should be varying lengths.

taqEfficiency

Logical determining whether to make use of elongation efficiency and maxDistance to increase predictive accuracy for Taq DNA Polymerase amplifying primers with mismatches near the 3' terminus. Note that this should be set to FALSE if using a high-fidelity polymerase with 3' to 5' exonuclease activity.

induceMismatch

Logical or integer specifying whether to induce a mismatch in the primer with the template DNA. If TRUE then a mismatch is induced at the 6th primer position. If an integer value is provided between 2 and 6 then a mismatch is induced in that primer position, where the 3'-end is defined as position 1.

processors

The number of processors to use, or NULL to automatically detect and use all available processors.

verbose

Logical indicating whether to display progress.

Details

Primers are designed for use with Taq DNA Polymerase to maximize sensitivity and specificity for the target group of sequences. The design makes use of Taq's bias against certain 3' terminal mismatch types in order to increase specificity further than can be achieve with hybridization efficiency alone.

Primers are designed from a set of tiles to target each identifier while minimizing affinity for all other tiled groups. Arguments provide constraints that ensure the designed primer sets meet the specified criteria as well as being optimized for the particular experimental conditions. A search is conducted through all tiles in the same alignment position to estimate the chance of cross-amplification with a non-target group.

If numPrimers is greater than or equal to one then the set of forward and reverse primers that minimizes potential false positive overlap is returned. This will also initiate a thorough search through all target sites upstream and downstream of the expected binding sites to ensure that the primers do not bind to nearby positions. Lowering the maxSearchSize will speed up the thorough search at the expense of potentially missing an unexpected target site. The number of possible primer sets assessed is increased with the size of numPrimers.

Value

A different data.frame will be returned depending on number of primer sets requested. If no primer sets are required then columns contain the forward and reverse primers for every possible position scored by their potential to amplify other identified groups. If one or more primer sets are requested then columns contain information for the optimal set of forward and reverse primers that could be used in combination to give the fewest potential cross-amplifications.

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")

To install OligoArrayAux from the downloaded source folder on Unix-like platforms, open the shell (or Terminal on Mac OS) and type:

cd oligoarrayaux # change directory to the correct folder name

./configure

make

sudo make install

Author(s)

Erik Wright DECIPHER@cae.wisc.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

AmplifyDNA, CalculateEfficiencyPCR, DesignSignatures, TileSeqs

Examples

1
2
3
4
5
6
db <- system.file("extdata", "Bacteria_175seqs.sqlite", package="DECIPHER")
# not run (must have OligoArrayAux installed first):
## Not run: tiles <- TileSeqs(db, identifier=c("Enterobacteriales","Pseudomonadales"))
## Not run: primers <- DesignPrimers(tiles, identifier="Enterobacteriales", start=280, end=420,
           minProductSize=50, numPrimerSets=1)
## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.