{
  "id": "tm",
  "version": "1e5911e32949",
  "status": "published",
  "name": "TM Calculator",
  "question": "What is my primer’s Tm?",
  "summary": "Computes the melting temperature (Tm) of a DNA primer from its sequence by the Wallace rule and by the GC-content formula with a sodium correction, with the GC content and the base counts.",
  "category": "biology",
  "subcategory": "lab",
  "url": "https://www.acalculator.org/biology/tm-calculator",
  "markdown": "https://www.acalculator.org/biology/tm-calculator.md",
  "kind": "function",
  "method": "Wallace Tm = 2 × (A + T) + 4 × (G + C) °C; salt-adjusted Tm = 81.5 + 0.41 × %GC − 600 ÷ N + 16.6 × log10([Na⁺] in M) °C.",
  "assumptions": [
    "The sequence is single-stranded DNA binding a perfect complement; mismatches, Mg²⁺ and dNTPs are not counted.",
    "The Wallace rule is a rule of thumb for primers of about 14 to 20 bases; the salt-adjusted formula suits longer primers.",
    "Nearest-neighbour methods, which some primer tools use, give different values."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "seq": {
        "title": "Primer sequence (5′ to 3′)",
        "description": "The DNA bases A, C, G and T. Spaces, line breaks and position numbers are ignored.",
        "type": "string",
        "maxLength": 2000
      },
      "na": {
        "title": "Sodium (Na⁺) concentration, mM",
        "description": "The monovalent salt concentration of the reaction in millimoles per litre; 50 mM is usual for PCR.",
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 10000
      }
    }
  },
  "outputs": {
    "salt": {
      "label": "Tm, salt-adjusted (°C)",
      "description": "81.5 + 0.41 × %GC − 600 ÷ length + 16.6 × log10(Na⁺ in mol/L).",
      "format": "number"
    },
    "wallace": {
      "label": "Tm, Wallace rule (°C)",
      "description": "2 × (A + T) + 4 × (G + C); meant for primers of 14 to 20 bases.",
      "format": "number"
    },
    "gc": {
      "label": "GC content",
      "description": "G + C as a percent of all bases.",
      "format": "percent"
    },
    "length": {
      "label": "Length",
      "description": "The number of bases in the sequence.",
      "format": "integer"
    },
    "counts": {
      "label": "Base counts",
      "description": "How many of each base the sequence has.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "seq": "GACTGCATGCAGTCAGCATG",
      "na": 50
    },
    "outputs": {
      "salt": 52.4529020719779,
      "wallace": 62,
      "gc": 55,
      "length": 20,
      "counts": "A 5, C 5, G 6, T 4"
    },
    "text": "Your 20-base primer melts at about 52.5 °C (salt-adjusted) or 62 °C (Wallace rule)."
  },
  "examples": [
    {
      "given": {
        "seq": "ACGTTGCAATGCCGTA",
        "na": 50
      },
      "expect": {
        "wallace": 48,
        "salt": 42.902902071977906,
        "gc": 50,
        "length": 16,
        "counts": "A 4, C 4, G 4, T 4"
      },
      "source": "Biopython, Bio.SeqUtils.MeltingTemp module documentation (Tm_Wallace: Tm = 4 °C × (G + C) + 2 °C × (A + T), and Tm_Wallace(‘ACGTTGCAATGCCGTA’) = 48.0; Tm_GC: Tm = A + B × %GC − C ÷ N + salt correction, value set 7 (Primer3Plus): A = 81.5, B = 0.41, C = 600; salt correction 1: 16.6 × log10[Na⁺] (Schildkraut and Lifson 1965)), https://biopython.org/docs/latest/api/Bio.SeqUtils.MeltingTemp.html (retrieved 2026-10-03); hand calculation in content.mdx: 81.5 + 0.41 × 50 − 600 ÷ 16 + 16.6 × log10(0.05) = 42.9 °C"
    },
    {
      "given": {
        "seq": "gact gcat gcag tcag catg",
        "na": 50
      },
      "expect": {
        "wallace": 62,
        "salt": 52.4529020719779,
        "gc": 55,
        "length": 20
      },
      "source": "Biopython, Bio.SeqUtils.MeltingTemp module documentation (Tm_Wallace: Tm = 4 °C × (G + C) + 2 °C × (A + T), and Tm_Wallace(‘ACGTTGCAATGCCGTA’) = 48.0; Tm_GC: Tm = A + B × %GC − C ÷ N + salt correction, value set 7 (Primer3Plus): A = 81.5, B = 0.41, C = 600; salt correction 1: 16.6 × log10[Na⁺] (Schildkraut and Lifson 1965)), https://biopython.org/docs/latest/api/Bio.SeqUtils.MeltingTemp.html (retrieved 2026-10-03); hand calculation in content.mdx: 2 × 9 + 4 × 11 = 62 °C"
    },
    {
      "given": {
        "seq": "GACTGCATGCAGTCAGCATG",
        "na": 100
      },
      "expect": {
        "salt": 57.45
      },
      "source": "Biopython, Bio.SeqUtils.MeltingTemp module documentation (Tm_Wallace: Tm = 4 °C × (G + C) + 2 °C × (A + T), and Tm_Wallace(‘ACGTTGCAATGCCGTA’) = 48.0; Tm_GC: Tm = A + B × %GC − C ÷ N + salt correction, value set 7 (Primer3Plus): A = 81.5, B = 0.41, C = 600; salt correction 1: 16.6 × log10[Na⁺] (Schildkraut and Lifson 1965)), https://biopython.org/docs/latest/api/Bio.SeqUtils.MeltingTemp.html (retrieved 2026-10-03); hand calculation in content.mdx: 81.5 + 22.55 − 30 + 16.6 × (−1) = 57.45 °C"
    }
  ],
  "sources": [
    "Biopython, Bio.SeqUtils.MeltingTemp module documentation: Tm_Wallace (Tm = 4 °C × (G + C) + 2 °C × (A + T), for primers of 14 to 20 bases; example ACGTTGCAATGCCGTA gives 48.0) and Tm_GC (Tm = A + B × %GC − C ÷ N + salt correction; value set 7, the Primer3Plus default: A = 81.5, B = 0.41, C = 600; salt correction method 1: 16.6 × log10[Na⁺], Schildkraut and Lifson 1965). https://biopython.org/docs/latest/api/Bio.SeqUtils.MeltingTemp.html (retrieved 2026-10-03)"
  ],
  "related": [
    "molarity",
    "dilution",
    "serial-dilution"
  ],
  "changelog": []
}
