Skip to main content
4 of 4
replaced http://stackoverflow.com/ with https://stackoverflow.com/

Biopython - Big Discrepancy Calculating RNA melting Temperature over Literature

I experience big discrepancies when calculating melting temperature of RNA 7-mers with Biopython over values generated by a popular algorithm.

I tried the nearest neighbour algorithm with RNA and salt concentrations as described in a respective paper (thermodynamic table used as in paper below from: Freier et al 1986). Yet, the values largely differ (execute code below to see). I tried all seven salt correction methods provided by Biopython, still I never get close to the values generated by siRNA design algorithm for the same 7-mers.

Can someone tell me how accurate Biopython's melting temperature nearest neighbour algorithm is? Especially for short oligomers like my 7-mers? Is there maybe something I am implementing wrong? Any suggestions?

Values derived from executing sample input: http://sidirect2.rnai.jp/ Tm is given for the seed duplex of the guide strand: bases 2-7

Literature: "Thermodynamic stability and Watson–Crick base pairing in the seed duplex are major determinants of the efficiency of the siRNA-based off-target effect" http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2602766/pdf/gkn902.pdf

from Bio.Seq import Seq  
from Bio.SeqUtils import MeltingTemp

test_list = [
('GGAUUUG', 21.5),
('CUCAUUG', 18.1),
('CAUAUUC', 8.7),
('UUUGAGU', 19.2),
('UUUUGAG', 12.2),
('GUUUCAA', 14.9),
('AGUUUCG', 19.7),
('GAAGUUU', 13.3)
]


for t in test_list:
    myseq = Seq(t[0])
    tm = MeltingTemp.Tm_NN(myseq, dnac1=100, Na=100,   nn_table=MeltingTemp.RNA_NN1, saltcorr=7)  # NN1 = Freier et al (1986)
    tm = round(tm, 1)  # round to one decimal
    print 'BioPython Tm: ' + str(tm) + '  siDirect Tm: ' + str(t[1])


# Output:
>>> BioPython Tm: 10.1  siDirect Tm: 21.5  # GGAUUUG
>>> BioPython Tm: 8.2  siDirect Tm: 18.1   # CUCAUUG
>>> BioPython Tm: -2.0  siDirect Tm: 8.7   # CAUAUUC
>>> BioPython Tm: 8.2  siDirect Tm: 19.2   # UUUGAGU
>>> BioPython Tm: 1.3  siDirect Tm: 12.2   # UUUUGAG
>>> BioPython Tm: 4.4  siDirect Tm: 14.9   # GUUUCAA
>>> BioPython Tm: 9.0  siDirect Tm: 19.7   # AGUUUCG
>>> BioPython Tm: 2.1  siDirect Tm: 13.3   # GAAGUUU

Question first asked at stack-exchange: https://stackoverflow.com/questions/30037939/biopython-big-discrepancy-calculating-rna-melting-temperature-over-literature

pykong
  • 173
  • 7