Validation Report — Melting Temperature Calculation
Work: codex-vivum · Version: v1.0 · Date: 2026-05-12 Author: Thomas Schüller · ORCID 0009-0003-9799-6747 · CC BY 4.0
This report documents the validation described in Section 5 of the paper.
Design
The calculation used in the application was ported unchanged to
Python and compared against Bio.SeqUtils.MeltingTemp.Tm_NN
— an independent implementation of the same methodology
(nearest-neighbor parameters per SantaLucia 1998, salt correction per
Owczarzy et al. 2004).
Test set. 40 systematically generated primers: lengths 16, 18, 20, 22, 24, 26, 28, 30 nt; GC contents 30, 40, 50, 60, 70 %; each at 50, 100 and 200 mM Na⁺ with 250 nM primer concentration. This yields 120 comparison points. Deterministic via fixed random seed (42).
Pre-specified criterion. At most ±2 °C deviation in at least 80 % of cases.
Result
| Condition | Mean deviation | Standard deviation | Max. magnitude | within ±2 °C |
|---|---|---|---|---|
| 50 mM Na⁺ | −0.86 °C | 0.16 °C | 1.18 °C | 100 % |
| 100 mM Na⁺ | −0.89 °C | 0.17 °C | 1.22 °C | 100 % |
| 200 mM Na⁺ | −0.91 °C | 0.17 °C | 1.25 °C | 100 % |
| total (n = 120) | −0.89 °C | 0.17 °C | 1.25 °C | 100 % |
Criterion met. Additionally passed: five plausibility checks (monotonicity in length, GC content and salt concentration; value range of a typical 20mer; handling of self-complementary sequences).
Interpreting the offset
A first run yielded −1.78 °C and 73 % within tolerance; the criterion would have been missed. The cause was not a calculation error but a differing concentration convention: the model defines melting temperature via total strand concentration C_T with the factor C_T/4 for non-self-complementary duplexes. The reference implementation represents this through two concentration parameters. After alignment the offset fell to −0.89 °C; for an exactly matched single parameterisation the difference was 0.02 °C.
The finding is documented deliberately: it concerns anyone comparing values across tools. Inconsistency of conventions has been known since Panjkovich & Melo (2005) and Chavali et al. (2005).
Context: how much does the choice of method move the result?
A comparison against experimentally measured melting temperatures is still outstanding (see below). In its place, the differences between the published parameter sets themselves were quantified — because a deviation of 0.89 °C can only be judged relative to that spread.
Four published nearest-neighbor sets were compared on the same 20 primers, at 250 nM and 50 mM Na⁺:
| Parameter set | Mean | Range |
|---|---|---|
| Breslauer 1986 | 61.23 °C | 39.4 – 81.0 |
| Sugimoto 1996 | 56.41 °C | 42.0 – 69.0 |
| SantaLucia 1998 | 52.75 °C | 38.3 – 66.4 |
| SantaLucia & Hicks 2004 | 52.69 °C | 38.2 – 66.4 |
| Codex Vivum (SantaLucia 1998) | 51.74 °C | 37.1 – 65.5 |
The spread per sequence across the four sets averages 8.67 °C, at most 14.63 °C. The tool’s own deviation against the same methodology is 0.89 °C — roughly one tenth of what the choice of parameter set alone accounts for.
Two conclusions. First, the implementation of SantaLucia 1998 is accurate within what can be determined at all. Second — and more important for teaching — a Tm value without a statement of method says little. Anyone comparing values from two tools may be comparing Breslauer against SantaLucia and will see nearly nine degrees of difference without either being wrong. This is precisely what Panjkovich and Melo (2005) report as the finding of their method comparison.
The newer parameters of SantaLucia and Hicks (2004) differ from the 1998 version by only 0.06 °C on average. For a teaching tool the older, more widely documented set is therefore unproblematic.
Limits of this validation
- The comparison was against an implementation of the same methodology, not against measured values. Absolute accuracy relative to experimental melting temperatures is untested. Publicly available datasets for this step: Owczarzy et al. (2004, 2008), the reference set of 348 sequences from Panjkovich & Melo (2005), the Nearest Neighbor Database.
- IDT OligoAnalyzer and NEB TmCalculator were not included (no open interface within the test frame); a manual spot comparison remains advisable.
- Restriction site detection is not covered by this report.
Reproduction
pip install -r requirements.txt
python3 tm_validation.py
Full console output: validation_output.txt.