# Loop refinement of an existing model from modeller import * from modeller.automodel import * j = job(modeller_path=os.path.join(modellerPath, "/usr/lib/modeller9.11/bin/modslave.py") j.append(local_slave()) # 1 Processor j.append(local_slave()) # 2 Processors j.append(local_slave()) # 3 Processors j.append(local_slave()) # 4 Processors j.append(local_slave()) # 5 Processors j.append(local_slave()) # 6 Processors j.append(local_slave()) # 7 Processors j.append(local_slave()) # 8 Processors j.append(local_slave()) # 9 Processors j.append(local_slave()) # 10 Processors env = environ() # directories for input atom files env.io.atom_files_directory = ['.', '../atom_files'] # Create a new class based on 'loopmodel' so that we can redefine # select_loop_atoms (necessary) class MyLoop(loopmodel): # This routine picks the residues to be refined by loop modeling def select_loop_atoms(self): # One loop from residue 160 to 172 inclusive return selection(self.residue_range('160:', '172:')) m = MyLoop(env, inimodel='Q9Y478.B99990001', sequence='Q9Y478_Hbeta1', assess_methods=(assess.DOPE, assess.GA341)) m.loop.starting_model = 1 # index of the first loop model m.loop.ending_model = 100 # index of the last loop model # Very thorough VTFM optimization: m.library_schedule = autosched.fast m.max_var_iterations = 10000 # Thorough MD optimization: m.md_level = refine.slow # Repeat the whole cycle 2 times and do not stop unless obj.func. > 1E6 m.repeat_optimization = 2 m.max_molpdf = 1e6 m.use_parallel_job(j) # Use the job for model building m.make() # do homology modeling