6 from random
import randint
7 from os.path
import exists
9 from append_data
import *
14 import rosetta.core.scoring.solid_surface
15 import rosetta.core.scoring.constraints
18 from surf_param
import *
19 from constraints
import *
24 print "Creating Ab initio instance..."
25 print ">> Loading fragment files..."
30 print ">> Setting up movemap..."
32 self.movemap.set_bb(
True)
33 self.movemap.set_chi(
False)
37 print ">> Setting up ClassicAbinitio mover..."
40 self.abinitio.set_score_weight(rg, 0.0)
45 self.
score_low = create_score_function(
"RS_centroid.wts")
47 self.score_low.show(pose)
48 print ".............Abinitio starting................"
49 self.abinitio.init(pose)
50 self.abinitio.apply(pose)
51 print "................Abinitio done................."
58 return self.__class__.__name__
69 print "Creating centroid relax instance..."
70 print ">> Loading score function..."
71 self.
score_low = create_score_function(
"RS_centroid.wts")
77 self.movemap.set_bb(
True)
82 print ">> Setting up small and shear movers..."
85 self.small_mover.angle_max(self.
max_angle)
93 self.shear_mover.angle_max(self.
max_angle)
100 print ">> Setting up trial movers..."
125 print ">> Starting centroid relaxation..."
127 self.score_low.show(pose)
128 self.mc.recover_low(pose)
129 self.shear_trial.apply(pose)
130 self.small_rep.apply(pose)
132 self.mc.show_counters()
133 self.mc.recover_low(pose)
134 print ">> Finished centroid relaxation."
140 return self.__class__.__name__
148 def __init__(self, score_high, score_pack, std_scorefxn, nosmallshear):
149 print "Creating full atom relax instance..."
150 print ">> Initializing variables..."
206 self.
set_movemap(pose.total_residue(), pose.num_jump() + 1)
227 self.small_mover.angle_max(
'H',angle/3)
228 self.small_mover.angle_max(
'E',angle/2)
229 self.small_mover.angle_max(
'L',angle)
241 print ">> Loading surface vectors..."
256 self.score_high.set_weight(atom_pair_constraint, weight)
257 self.score_high.set_weight(dihedral_constraint, weight)
261 print ">> Setting up surface energy..."
263 surfe = core.scoring.solid_surface.SurfaceEnergies()
264 surfe.set_total_residue(pose.total_residue())
265 surfe.set_residue_range_not_surface(pose.num_jump() + 1, pose.total_residue())
266 pose.set_new_energies_object(surfe)
271 print ">> Setting up movemap..."
273 self.
movemap = rosetta.MoveMap()
274 self.movemap.set_bb(
False)
275 self.movemap.set_chi(
False)
279 self.movemap.set_bb(residue,
True)
280 self.movemap.set_chi(residue,
True)
285 self.movemap.set_jump(self.
protStart - 1,
True)
288 print ">> Setting up small and shear movers..."
291 self.small_mover.angle_max(self.
max_angle)
296 self.shear_mover.angle_max(self.
max_angle)
304 print ">> Setting up trial movers..."
308 self.
set_movemap(pose.total_residue(), pose.num_jump() + 1)
337 print ">>> Updating min mover types..."
338 self.smallmin_mover.min_type(minmover)
339 self.shearmin_mover.min_type(minmover)
343 print ">>> Move protein onto surface..."
349 self.slide_into_contact.apply(pose)
355 print ">>> Moving protein away from surface..."
358 self.trans_mover.step_size(50)
359 self.trans_mover.apply(pose)
362 print ">>> Randomizing protein position..."
370 self.
random_mover = RigidBodyRandomizeMover(pose, pose.num_jump(), partner_downstream)
371 self.random_mover.apply(pose)
378 print ">>> Reading constraints..."
397 print ">> Setting Side-chain packer task..."
399 self.task.restrict_to_repacking()
400 self.task.or_include_current(
True)
402 print ">> Setting repacking range..."
403 for r
in range(1, pose.total_residue()+1):
404 if r < pose.num_jump() + 1:
406 self.task.nonconst_residue_task(r).prevent_repacking()
409 self.task.nonconst_residue_task(r).restrict_to_repacking()
415 if self.
task is None:
420 self.full_repack.apply(pose)
424 # Followed by dfp min with only chi flexible
425 if self.chi_mm is None:
426 self._setChimap(pose)
428 chi_minmover = rosetta.MinMover(self.chi_mm, self.score_pack, "dfpmin_armijo", self.tolerance, True)
429 chi_minmover.apply(pose)
430 print "After chi minmover", #self.score_high.show(pose)
435 self.chi_mm.set_bb(
False)
436 self.chi_mm.set_chi(
False)
437 for residue
in range(pose.num_jump() + 1, pose.total_residue() + 1):
438 self.chi_mm.set_chi(residue,
True)
444 self.rt_min.apply(pose)
449 print ">>> Dock MCM protocol..."
452 self.dockMCM.apply(pose)
475 print ">>> Small/shear refinements outer cycle..."
476 self.min_seq.apply(pose)
481 print ">>> Small/shear refinements inner cycles..."
482 self.inner_min_rep.apply(pose)
485 self.mc.recover_low(pose)
488 if self.
state ==
"ads":
509 return self.__class__.__name__
def set_constraints_weight