3 sequence =
"UGGGAAUAGUCUCUUCCGAGUCUCGCGGGCGACGGGCGAUCUUCGAAAGUGGAAUCCGUACUUAUACCGCCUGUGCGGACUACUAUCCUGACCACAUAGU" 6 A simple callback function that stores 7 a structure sample into a list 9 def store_structure(s, data):
15 First we prepare a fold_compound object 25 fc = RNA.fold_compound(sequence, md)
31 fc.exp_params_rescale(mfe)
37 Now we are ready to perform Boltzmann sampling 41 print "%s" % fc.pbacktrack5(10)
45 print "%s" % fc.pbacktrack5(50)
48 for s
in fc.pbacktrack5(20, 10):
52 for s
in fc.pbacktrack5(100, 50):
56 print "%s" % fc.pbacktrack()
59 for s
in fc.pbacktrack(100):
63 for s
in fc.pbacktrack(100, RNA.PBACKTRACK_NON_REDUNDANT):
72 for i
in range(0, iterations):
73 d, ss = fc.pbacktrack(num_samples, d, RNA.PBACKTRACK_NON_REDUNDANT)
74 s_list = s_list + list(ss)
81 i = fc.pbacktrack5(100, 50, store_structure, ss)
88 i = fc.pbacktrack(100, store_structure, ss)
95 i = fc.pbacktrack(100, store_structure, ss, RNA.PBACKTRACK_NON_REDUNDANT)
105 for i
in range(0, iterations):
106 d, i = fc.pbacktrack(num_samples, store_structure, ss, d, RNA.PBACKTRACK_NON_REDUNDANT)
6 seq =
"AUUUCCACUAGAGAAGGUCUAGAGUGUUUGUCGUUUGUCAGAAGUCCCUAUUCCAGGUACGAACACGGUGGAUAUGUUCGACGACAGGAUCGGCGCACUA" 9 fc = RNA.fold_compound(seq)
12 (mfe_struct, mfe) = fc.mfe()
15 fc.exp_params_rescale(mfe)
21 (centroid_struct, dist) = fc.centroid()
24 centroid_en = fc.eval_structure(centroid_struct)
27 (MEA_struct, MEA) = fc.MEA()
30 MEA_en = fc.eval_structure(MEA_struct)
33 print(
"%s\n%s (%6.2f)" % (seq, mfe_struct, mfe))
34 print(
"%s [%6.2f]" % (pp, pf))
35 print(
"%s {%6.2f d=%.2f}" % (centroid_struct, centroid_en, dist))
36 print(
"%s {%6.2f MEA=%.2f}" % (MEA_struct, MEA_en, MEA))
37 print(
" frequency of mfe structure in ensemble %g; ensemble diversity %-6.2f" % (fc.pr_structure(mfe_struct), fc.mean_bp_distance()))
3 seq1 =
"CUCGUCGCCUUAAUCCAGUGCGGGCGCUAGACAUCUAGUUAUCGCCGCAA" 10 mm_data = {
'dummy': RNA.fold_compound(seq1),
'params': RNA.param() }
14 RNA.DECOMP_PAIR_HP:
lambda i, j, k, l, f, p: - f.eval_hp_loop(i, j) - 100,
15 RNA.DECOMP_PAIR_IL:
lambda i, j, k, l, f, p: - f.eval_int_loop(i, j, k, l) - 100,
16 RNA.DECOMP_PAIR_ML:
lambda i, j, k, l, f, p: - p.MLclosing - p.MLintern[0] - (j - i - k + l - 2) * p.MLbase - 100,
17 RNA.DECOMP_ML_ML_STEM:
lambda i, j, k, l, f, p: - p.MLintern[0] - (l - k - 1) * p.MLbase,
18 RNA.DECOMP_ML_STEM:
lambda i, j, k, l, f, p: - p.MLintern[0] - (j - i - k + l) * p.MLbase,
19 RNA.DECOMP_ML_ML:
lambda i, j, k, l, f, p: - (j - i - k + l) * p.MLbase,
20 RNA.DECOMP_ML_ML_ML:
lambda i, j, k, l, f, p: 0,
21 RNA.DECOMP_ML_UP:
lambda i, j, k, l, f, p: - (j - i + 1) * p.MLbase,
22 RNA.DECOMP_EXT_STEM:
lambda i, j, k, l, f, p: - f.E_ext_loop(k, l),
23 RNA.DECOMP_EXT_EXT:
lambda i, j, k, l, f, p: 0,
24 RNA.DECOMP_EXT_STEM_EXT:
lambda i, j, k, l, f, p: - f.E_ext_loop(i, k),
25 RNA.DECOMP_EXT_EXT_STEM:
lambda i, j, k, l, f, p: - f.E_ext_loop(l, j),
26 RNA.DECOMP_EXT_EXT_STEM1:
lambda i, j, k, l, f, p: - f.E_ext_loop(l, j-1),
30 def MaximumMatching(i, j, k, l, d, data):
31 return revert_NN[d](i, j, k, l, data[
'dummy'], data[
'params'])
34 fc = RNA.fold_compound(seq1)
37 fc.sc_add_f(MaximumMatching)
38 fc.sc_add_data(mm_data,
None)
44 print "%s\n%s (MM: %d)\n" % (seq1, s, -mm)