Back to TaskOperations page.
JumpSelectors select a subset of Jumps from the FoldTree of a Pose. Their apply() method takes a Pose and returns a JumpSubset (a utility::vector1< bool >). This vector1 will be as large as there are jumps in the input Pose, and its ith entry will be "true" if jump i has been selected.
The most common way of using a JumpSelector is with a MoveMapFactory where you can construct a MoveMap that allows some jumps to minimize while keeping other jumps fixed. They can also be used to select residues, e.g. with the JumpDownstreamSelector or the JumpUpstreamSelector (coming soon).
JumpSelectors can be declared in their own block, outside of the TaskOperation block. For example:
<JUMP_SELECTORS>
<JumpIndex name="jump1" jump="1"/>
<Interchain name="interchain"/>
</JUMP_SELECTORS>
Some JumpSelectors can nest other JumpSelectors in their definition; e.g.
<JUMP_SELECTORS>
<Or name="interchain_and_jump1">
<JumpIndex jump="1"/>
<Interchain/>
</Or>
</JUMP_SELECTORS>
In this case, the documented structure of the Or JumpSelector will be stated as
<Or name=(%string)>
<(Selector)/>
</Or>
With the <(Selector)> subtag designating that any JumpSelector can be nested inside it,
including an Or selector (if you so desired).
<Not name="(&string)" selector="(&string)">
or
<Not name="(&string)">
<(Selector) .../>
</Not>
<Not name="all_but_jump2">
<JumpIndex jump="2"/>
</Not>
any JumpSelector can be defined as a subtag of the Not selector. You cannot, however, pass the subselector by name except by using the "selector" option.<And name="(&string)" selectors="(&string)">
<(Selector1)/>
<(Selector2)/>
...
</And>
<Or name="(&string)" selectors="(&string)">
<(Selector1)/>
<(Selector2)/>
...
</Or>
<JumpIndex jump="(&int)"/>
<Interchain/>
<JumpForResidue name="chainb_jump" residue_selector="chainB" allow_multiple_results="true"/>
residue_selector
: We will select the jumps that build the residues selected by this residue selectorallow_multiple_results
: If false, we will assert that every residue passed in is built by the same jump <ExclusivelySharedJumpSelector name="name" residue_selector="sele"/>
Example:
<ROSETTASCRIPTS>
<RESIDUE_SELECTORS>
<Chain name="sele" chains="1,3"/>
</RESIDUE_SELECTORS>
<MOVERS>
<EnsureExclusivelySharedJumpMover name="ensure_jump" residue_selector="sele"/>
</MOVERS>
<JUMP_SELECTORS>
<ExclusivelySharedJumpSelector name="js" residue_selector="sele"/>
</JUMP_SELECTORS>
<RESIDUE_SELECTORS>
<JumpDownstream name="downstream" jump_selector="js"/>
</RESIDUE_SELECTORS>
<SIMPLE_METRICS>
<SelectedResiduesPyMOLMetric name="starting_pymol_selection" residue_selector="sele" custom_type="start"/>
<SelectedResiduesPyMOLMetric name="final_pymol_selection" residue_selector="downstream" custom_type="final"/>
</SIMPLE_METRICS>
<PROTOCOLS>
<Add mover_name="ensure_jump"/>
<Add metrics="starting_pymol_selection,final_pymol_selection" />
</PROTOCOLS>
</ROSETTASCRIPTS>