# oligo melting temperature

Brian Osborne bosborne at NATURE.BERKELEY.EDU
Wed May 15 12:32:12 EST 1996

```>Dear netters,
>
>has someone compared the different equations out there to calculate
>the melting temperature of oligos? The Maniatis equation for short
>oligos did not work well in our hands. Is there a good program (for
>Macs) available which calculates reliabale Tm's?
>
>
>___________________________________________________________________________
>Bernd Weisshaar
>MPI fuer Zuechtungsforschung
>Abteilung Biochemie
>Carl-von-Linne-Weg 10
>50829 Koeln
>Germany
>
>Fax: +49-221-5062 313
>e-mail: weisshaa at mpiz-koeln.mpg.de

There is an algorithm based on 'nearest neighbor' thermodynamic values :

Breslauer, K. J., Frank, R., Blocker, H., and Marky, L. A. (1986).
Predicting DNA duplex stability from the base sequence. Proc. Natl. Acad.
Sci. USA 83, 3746-3750.

This algorithm is applied to the Tm's of oligonucleotides in :

Rychlik, W., and Rhoads, R. E. (1989). A computer program for choosing
optimal oligonucleotides for filter hybridization, sequencing and in vitro
amplification of DNA. Nucl. Acid Res. 17, 8543-8551.

This is a table containing the values you'll need. It's from a program,
that's why it doesn't look like
a table! For example, the enthalpy for the AT dinucleotide is 8.6
(expressed  without the proper
units) :

function dH x,y
-- returns enthalpies of adjacent pairs
if x is "a" then
if y is "a" then return "9.1"
if y is "t" then return "8.6"
if y is "g" then return "7.8"
if y is "c" then return "6.5"
end if
if x is "t" then
if y is "a" then return "6"
if y is "t" then return "9.1"
if y is "g" then return "5.8"
if y is "c" then return "5.6"
end if
if x is "g" then
if y is "a" then return "5.6"
if y is "t" then return "6.5"
if y is "g" then return "11"
if y is "c" then return "11.1"
end if
if x is "c" then
if y is "a" then return "5.8"
if y is "t" then return "7.8"
if y is "g" then return "11.9"
if y is "c" then return "11"
end if
end dH

function dS x,y
-- returns entropies of adjacent pairs
if x is "a" then
if y is "a" then return "24"
if y is "t" then return "23.9"
if y is "g" then return "20.8"
if y is "c" then return "17.3"
end if
if x is "t" then
if y is "a" then return "16.9"
if y is "t" then return "24"
if y is "g" then return "12.9"
if y is "c" then return "13.5"
end if
if x is "g" then
if y is "a" then return "13.5"
if y is "t" then return "17.3"
if y is "g" then return "26.6"
if y is "c" then return "26.7"
end if
if x is "c" then
if y is "a" then return "12.9"
if y is "t" then return "20.8"
if y is "g" then return "27.8"
if y is "c" then return "26.6"
end if
end dS

I am afraid I don't have this alone as a program. Perhaps you can devise a
macro in a