[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] Doubts regrading implementing parallel job on mutate_model.py optimization step



Dear All,

I have tried to implement parallel job on mutate model optimization steps
where I selected 457 atoms for optimization (I am doing this because of
implement our own objective) and to do this I added the following lines in
Mutate_Model.py:

from modeller.parallel import *
j = job()
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
j.queue_task(optimize(s,sched))
j.queue_task(refine(atmsel))
j.run_all_tasks()

I am not sure I am doing this in correct way but I am getting the
following errors:

Running 4 tasks on 4 slaves
/usr/bin/python2.7 /usr/lib/modeller9.14/bin/modslave.py -slave
172.16.35.74:48622:0:TPLDZNFC >& mutate_model.slave0
/usr/bin/python2.7 /usr/lib/modeller9.14/bin/modslave.py -slave
172.16.35.74:48622:1:INNJBKXG >& mutate_model.slave1
/usr/bin/python2.7 /usr/lib/modeller9.14/bin/modslave.py -slave
172.16.35.74:48622:2:XZYKJCXC >& mutate_model.slave2
/usr/bin/python2.7 /usr/lib/modeller9.14/bin/modslave.py -slave
172.16.35.74:48622:3:XJXTJMBR >& mutate_model.slave3
Traceback (most recent call last):
  File
"/comptes/invite-u/PycharmProjects/untitled/3O26_050716_144858/R12H_A102C_F104A/mutate_model.py",
line 104, in <module>
    j.run_all_tasks()
  File "/usr/lib/python2.7/dist-packages/modeller/parallel/job.py", line
156, in run_all_tasks
    for task in self._finish_all_tasks():
  File "/usr/lib/python2.7/dist-packages/modeller/parallel/job.py", line
189, in _finish_all_tasks
    task = self._process_event(obj, s)
  File "/usr/lib/python2.7/dist-packages/modeller/parallel/job.py", line
201, in _process_event
    slave.run_task(self.tasks.pop(0))
  File "/usr/lib/python2.7/dist-packages/modeller/parallel/slave.py", line
52, in run_task
    for transfer in task.input_files:
AttributeError: 'NoneType' object has no attribute 'input_files'
Identified slave <Slave on localhost>


My SCRIPT:
----------
import sys
import os
from modeller import *
from modeller.optimizers import molecular_dynamics, conjugate_gradients
from modeller.automodel import autosched
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())

def optimize(atmsel, sched):
    for step in sched:
        step.optimize(atmsel, max_iterations=200, min_atom_shift=0.001)
###########################################
    j.queue_task(refine(atmsel))
##############################################
    #refine.use_parallel_job(j)
    cg = conjugate_gradients()
    cg.optimize(atmsel, max_iterations=200, min_atom_shift=0.001)

def refine(atmsel):
    md = molecular_dynamics(cap_atom_shift=0.39, md_time_step=4.0,
                            md_return='FINAL')

    init_vel = True
    for (its, equil, temps) in ((200, 20, (150.0, 250.0, 400.0, 700.0,
1000.0)),
                                (200, 600,
                                 (1000.0, 800.0, 600.0, 500.0, 400.0,
300.0))):
        for temp in temps:
            md.optimize(atmsel, init_velocities=init_vel, temperature=temp,
                         max_iterations=its, equilibrate=equil)
            init_vel = False

def make_restraints(mdl1, aln):
   rsr = mdl1.restraints
   rsr.clear()
   s = selection(mdl1)
   for typ in ('stereo', 'phi-psi_binormal'):
       rsr.make(s, restraint_type=typ, aln=aln, spline_on_site=True)
   for typ in ('omega', 'chi1', 'chi2', 'chi3', 'chi4'):
       rsr.make(s, restraint_type=typ+'_dihedral', spline_range=4.0,
                spline_dx=0.3, spline_min_points = 5, aln=aln,
                spline_on_site=True)


log.verbose()
env = environ(rand_seed=int(-4000))
env.io.hetatm = True
env.edat.dynamic_sphere=False
env.edat.dynamic_lennard=True
env.edat.contact_shell = 4.0
env.edat.update_dynamic = 0.39

env.libs.topology.read(file='$(LIB)/top_heav.lib')

env.libs.parameters.read(file='$(LIB)/par.lib')

mdl1 = model(env, file = "3O26")
ali = alignment(env)
ali.append_model(mdl1, atom_files= "3O26.pdb", align_codes= "3O26")
s1=selection(mdl1.chains['A'].residues['104'])
s1.mutate(residue_type='ALA')
s2=selection(mdl1.chains['A'].residues['102'])
s2.mutate(residue_type='CYS')
s3=selection(mdl1.chains['A'].residues['12'])
s3.mutate(residue_type='HIS')
ali.append_model(mdl1, align_codes="3O26")
mdl1.clear_topology()
mdl1.generate_topology(ali[-1])

mdl1.transfer_xyz(ali)

mdl1.build(initialize_xyz=False, build_method='INTERNAL_COORDINATES')

mdl2 = model(env, file="3O26.pdb")

mdl1.res_num_from(mdl2,ali)

mdl1.write(file="3O26"+'ALA'+'104'+'CYS'+'102'+'HIS'+'12'+"A"+'.tmp')
mdl1.read(file="3O26"+'ALA'+'104'+'CYS'+'102'+'HIS'+'12'+"A"+'.tmp')

make_restraints(mdl1, ali)
mdl1.env.edat.nonbonded_sel_atoms=1
sched = autosched.loop.make_for_model(mdl1)

s =
selection(mdl1.atoms['CA:'+'104'+':'+'A'].select_sphere(10),mdl1.atoms['CA:'+'102'+':'+'A'].select_sphere(10),mdl1.atoms['CA:'+'12'+':'+'A'].select_sphere(10)).by_residue()

mdl1.restraints.unpick_all()
mdl1.restraints.pick(s)

s.energy()

s.randomize_xyz(deviation=100)

mdl1.env.edat.nonbonded_sel_atoms=2
#######################################
j.queue_task(optimize(s,sched))
#######################################

mdl1.env.edat.nonbonded_sel_atoms=1

#########################################
j.queue_task(optimize(s,sched))
#########################################
s.energy()

#######################################
j.run_all_tasks()
####################################""

atmsel = selection(mdl1.chains["A"])
score = atmsel.assess_dope()
mdl1.write(file="/comptes/invite-u/PycharmProjects/untitled/3O26_050716_144858/R12H_A102C_F104A/R12H_A102C_F104A.MM9999.pdb")
os.remove("3O26"+'ALA'+'104'+'CYS'+'102'+'HIS'+'12'+"A"+'.tmp')


Kindly correct me If I am wrong and let me know that how to do this in
correct way.

Thanking you in advance