Designs cleaved amplified polymorphic sequence (CAPS), derived
CAPS (dCAPS), conventional amplification refractory mutation system
(ARMS) and tetra-primer ARMS assays for single-locus, biallelic single
nucleotide polymorphisms. Evaluates sequence-compatible primer binding,
reconstructs ideal polymerase chain reaction products and computes
theoretical complete restriction digestion and conditional genotype
profiles. Transparent preference ranking, scientific visualizations and
reproducible exports retain assumptions, missing specificity evidence and
bounded search limitations. An optional offline 'shiny' interface uses the
independently available analysis functions. Predictions do not establish
experimental amplification, digestion efficiency or genome-wide specificity.
Implements perfect-match nearest-neighbor thermodynamics from SantaLucia
(1998)
SNPAssayR provides offline R functions and an optional local Shiny interface for CAPS, single-substitution dCAPS, conventional ARMS-PCR and tetra-primer ARMS-PCR.
library(SNPAssayR)
# Requires already installed optional shiny and bslib packages.
# Launch interactively; no remote analysis service is used.
SNPAssayR::run_app()
In the application: import a sequence or FASTA text/file, select an exact FASTA record, provide a one-based biallelic SNP, choose a method, configure constraints, and click Analyze. Inspect candidate evidence and linked plots before export. Changing analytical inputs invalidates the old analysis; restoring an input does not restore an old result. Analyze again. Supplied copies are screened locally; genome-wide specificity remains unassessed.
Core functions need only R. The interface needs shiny >=1.8.0 and bslib >=0.6.1; testthat is optional for installed tests. No automatic dependency installation, mandatory remote server, GPU, large reference genome or external binary is used.
# Artificial coordinate fixture, not biological data or laboratory primer advice.
s <- validate_snp(read_locus("ACGTTGAATTCAAAAAAGTC", "fixture"), 6, "G", "A")
x <- design_caps(s, restriction_enzymes()[1, , drop = FALSE],
primer_lengths = 3, product_min = 20, product_max = 20,
gc_range = c(0, 1), tm_range = c(-250, 100),
max_tm_difference = 100, screening_mismatches = 0)
x$summary
rank_assays(x)$components
The main teaching example uses one 550 bp synthetic locus, SNP C275G, and 22 nt primers for all four workflows, with normal quality filters:
source(system.file("examples", "tutorial_550bp.R", package = "SNPAssayR"))
tutorial_primers[, c("method", "role", "sequence_5prime_to_3prime", "tm_celsius")]
tutorial_assays$tetra$candidates[[1]]$intended_products
draw_scene(assay_scene(tutorial_assays$tetra))
draw_scene(band_scene(tutorial_assays$caps))
The FASTA is installed at system.file("extdata", "tutorial_550bp.fasta", package = "SNPAssayR"). Shiny provides the same four 550 bp teaching presets.
The locus and SNP are synthetic, and the assays have no laboratory validation.
CAPS with MfeI-HF gives an uncut 120 bp reference and 18 + 102 bp alternative;
dCAPS with EcoRI reverses these patterns through an intentional C270G edit.
Conventional ARMS uses separate 120 bp reactions; tetra-primer ARMS has modeled
180 bp control, 100 bp reference and 123 bp alternative products. Small-fragment
visibility and gel separation require experimental assessment.
The bounded tutorial returns one candidate per method; inspect search truncation
and warnings. Use primer_lengths = 20:22 for a broader length search.
restriction_enzymes() supplies 20 independently curated distinct recognition
motifs, with both strand cuts and dated source links. User tables must follow its
schema and the supported palindromic/internal-cut model; no online import occurs.
Known homeologs/paralogs can be supplied as named DNA strings through
read_locus(..., comparison_sequences = c(copy1 = "...")). Replace the
placeholder with actual sequences. Genome-wide specificity remains unassessed.
Use citation("SNPAssayR") for the software citation, including version 1.0.1.
For tetra-primer designs, product-size bounds apply to the outer control and both diagnostic products. Its six pairwise risk screens separately cover 1-10,000 bp.
Read vignette("SNPAssayR-workflows", package = "SNPAssayR") for tested examples
of all four workflows, prediction boundaries and reproducible exports. Full
methods are installed under system.file("methods", package = "SNPAssayR").
All exported functions have R help pages.
Only case and whitespace are normalized and recorded. Ambiguous IUPAC bases are retained. SNP alleles must be distinct uppercase A/C/G/T and match the reference coordinate. Limits: 10,000 bases per sequence, 50 FASTA records, 50 named copies. No indels, multiallelic variants or concatenation of FASTA records is supported.
Predicted amplification is conditional sequence compatibility, not experimental validation. Target specificity and allele specificity are separate. Complete digest fragments are theoretical; digestion efficiency is unknown. Plots have no validated intensity/detection model. Ranking scores express explicit laboratory preferences, not success probabilities. Search truncation and missing evidence are retained. No KASP design is included.
Authors: Prashant Yadav, Vinod Kumar and Vijay Veer Singh. Maintainer: Prashant Yadav [email protected]. All authors are affiliated with the ICAR-Indian Institute of Rapeseed-Mustard Research, Bharatpur, Rajasthan, India. Copyright holder: ICAR-Indian Institute of Rapeseed-Mustard Research (ICAR-IIRMR). License: GPL-3. Contributions are recorded in DESCRIPTION and installed COPYRIGHTS. Predictions require independent laboratory validation.