8 from random
import randrange
18 MAX_KIC_BUILD_ATTEMPTS = 10000
21 "-database minirosetta_database", \
26 pose_from_pdb( p,
"2cpl_min.pdb" )
29 starting_p.assign( p )
31 scorefxn_low = create_score_function(
'cen_std' )
32 scorefxn_high = create_score_function_ws_patch(
'standard',
'score12' )
34 pymol = rosetta.PyMOL_Mover()
39 my_loop = Loop( loop_begin, loop_end, loop_cut )
41 my_loops.add_loop( my_loop )
44 set_single_loop_fold_tree( p, my_loop )
47 movemap.set_bb_true_range(loop_begin, loop_end )
48 movemap.set_chi(
True )
52 print "setting up movers"
54 kic_mover = KinematicMover()
57 to_centroid = protocols.simple_moves.SwitchResidueTypeSetMover(
'centroid' )
58 to_fullatom = protocols.simple_moves.SwitchResidueTypeSetMover(
'fa_standard' )
59 recover_sidechains = protocols.simple_moves.ReturnSidechainMover( starting_p )
62 task_pack = TaskFactory.create_packer_task( starting_p )
63 task_pack.restrict_to_repacking()
64 task_pack.or_include_current(
True )
65 pack = protocols.simple_moves.PackRotamersMover( scorefxn_high, task_pack )
68 to_centroid.apply( p )
72 movemap.set_bb(
True )
77 linmin_mover = protocols.simple_moves.MinMover( mm, scorefxn_low, min_type, tol,
True )
80 starting_p_centroid = Pose()
81 starting_p_centroid.assign( p )
83 print "building random loop conformation with ideal bond lengths, bond angles,"
84 print "and omega angles using KIC",
86 kic_mover.set_idealize_loop_first(
True )
87 kic_mover.set_pivots( loop_begin, loop_cut, loop_end )
89 for i
in range( MAX_KIC_BUILD_ATTEMPTS ):
90 print "\n attempt %d..." %i,
93 if kic_mover.last_move_succeeded():
95 kic_mover.set_idealize_loop_first(
False )
99 print "Could not complete initial KIC loop building in %d attempts. Exiting" \
100 %MAX_KIC_BUILD_ATTEMPTS
103 linmin_mover.apply( p )
105 print "centroid stage loop KIC remodeling"
110 gamma = math.pow( ( final_temp/init_temp ),( 1.0/( outer_cycles*inner_cycles ) ) )
112 mc = MonteCarlo( p, scorefxn_low, kT )
114 for i
in range( 1,outer_cycles+1 ):
117 for j
in range( 1, inner_cycles+1 ):
119 mc.set_temperature( kT )
120 kic_start = randrange( loop_begin, loop_end - 1 )
121 kic_end = randrange( kic_start+2, loop_end+1 )
122 middle_offset = ( kic_end - kic_start ) / 2
123 kic_middle = kic_start + middle_offset
124 kic_mover.set_pivots( kic_start, kic_middle, kic_end )
125 kic_mover.set_temperature( kT )
127 linmin_mover.apply( p )
130 rms = loop_rmsd( p, starting_p, my_loops )
131 print "centroid stage loop rmsd to starting loop: %f" %rms
134 print "high-res KIC refinement"
135 to_fullatom.apply( p )
136 recover_sidechains.apply( p )
139 loop_refine = LoopMover_Refine_KIC( my_loops )
140 loop_refine.apply( p )
143 print "outputting decoy test_kic.pdb"
144 p.dump_pdb(
"test_kic.pdb" )
BooleanOptionKey const exit("options:exit")
void init()
set global 'init_was_called' to true