OK, I figured out what the problem was. My OS installation has python3.4 as the default interpreter. Thus, to properly parallelize the job, I need to create it with
j = job(modeller_path='modpy.sh python2.7 /usr/bin/modslave.py', host='localhost')
which is the way I normally run modeller. Now it works properly. Also, thanks for the suggestion to drop SOAP and just use it later to score the models at the end!
> From: Modeller Caretaker firstname.lastname@example.org > Sent: 24 October 2016 17:15 > To: Del Genio, Charo; email@example.com > Subject: Re: [modeller_usage] Unable to run parallel job > > That's odd. I don't see anything obviously wrong with your script. But > the master process communicates with the slaves over the network, so may > be having trouble establishing a connection. You can try using > host='localhost' as a job() parameter. See > https://salilab.org/modeller/9.17/manual/node459.html > > I don't think soap_protein_od has ever been tried in a parallel job > before. I can't think of an obvious reason why it wouldn't work, > although note that each Modeller task runs in a separate process (there > is no shared memory) so at best you'll end up with 16 copies of the SOAP > library in memory. You could certainly run out of memory since even one > copy of this library is quite large. You'd probably be better off > skipping this assessment method here and instead rescoring your final > models with it in serial once the job has finished.