|
The short answer is that your loops are way too long. I would expect reasonable results for loops up to perhaps 20 residues, but 60 is just too much conformational space to explore.
If you want to try it anyway, the loop modeling protocol starts by placing the loop atoms on a straight line between the loop termini. With a long loop, this simple strategy is likely to place some atoms inside the rest of the protein, and then the optimizer
will not be able to recover. You can change the way this initial model is created by overriding the build_ini_loop method:
If your starting structures look reasonable, then you could perhaps just have this method do nothing.
DOPE scores are just energies, so the absolute value doesn't mean very much. You should only use them to rank one loop model relative to another, not to determine if a loop is favorable.
Ben Webb, Modeller Caretaker
--
modeller-care AT ucsf.edu https://salilab.org/modeller/
Modeller mail list:
https://salilab.org/modeller/discussion_forum.html
From: Modeller usage list <MODELLER_USAGE AT LISTSRV.UCSF.EDU> on behalf of Federica Guarra <federica.guarra AT UNIPV.IT>
Sent: Wednesday, September 9, 2026 6:38 AM To: MODELLER_USAGE AT LISTSRV.UCSF.EDU <MODELLER_USAGE AT LISTSRV.UCSF.EDU> Subject: [modeller_usage] knots in loops and serious steric clashes
This Message Is From an External Sender
This message came from outside your organization.
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 modeller-usage mailing list; unsubscribe |