Back to Mover page.


(This is a devel Mover and not available in released versions.)

For a more common and public way of creating loops, use Remodel. Here is a link to the tutorial:

There is also a LoopBuilderMover, documentation of which can be found here: LoopBuilderMover

!!!!WARNING!!!!! This code is under very active development and is subject to change

Build loops to connect elements of protein structure. Protocol is broken into two independent steps - addition of loop residues to the pose, followed by closing the loop. These tasks are performed by LoopInserter and LoopCloser respectively (both are mover subclasses).


LoopInserters are responsible for building loops between residues loop_anchor and loop_anchor+1

  • LoophashLoopInserter

    <LoophashLoopInserter name=(&string) loop_anchor=(&integer) loop_sizes=(&integer) modify_flanking_regions=(1/0) />
    • loop_anchor: Starting residue number for loop inserter, for example with 'loop_anchor=18', it will insert loops between loop_anchor (=18) and loop_anchor+1 (=19). Multiple loop_anchors are possible like 'loop_anchor=18, 35, 67', when there are 3 gaps. Residue numbers will be automatically renumbered as the mover runs.
    • loop_sizes: Size of newly added loop, for example with 'loop_sizes=2,3,4,5', it will add loops of size 2~5
    • max_torsion_rms: Maximum torsion rmsd for the pre and post-loop segments comparison between old and new (use generous amount to allow the non-anchor side to be left open wide. ex. 100)
    • min_torsion_rms: Minimum torsion rmsd for the pre and post-loop segments comparison between old and new
    • modify_flanking_regions: If "modify_flanking_regions=1", apply the torsions of the loophash fragment to residue lh_fragment_begin in the pose (default is 0 which applies the torsions of the loophash fragment to residue loop_anchor()+1 in the pose).
    • num_flanking_residues_to_match: Number of residues before and after the loop to be built to calculate geometric compatibility (default=3).
    • max_lh_radius: Maximum radius whithin which loophash segments are looked for
  • FragmentLoopInserter: Attempt to find single fragments that have ends with low-rmsd to the flanking residues of the loop to build.

    <FragmentLoopInserter name=(&string) loop_anchor=(&int)/>


LoopClosers are responsible for closing the recently build loops. These are just wrappers of common loop closure algorithms (i.e. KIC and CCD) built into the LoopCloser interface (as of 04/18/2013, CCD is recommended for this application).

  • CCDLoopCloser - Use CCD to close recently built loop

    <CCDLoopCloser name=(&string) />
    • max_ccd_moves_per_closure_attempt: Maximum ccd moves per closure attempt (usually max_ccd_moves_per_closure_attempt=10000 is enough).
    • max_closure_attempts: Maximum number of attempts to close. Obviously high number like 100 would increase successful closing probability.


  • LoopCreationMover

    <LoopCreationMover name=(&string) loop_closer=(&LoopCloser name) loop_inserter=(&LoopInserter name) />
    • attempts_per_anchor: If 'attempts_per_anchor=10', it attempts to close per anchor 10 times. (recommended to use but attempts_per_anchor=0 by default)
    • dump_pdbs: If "dump_pdbs=1", dump pdbs during after each addition residues, refinement, and closing of the loop
    • filter_by_lam (filter by loop analyzer mover): If "filter_by_lam=1", filter out undesirable loops by [total_loop_score=rama+omega+peptide_bond+chainbreak (by this loop) <= lam_score_cutoff_ (= 0 by default)]. (recommended to use but filter_by_lam=0 by default)
    • include_neighbors: If "include_neighbors=1", include loop neighbors in packing/redesign, then calculate them
    • loop_closer: A name of loop_closer, for example with 'loop_closer=ccd', it uses <CCDLoopCloser name=ccd/>
    • loop_inserter: A name of loop_inserter, for example with 'loop_inserter =lh', it uses <LoophashLoopInserter name=lh/>


With loop_sizes=2,3,4,5, in loop inserter, loop_sizes in ResourceOptions should be 8,9,10,11 (since LOOP CREATION MOVER uses 3 (default) residue forward and 3 residues backward additionally to calculate geometric compatibility).

                <LoopHashLibraryOptions tag="lh_lib_options" loop_sizes="8,9,10,11"/>

See Also