Is there a way of energy minimizing a loop while keeping the rest of the protein fixed using any of the Rosetta apps?
I don't want to do full scale CCD loop remodelling - just a simple energy gradient minimization or similar small scale relaxation of a loop conformation I already have. In the relax app there seems to be an option called -constrain_relax_segments but it doesn't seem to do what I want. I also don't think I want to do backrub moves either as I just want to find a local minimum.
thanks again for all the help!
I should clarify that I want to repack the sidechains followed by minimization, followed by repacking etc. I guess fastrelax does something like this.
What you want to do is not hard, but I don't think we have a standard method to do it. Just minimizing a loop will produce practically no change in its structure if it is already near a minimum (often the minimizer's changes are sub-PDB precision anyway so it's invisible). If it's not near a minimum due to a clash, just minimizing it can have strange effects and is not a great idea. So, I don't think anyone ever does it, so there's no code for it.
What I know you can do is run the loop modeling code in refine-only mode; if you pass "no" as an argument for the perturb step and something appropriate for the refine step, it will try only fullatom refinement.
If you want just minimizing and repacking, it might be a good opportunity to learn pyrosetta, I would guess this is really simple there. I know it's simple in C++, but my view of simple is sort of distorted...
in pseudocode (for c++ or python)
load loops object
set_loops_fold_tree(pose) (this sets the loop-style fold tree so that changes to not propagate into the protein core, see wang et al)
create movemap from loops
create minimizer object from movemap
create packertask/factory (from loops, from whatever?)
the fixbb app currently supports minimizing sidechains after packing (I think it does in 3.1, anyway; it will in 3.2 whose release is imminent). You can hack that to minimize the loop, too, although without the loop fold tree it will behave a little strangely (torsion changes will propagate leading to largeish motions at the termini)
If someone knows the easy way to do this, please post it!!
Bruno tells me
A) I'm wrong, and
B) there's an easy way to do this.
I think he said running loop modeling with JUST looprelax (no for all other options) will do this? Or maybe there's some flag to the looprelax executeable? Anyway, I asked him to post it here (or email me and I'll post it).
I have an easy way to do this.
Add the options below to your looprelax flag file:
The looprelax will do a initial repack and minimization followed by JUST 2 times of KIC perturbation and a final full repack.
This will make a small change of your loop backbone conformation, and you can generate 20 decoys or more and select the one which have the lowest energy or the minimal loop backbone changes.
B) I think loop_backrub_mover can refine your loops and make a smaller scale conformation changes of backbone than KIC/CCD, but it was not included in looprelax in Rosetta3.1.
Can I ask does the "looprelax" excutable still exist in rosetta_2014.30.57114 or above version?
I can only find "loopmodel" and I am not sure if they are the same thing.
I don't think there ever was an executable named "looprelax". There is a "looprelax" protocol in the "minirosetta" wrapper program, and that is equivalent to the "loopmodel" stand-alone program, though.
Hi R Moretti,
Thank you for clarifying this. :)
Another way of doing it is using the following combination of flags:
In principle this will produce rather conservative changes in the loop conformation by doing very conservative moves on the backbone.
Also it is important not to have the flag -loops::extended, otherwise you will start from an extended conformation.
thanks everyone for these tips.
I do realize this will produce very small changes but this is exactly what I want! This reason why is that I want to score and rank a number of different loop conformations. It is possible that a good loop model that is close to native may still score badly due to clashing atoms, etc, and so give a misleadingly bad score.