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
And here is my error:
Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 'import site' failed; use -v for traceback Traceback (most recent call last): File "backup.py", line 4, in ? from modeller.parallel import * File "/usr/lib/modeller9.15/modlib/modeller/parallel/__init__.py", line 1, in ? from modeller.parallel.job import job File "/usr/lib/modeller9.15/modlib/modeller/parallel/job.py", line 1, in ? import socket, random, os, select ImportError: No module named socket
On 10/20/15 3:29 AM, ashika torikora wrote: > I understand that in order to run parallel modeller one has to have the > python2.3 modules.
That is not correct. If you run Modeller with the mod9.15 script, that uses a built-in copy of Python 2.3, so it would only work if you also had the Python 2.3 modules available. But we generally don't recommend that these days (Python 2.3 is really really old). Run your scripts with the system "python" instead like any other Python script. If you installed the RPM (it looks from your traceback as if you have) then you are already good to go. If you installed the .tar.gz, then it will have told you how to set PYTHONHOME and LD_LIBRARY_PATH to make this work.
> 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--).
Every version of Python has the socket module, including Python 2.7.
Ben Webb, Modeller Caretaker