def setup(self, cmd_args, **options): #trim off basepairs on the end do not need them in the simulation ss = ssfactory.factory.get_structure( cmd_args.cseq[3:-3] + "+" + cmd_args.fseq[3:-3], cmd_args.css[3:-3] + "+" + cmd_args.fss[3:-3], to_RNA=1 ) #update secondary structure to include tertiary contact motifs m1 = rm.manager.get_motif(name='GAAA_tetraloop') m2 = rm.manager.get_motif(name='GGAA_tetraloop') ss.add_motif(m1.secondary_structure, m1.name) ss.add_motif(m2.secondary_structure, m2.name) m2 = rm.manager.get_motif(name='GGAA_tetraloop') last_end_id = None for i, end in enumerate(m2.ends): if end.name() == "A1-A6": last_end_id = m2.end_ids[i] break last_end = ss.motif('GGAA_tetraloop').get_end_by_id(last_end_id) conn = ss.motif_topology_from_end(ss.ends[1], last_end=last_end) mtt = motif_tree_topology.MotifTreeTopology(conn) mt = motif_tree.motif_tree_from_topology(mtt, sterics=0) mset = motif_state_ensemble_tree.MotifStateEnsembleTree(mt=mt) ni = -1 ei = -1 for n in mt: if n.data.name == 'GGAA_tetraloop': ni = n.index bp = n.data.get_basepair(name="A1-A6")[0] ei = n.data.ends.index(bp) if cmd_args.pdbs: mt.write_pdbs("good") mst = mset.to_mst() n1 = mst.get_node(ni) n2 = mst.get_node(mt.last_node().index-1) end_state_1 = n1.data.cur_state.end_states[ei] end_state_2 = n2.data.cur_state.end_states[1] scorer = thermo_fluc_sampler.FrameScorer() score = scorer.score(end_state_1, end_state_2) print "distance + rotation diff = ",score exit() self.simulator = thermo_fluc_sampler.ThermoFlucSimulation() self.simulator.setup(mset, ni, mt.last_node().index-1, ei, 1) self.simulator.run()
def new_build(): seq1 = 'CTAGGATATGGGGGGUUUUUGGGAACAAAAACCCCCCTAAGTCCTAG' seq2 = 'CTAGGAATCTGGAAGTACCGAGGAAACTCGGTACTTCCTGTGTCCTAG' db1 = '(((((((..((((((((((((....))))))))))))...)))))))' db2 = '((((((....((((((((((((....))))))))))))....))))))' ss = ssfactory.factory.get_structure(seq1 +"+" + seq2, db1 + "+" + db2, to_RNA=1) m1 = rm.manager.get_motif(name='GAAA_tetraloop') m2 = rm.manager.get_motif(name='GGAA_tetraloop') ss.add_motif(m1.secondary_structure, m1.name) ss.add_motif(m2.secondary_structure, m2.name) ss_m = ss.motif('GGAA_tetraloop') last_end = None for i, end in enumerate(ss_m.ends): if ss_m.end_ids[i] == 'GGGAAC_LUUUUR_CCUGUGUC_LLULUULL_GAAUCUGG_RRUURURR': last_end = end break conn = ss.motif_topology_from_end(ss.ends[1], last_end=last_end) mtt = motif_tree_topology.MotifTreeTopology(conn) mt = motif_tree.motif_tree_from_topology(mtt, sterics=0) mt.write_pdbs()