Hi, I want to run the loop_refine.py for a parallel job,so I change loop_refine.py in the Tutorial example and build myloop.py in the same directory,but when I run loop_refine.py,I got the error: "Traceback <most recent all last>: File "D:\modeller\loop_modeling\loop_refine.py",line 42,in <module> sequence='pp2a'> #code of the target TypeError: this constructor takes no arguments"
Follow is my script:
---------------------loop_refine.py script----------------------- # Loop refinement of an existing model from myloop import MyLoop from modeller import * from modeller.automodel import * from modeller.parallel import *
# directories for input atom files env.io.atom_files_directory = './:../atom_files'
m = MyLoop(env, inimodel='pp2a-mult.pdb', # initial model of the target sequence='pp2a') # code of the target
m.loop.starting_model= 1 # index of the first loop model m.loop.ending_model = 1000 # index of the last loop model m.loop.md_level = refine.slow # loop refinement method; this yields # models quickly but of low quality; # use refine.slow for better models
m.use_parallel_job(j) m.make()
# Get a list of all successfully built models from a.outputs ok_models = filter(lambda x: x['failure'] is None, a.outputs)
# Rank the models by DOPE score key = 'DOPE score' ok_models.sort(lambda a,b: cmp(a[key], b[key]))
# Get top model m = ok_models[0] print "Top model: %s (DOPE score %.3f)" % (m['name'], m[key])
------------------myloop.py---------------------------------- # Create a new class based on 'loopmodel' so that we can redefine # select_loop_atoms (necessary) class MyLoop(): # This routine picks the residues to be refined by loop modeling def select_loop_atoms(self): # 10 residue insertion return selection(self.residue_range('300:', '309:'))