Hi,
I know there have been a million different and redundant questions asked concerning parallel jobs using modeller. However, after thoroughly reading through most of them (and the manual pages concerning parallel jobs) I still cannot run a modeller parallel job.
I understand that in order to run parallel modeller one has to have the python2.3 modules.
I have installed Python2.3.6 as an alternative install on my RHEL machine (the default Python for my machine is 2.7.5). However even after installing Python2.3.6 I still get the same error (no module named socket, although Python2.3.6 has the socket module --python2.7.5 does not--).
Adding a shebang with the python2.3 location in the beginning of the input changes nothing.
Here is my input:
from modeller import *
from modeller.automodel import *
from modeller.parallel import *
# Use 4 CPUs in a parallel job on this machine
j = job()
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
log.verbose()
env = environ()
env.io.atom_files_directory = ['.', './template_struc']
# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms
class MyLoop(dopehr_loopmodel):
# This routine picks the residues to be refined by loop modeling
def select_loop_atoms(self):
# Two residue ranges (both will be refined simultaneously)
return selection(self.residue_range('278:', '284:'))
a = MyLoop(env,
alnfile = 'alignment.ali', # alignment filename
knowns = '2cjf_0', # codes of the templates
sequence = '2cjf', # code of the target
loop_assess_methods=assess.DOPE) # assess each loop with DOPE
a.starting_model= 1 # index of the first model
a.ending_model = 1 # index of the last model
a.loop.starting_model = 1 # First loop model
a.loop.ending_model = 1000 # Last loop model
a.loop.assess_methods=(assess.DOPE, assess.GA341, assess.normalized_dope)
a.use_parallel_job(j) # Use the job for model building
a.make() # do modeling and loop refinement