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!!