Still a work in progress.
Jolter is a rebuild script that's designed, as the name suggests, to jolt the protein out of a local minimum (that's the intent anyway), although it does seem very useful as a general purpose rebuild script to use in the middle game.
It successively rebuilds /remixes alternate structural elements in the protein, being prepared to accept a small loss in score after the usual quota of shakes and wiggles that normally follow a rebuild (gains are also accepted, needless to say).
The script never terminates: it's best run overnight or at least for a couple of hours. After cancelling the script you can start from the existing position, or, since the score meanders up and down when running the script, reset best.
The defaults seem to work pretty well, although it's necessary to check that remix is enabled for the current puzzle: if not uncheck.
Get list of secondary structure elements (helix, sheet, loop)
For each element (going alternately)
Repeat 4 times (default value of N rebuilds below)
Shake/Wiggle etc (Post Rebuild below)
Take best scoring position from above
Wiggle at low CI/wiggle
If score is better than the current score minus the rejection threshold then
make this the new current position
Min residue: max residue
Used to define the region of the protein to be rebuilt. Any secondary structure element that lies at least partially within this region will be processed.
Additionally, an element that contains a residue with a frozen backbone will not be processed.
Further control over which elements are to be rebuilt is provided by the Rebuild helices (etc) checkboxes below.
How many times to rebuild each structure. Reducing this value may result in a more structurally diverse result, albeit at the likely expense of a poorer score.
Selects remix rather than rebuild: enabled by default.
The actions to be taken after each rebuild, The default value for non-design puzzles is (Shake/Wiggle/Shake/Wiggle) but for design puzzles number the default action is (Shake/Wiggle/Mutate/Wiggle). There's an option (4) for design puzzles to just do mutation on the two best scoring sequences: useful since it avoids doing expensive mutations on unpromising poses.
Specifies how big a loss in score is permissible. The larger the value the greater the change in structure that will be allowed at the possible expense of score.
Setting this to zero means that only gains will be permitted. I suspect that the default value of 5 is too low and that something higher would work well in practise.
(See also under Change threshold below)
Rebuild helices, Rebuild sheets, Rebuild loops
Control over which structural elements to rebuild. Irrelevant if Random sections in options is selected.
Helix spacer, Sheet spacer, Loop spacer
When rebuilding, specifies the length of a spacer at either end of the structural element that will be included in the rebuild. So if the value of Helix spacer were 3, then when working on a helix from 63 to 75, the actual rebuild length would be 60 to 78. I've found the most useful values to be 0 or 1 for loops and sheets and 3 or 4 for helices. It probably depends on whether remix or rebuild is selected: if the former helices won't be rebuilt at all.
Ignored if Random sections in options is selected.
If set to 2, toggles filters off except when determining the score. For better performance on slow design puzzles. If set to 3 it looks at the filter score only. Can't remember why I put that in there.
Post sw threshold
This is an optimization to prevent unnecessary processing being done subsequent to rebuilds which are clearly going nowhere. If Post Rebuild above is set to either of the last two positions, then, after the first Shake/Wiggle, further processing is only done if the score is lower than that of the current starting pose by less than the Post sw Threshold.
The default value of 200 works quite well but at script termination, some performance data is printed out to aid in determining a good value for this parameter. Of the rebuilds that were processed (i.e. passed this threshold test), the best gains from the subsequent Shake (or Mutate)/ Wiggle are printed. If these values are close to the rejection threshold, then the threshold should probably be increases: on the other hand if they are all much lower the rejection threshold can probably be safely reduced.
Only mutate those residues that within a sphere of this radius from the section being rebuilt (actually the union of three spheres centred on the start, middle and end of the section)
Min loop length
Will only rebuild/remix loops of this length or higher. So 2-loop residues that join strands in sheets won't be rebuilt unless the loop spacer value is set to 1 or higher.
Secondary structures can be viewed as lyeing sequential along the protein. Rather than go though them consecutively (although this could be done by setting the value of ss_stepper to 1), it seems better to mix things up by allowing this gap between secondary structure elements.
Convert to loops
Will temporarily convert the segment sequence to loops before rebuilding.
Rather than rebuild secondary structure elements, it will select random sequences within the region defined by min and max residue.
Used in conjunction with Random sections to select the length of sequence.
The idea here is to dynamically change the maximum loss threshold during the script. The thinking is to take a protein that's stuck; run jolter with a reasonably high loss threshold (maybe 15) for a bit; then, when its been jolted out of a possible local minimum, change the threshold to zero so no more reductions in score are permitted and it runs like a regular rebuilder.
New maximum loss
Relevant iff Change threshold above is set. Will likely be 0 could be set to something else I suppose.
Relevant iff Change threshold above is set. The number of hours the script will run until the threshold change takes place.
New maximum loss
Relevant iff Change threshold above is set. How much loss is tolerated before the threshold change takes place (or'd with the time threshold criterion: i.e. the change will be made if either condition is met)