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

[modeller_usage] knots in loops and serious steric clashes



Dear all, I am trying to obtain models of unresolved long loops also up to 60 aas in dimeric protein structures. What I do is that I first obtain a full model with the automodel (or loopmodel) routine starting from the incomplete pdb structure
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
 
ZjQcmQRYFpfptBannerEnd

Dear all,

I am trying to obtain models of unresolved long loops also up to 60 aas in dimeric protein structures. What I do is that I first obtain a full model with the automodel (or loopmodel) routine starting from the incomplete pdb structure and the alignment with the full sequence and then refine each loop one by one with dope-hr_loopmodel starting from the previous step best obtained model. 

However, I consistently observe that most of the resulting loop models (sometimes also scored with favourably low negative DOPE, DOPE-HR and molpdf scores) present knots or literally 'enter into' and collapse with the rest of the protein.

Here are examples of the employed scripts for loop selection and refinement.

1) Create_fullmodel.py

from modeller import *
from modeller.automodel import *

log.verbose()
env = Environ()
env.io.atom_files_directory = ['.', '../atom_files']
env.io.hetatm = True

class MyModel(automodel):
         def select_atoms(self):
        # Here only the second loop atoms are allowed to move
       return selection( self.residue_range('216:A', '277:A'),
                 self.residue_range('907:B', '970:B'), self.residue_range('1285:B', '1313:B'))
 
a = MyModel(env, alnfile = 'sequences.ali',
              knowns = 'protein_template', sequence = 'full_protein')  
             
a.starting_model= 1
a.ending_model  = 1

a.make()

2) Myloop.py:

from modeller import *
from modeller.automodel import *

class MyLoop(dopehr_loopmodel):
    def select_atoms(self):
         return selection(self.residue_range('907:B', '970:B'))
    def select_loop_atoms(self):
        return selection(self.residue_range('907:B', '970:B'))


3) loop_refinement.py

from modeller import *
from modeller.automodel import *
from modeller.parallel import *
from MyLoop_3 import MyLoop

j = job()

j.append(local_slave())
j.append(local_slave())
j.append(local_slave())
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 = ['.', '../atom_files']
env.io.hetatm = True

a = MyLoop(env, inimodel='protein_filled.M3.L1M14.L2M6',          sequence='protein_filled.M3.L1M14.L2M6', 
           loop_assess_methods=(assess.DOPE,
                               assess.DOPEHR,
                               assess.normalized_dope))
             

a.loop.starting_model = 1
a.loop.ending_model   = 100

a.loop.library_schedule = autosched.slow
a.loop.max_var_iterations = 300

a.loop.md_level = refine.very_slow

a.loop.repeat_optimization = 2

a.use_parallel_job(j)
 
a.make()

Why does this happen? Do you have any suggestions for improving my workflow?

Thank you in advance,

Federica

modeller-usage mailing list; unsubscribe