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

[modeller_usage] questions on loopmodel in the presence of a ligand



We have been using the loop modeling functionality (loopmodel class of modeller, mostly 8v2 but recently upgraded to 9v8) to add loops onto our receptor.

We now have a ligand docked in the binding site, and it looks like it could occlude/interact with some conformations of a
particular loop, so we would like to repeat the calculations, e.g. run loopmodel, but in the presence of the ligand.

I have included the ligand as a BLK residue, e.g. in the pdb file the ligand's atoms are labeled HETATM and in the
script used env.io.hetatm = True

The script is below and it runs sucessfully. From this i can generate loops that seem to recognize that the ligand is there
however I am not clear on the following and was hoping to get the following questions answered?

1)How (using default settings, for example in the script below) does modeler decide what van der waal radii to assign the atoms in the ligand?

I read about the loops and electrostatics/H's in http://salilab.org/archives/modeller_usage/2005/msg00244.html which is pretty
old, so I am not 100% certain things have not changed, but assuming they have not:

2)Given that the loop modeling routine uses a statistical potential, and is not necessarily parameterized to work well with
electrostatics, does it assign default charges to the ligand?

3)Given that the loop modeling routine is not parameterized for H's. Is it better to remove the H atoms from the ligand as well?

Thanks!
D. Lynch

=== script to model loops in presence of ligand ===
=== ligand in with_lig.pdb, with no H atoms and all heavy atoms labeled as HETATM ===

from modeller.automodel import *

log.verbose()

class myloop(loopmodel):

# This routine picks the residues to be refined by loop modeling
    def select_loop_atoms(self):
        # 10 residue insertion
        return selection(self.residue_range('28:A', '46:A'))

    def special_patches(self, aln):
        self.patch(residue_type='DISU', residues=(self.residues['29:A'], self.residues['36:A']))

env = environ()
env.io.hetatm = True
env.io.atom_files_directory = './:../atom_files'

m = myloop(env,
           inimodel = '../bin/with_lig.pdb',
           sequence = 'output')
m.loop.starting_model= 1
m.loop.ending_model  = 5

m.loop.md_level = refine.very_slow
m.repeat_optimization = 2

m.make()