Documentation

MeltingTemperatureCalculator.php

Calculates a primer's GC content and melting temperature Freely inspired by BioPHP's project biophp.org Created 30 September 2026 Last modified 9 October 2026

Table of Contents

Classes

MeltingTemperatureCalculator
Migrated from biotools' Service/MeltingTemperatureManager.php. calculateMinimumTm()/ calculateMaximumTm() resolve a degenerate primer into its two extreme single-symbol readings - every ambiguous base collapsed to "A" (weak, A/T-like) or "G" (strong, C/G-like) depending on whether it could possibly BE an A/T or is guaranteed C/G/S - then apply the classic Wallace-style count formula (2 degrees per weak base + 4 per strong base under 14 bases, the empirical long- primer formula from 14 bases up). calculateNearestNeighborTm() is SantaLucia (1998)'s unified nearest-neighbor thermodynamics : Tm = dH / (dS + R ln(Ct/x)), x = 4 for two complementary strands at equal concentration, x = 1 (plus a -1.4 e.u. symmetry term) for a self-complementary primer, whose two strands are the same molecule. Mg2+ is converted into its sodium equivalent, [Na+] + 120 x sqrt([Mg2+]) in mM (von Ahsen et al., Clin Chem 2001), then corrects the entropy by 0.368 x (N - 1) x ln[Na+] (SantaLucia 1998) ; the results agree with Biopython's Tm_NN (DNA_NN3, saltcorr=5). The legacy biotools version used Ct/2 and 140 x [Mg2+]. Unlike it, which returned a sentinel array of nulls plus a message for a degenerate primer, this throws - the nearest-neighbor method has no defined thermodynamic parameters for an ambiguous base pair, so there is no result to return. A primer may be written in lower case.
On this page

Search results