Back to Recipes Homepage
recipe picture
Recipe: Jolter 3.0
Created by spvincent 42 26
Your rating: None Average: 4.6 (28 votes)


Name: Jolter 3.0
ID: 102932
Created on: Sat, 10/27/2018 - 13:26
Updated on: Sat, 10/27/2018 - 20:26

See first comment.

Best For


spvincent's picture
User offline. Last seen 4 hours 50 min ago. Offline
Joined: 12/07/2007
Groups: Contenders
Still a work in

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.

Algorithm outline

Get list of secondary structure elements (helix, sheet, loop)

For each element (going alternately)
Repeat 4 times (default value of N rebuilds below)
Rebuild element
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.

N Rebuilds

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.

Use remix

Selects remix rather than rebuild: enabled by default.

Post Rebuild

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.

Maximum loss

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.

Score type

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.

Other options

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.

Sphere radius

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.

SS Stepper

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.

Random sections

Rather than rebuild secondary structure elements, it will select random sequences within the region defined by min and max residue.

Random length

Used in conjunction with Random sections to select the length of sequence.

Change threshold

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.

Time threshold

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)

Joined: 09/24/2012
Groups: Go Science
Maximum loss

I use a modified version with maximum loss able to be negative (to -100).

This is very useful for sketchbook puzzles or other strategies where you only want to accept big gains, discarding marginal gains.

I suggest you to embed this amendment in your original recipe.

Want to try?
Add to Cookbook!
To download recipes to your cookbook, you need to have the game client running.





Developed by: UW Center for Game Science, UW Institute for Protein Design, Northeastern University, Vanderbilt University Meiler Lab, UC Davis
Supported by: DARPA, NSF, NIH, HHMI, Amazon, Microsoft, Adobe, Boehringer Ingelheim, RosettaCommons