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 *
j= job()
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
log.verbose()
env = environ()
# 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:'))