1import RNApath 2 3RNApath.addSwigInterfacePath() 4 5import RNA 6import unittest 7 8seq1 = "CGCAGGGAUACCCGCG" 9longseq = "AUUUCCACUAGAGAAGGUCUAGAGUGUUUGUCGUUUGUCAGAAGUCCCUAUUCCAGGUACGAACACGGUGGAUAUGUUCGACGACAGGAUCGGCGCACUACGUUGGUAUCAUGUCCUCCGUCCUAACAAUUAUACAUCGAGAGGCAAAAUUUCUAAUCCGGGGUCAGUGAGCAUUGCCAUUUUAUAACUCGUGAUCUCUCGCUACUUAGGCGAUCCCUGCCAAUGAGGGUCAAGGAGUUGAAUUAUCGGGCCACAUCGACGUGGCCUUUACGGCCAGGUAAUUCAAAGGCCUCAAGUCCU" 10s1="CCCCAAAACGGG" 11s2="CCCGAAAAGGGG" 12s3="CCCCAAAAGGGG" 13ali = [s1,s2,s3] 14 15 16def mfe_window_callback(start, end, structure, energy, data=None): 17 data.append({ 'structure': structure, 'start': start, 'end' : end, 'energy' : energy}) 18 19 20class mfe_window_functionTest(unittest.TestCase): 21 22 def test_mfe_window(self): 23 print "test_mfe_window" 24 fc= RNA.fold_compound(seq1, None, RNA.OPTION_MFE | RNA.OPTION_WINDOW) 25 (mfe) = fc.mfe_window() 26 print "[ %6.2f ]" % mfe 27 self.assertEqual("%6.2f" % mfe, "%6.2f" % -5.60) 28 29 30 def test_Lfold_cb(self): 31 print "test_Lfold_cb" 32 data = [] 33 mfe = RNA.Lfold_cb(seq1, 150, mfe_window_callback, data) 34 self.assertTrue(len(data) == 2) 35 self.assertEqual(data[0]['structure'], "((....)).") 36 self.assertEqual("%6.2f" % data[0]['energy'], "%6.2f" % -0.80) 37 self.assertEqual(data[1]['structure'], "(((.(((...))))))") 38 self.assertEqual("%6.2f" % data[1]['energy'], "%6.2f" % -5.60) 39 40 41 def test_mfe_window_cb(self): 42 print "test_mfe_window_cb" 43 fc= RNA.fold_compound(seq1, None, RNA.OPTION_MFE | RNA.OPTION_WINDOW) 44 data = [] 45 mfe = fc.mfe_window_cb(mfe_window_callback, data) 46 self.assertTrue(len(data) == 2) 47 self.assertEqual(data[0]['structure'], "((....)).") 48 self.assertEqual("%6.2f" % data[0]['energy'], "%6.2f" % -0.80) 49 self.assertEqual(data[1]['structure'], "(((.(((...))))))") 50 self.assertEqual("%6.2f" % data[1]['energy'], "%6.2f" % -5.60) 51 52 53 def test_aliLfold_cb(self): 54 print "test_aliLfold_cb" 55 data = [] 56 mfe = RNA.aliLfold_cb(ali, 150, mfe_window_callback, data) 57 self.assertTrue(len(data) == 2) 58 self.assertEqual(data[0]['structure'], "(((.....)))") 59 self.assertEqual("%6.2f" % data[0]['energy'], "%6.2f" % -1.30) 60 self.assertEqual(data[1]['structure'], "(((......)))") 61 self.assertEqual("%6.2f" % data[1]['energy'], "%6.2f" % -2.70) 62 63 64 def test_mfe_window_cb(self): 65 print "test_mfe_window_cb (comparative)" 66 fc= RNA.fold_compound(ali, None, RNA.OPTION_MFE | RNA.OPTION_WINDOW) 67 data = [] 68 mfe = fc.mfe_window_cb(mfe_window_callback, data) 69 self.assertTrue(len(data) == 2) 70 self.assertEqual(data[0]['structure'], "(((.....)))") 71 self.assertEqual("%6.2f" % data[0]['energy'], "%6.2f" % -1.30) 72 self.assertEqual(data[1]['structure'], "(((......)))") 73 self.assertEqual("%6.2f" % data[1]['energy'], "%6.2f" % -2.70) 74 75 76 77if __name__ == '__main__': 78 unittest.main() 79