Calculate the melting temperature using empirical formulas based on GC content with different options. The function returns a list of sequences with updated Tm attributes and calculation options.
tm_gc(
gr_seq,
ambiguous = FALSE,
userset = NULL,
variant = c("Primer3Plus", "Chester1993", "QuikChange", "Schildkraut1965",
"Wetmur1991_MELTING", "Wetmur1991_RNA", "Wetmur1991_RNA/DNA", "vonAhsen2001"),
Na = 50,
K = 0,
Tris = 0,
Mg = 0,
dNTPs = 0,
salt_method = c("Schildkraut2010", "Wetmur1991", "SantaLucia1996", "SantaLucia1998-1",
"Owczarzy2004", "Owczarzy2008"),
mismatch = TRUE,
DMSO = 0,
formamide_unit = list(value = 0, unit = "percent"),
dmso_factor = 0.75,
formamide_factor = 0.65
)Returns a list with two components: - Tm: A list of sequences with updated Tm attributes - Options: A list containing calculation parameters and method information
Pre-processed sequence(s) in 5' to 3' direction. This should be the output from to_genomic_ranges() function.
Logical. If TRUE, ambiguous bases are taken into account when computing the G and C content. The function handles various ambiguous bases (S, W, M, K, R, Y, V, H, D, B) by proportionally distributing their contribution to GC content based on their possible nucleotide compositions.
A vector of four coefficient values. Usersets override value sets.
Empirical constants coefficient with 8 variants: - Chester1993: Tm = 69.3 + 0.41(Percentage_GC) - 650/N - QuikChange: Tm = 81.5 + 0.41(Percentage_GC) - 675/N - Percentage_mismatch - Schildkraut1965: Tm = 81.5 + 0.41( - Wetmur1991_MELTING: Tm = 81.5 + 0.41( - Wetmur1991_RNA: Tm = 78 + 0.7( - Wetmur1991_RNA/DNA: Tm = 67 + 0.8( - Primer3Plus: Tm = 81.5 + 0.41( - vonAhsen2001: Tm = 77.1 + 0.41(
Salt correction is applied only for variants that include it in the formula
(via salt_correct()). Chester1993 and QuikChange use no salt term.
D is the mismatch penalty (typically 1): Tm decreases by D x (
Use X (or .) in the sequence to mark mismatch positions.
Millimolar concentration of sodium ions. Default: 50
Millimolar concentration of potassium ions. Default: 0
Millimolar concentration of Tris buffer. Default: 0
Millimolar concentration of magnesium ions. Default: 0
Millimolar concentration of deoxynucleotide triphosphates. Default: 0
Salt correction method. NULL (default) uses the
method associated with variant. Set to NA to disable salt
correction. Options:
- "Schildkraut2010": Schildkraut & Lifson 1965
- "Wetmur1991": Wetmur 1991
- "SantaLucia1996": SantaLucia 1996
- "SantaLucia1998-1": SantaLucia 1998 (Method 1)
- "Owczarzy2004": Owczarzy 2004
- "Owczarzy2008": Owczarzy 2008
Note: "SantaLucia1998-2" is not available for this function.
Logical. If TRUE (default), every 'X' in the sequence is counted as a mismatch
Percent DMSO concentration in the reaction mixture. Default: 0
Formamide concentration as `list(value, unit)`. Default: list(value = 0, unit = "percent") - value: Numeric value of formamide concentration - unit: Either "percent" or "molar"
Coefficient of Tm decreases per percent DMSO. Default: 0.75 (von Ahsen et al. 2001) Other published values are 0.5, 0.6 and 0.675.
Coefficient of Tm decrease per percent formamide. Default: 0.65 Several papers report factors between 0.6 and 0.72.
Junhui Li
Marmur J, Doty P. Determination of the base composition of deoxyribonucleic acid from its thermal denaturation temperature. Journal of Molecular Biology, 1962, 5(1):109-118.
Schildkraut C. Dependence of the melting temperature of DNA on salt concentration. Biopolymers, 2010, 3(2):195-208.
Wetmur JG. DNA Probes: Applications of the Principles of Nucleic Acid Hybridization. CRC Critical Reviews in Biochemistry, 1991, 26(3-4):33.
Untergasser A, Cutcutache I, Koressaar T, et al. Primer3--new capabilities and interfaces. Nucleic Acids Research, 2012, 40(15):e115-e115.
von Ahsen N, Wittwer CT, Schutz E, et al. Oligonucleotide melting temperatures under PCR conditions: deoxynucleotide Triphosphate and Dimethyl sulfoxide concentrations with comparison to alternative empirical formulas. Clin Chem 2001, 47:1956-1961.
# Example with multiple sequences
input_seq <- c("ATCGTGCGTAGCAGTACGATCAGTAG", "ATCGTGCGTAGCAGTACGATCAGTAG")
gr_seq <- to_genomic_ranges(input_seq)
out <- tm_gc(gr_seq, ambiguous = TRUE, variant = "Primer3Plus", Na = 50, mismatch = TRUE)
out
out$Options
Run the code above in your browser using DataLab