Back to Recipes Homepage
recipe picture
Recipe: Rebuild Worst Spherical Stabilize
Created by GaryForbis 70 1873
Your rating: None Average: 4.6 (29 votes)


Name: Rebuild Worst Spherical Stabilize
ID: 100274
Created on: Mon, 11/24/2014 - 01:08
Updated on: Sat, 11/29/2014 - 02:45

Rebuild Worst Scoring v1.2 Segment then use a Spherical Stabilization routine on the local segments.

Best For


Joined: 08/06/2010
Groups: Contenders
Using Rebuild Worst Spherical Stablize

This recipe is primarily a test bed for administrative routines around the functionality.

It is best for late in the game but can be use in middle game.

Version 1.0 Updated on: Mon, 11/24/2014 - 01:08
The option validation routines are stubs, don't try to enter bad numbers.
Several nifty options haven't been implemented.

Next version 1.1 will have:
Options: all Loops, only rebuild selected, use frozen as selected, leave frozen during run, leave bands enabled during run.

Joined: 08/06/2010
Groups: Contenders
I've added the features I said I would

Version 1.1 Thu, 11/27/2014 - 00:21

  If it detects secondary structures it asks if you want to run all loops.
  If it detects selected segments it asks if you want to limit to them.
  If it detects frozen but not selected it asks if you want to limit to them.
  If it detects frozen it asks if you want to leave segments frozen.
  If it detects enabled bands it asks if you want to leave them enabled.

It returns frozen, bands, secondary structure, and selection as it found them.

This is primarily a late game script. I've found a larger sphere, 15 to 20, and higher low ci, .2 to .5 can produce some results.

Joined: 08/10/2008
Groups: None
One suggestion

Very effective script! Thanks for sharing this.

One thing I've noticed, though, is that it doesn't recalculate the scores when starting over in the list. This means that if, for example, it makes great gains on the first segment, such that it's no longer the worst, it will still start with it every time it reaches its goal and starts over.

Joined: 08/06/2010
Groups: Contenders
Thanks. A followup and what's going to be or might be in v1.2

You're right. Thanks. I'll fix this logic:

function rwss.SphericalStabilize(seg)
  -- the rest is administrative stuff about score keeping.
  local currentScore=current.GetEnergyScore()
  if currentScore > rwss.bestScore then
    rwss.bestScore = currentScore
    return true
    return false

offending line should be:

    rwss.scores = rwss.GetScores()

The table rwss.scores should have been getting updated every time there is a gain either during the rebuild or stabilizing function. This handles the case where segments switch place in the list during the cycle.

What you are seeing is that the same segment is still worst. There are three factors to reduce how often a segment is attempted to be rebuilt: 1) increase the number of successful rebuilds before clearing the table rwss.triedSeg; 2) increase the gain before a rebuild cycle is counted as successful; 3) increase the over all gain before clearing the table rwss.triedSeg.

In version 1.2 I will be adding logic to let you control the scoring function by subcomponents and/or delta relative to neighbor and/or sphere average.

The delta relative to neighbor will subtract the highest scoring seg+1 or seg-1 (if they exist) from the segment's score (i.e. segment score -5 and neighbor 5 would yield -10 score).

Sphere scoring will average the scores of the segments inside the sphere centered on the segment.

I currently do a wiggle all after the rebuild. I may change that to selecting the segment and the one on either side and doing a wiggle selected in bursts as long as it gains more than a certain number of points. There is something to be said for wiggling in bursts and checking the outcome but short bursts produces different behavior than the same number of cycles in a single wiggle.

I don't know if this complexity is worth it. I'll add what people request, including the local wiggle with freeze on either side as I borrowed from somewhere and put into gary Minima Finder years ago. For all I remember I may have developed from a mix of concepts in kawaga Repeat Settle and rav3n's wiggle routine in Lucky LWS.

Joined: 08/06/2010
Groups: Contenders
Version 1.2 Released


    fixed rebuild of rwss.scores.
    fixed when to display keep frozen check box.
    added alternate scoring functions.
    added ability to disable slow filters.

Helpful hints:

1.  You can observer more of what's going on by using the selection interface
    and watching the recipe output.
2.  The lower the low CI the more the sphere distorts the fold.
    Use .3 to .5 CI and larger radius, 15 to 20, to start.  Observe how close the recovery and adjust.
3.  I've added disable slow filters during the settling after rebuild but it's probably not worth it.
4.  Scoring sphere tends to score nearby segments similarly.
5.  Scoring difference from neighbor focuses on segments relatively bad compared to their neighbors.
6.  The wiggles at low CI are twice the wiggles at CI = 1 and you specify the wiggles at CI 1.
    Other recipes use 6.  Try different values to determine your preferences.
7.  If you have segments selected it will give you the option to only work on those segements.
8.  If you have segments frozen and none selected it will give you the option to work on those
    segments as if you selected them.
Joined: 09/24/2012
Groups: Go Science

I like the option of selecting froozen segments because i don't know how to select in original interface

Joined: 08/06/2010
Groups: Contenders
Quickfix 3.0 leaves segments selected when cancelled

I've waffled about how to handle the mix of selected and frozen.
I don't remember what I finally did. I'd have to check to find out.
I don't know what other recipes don't clean up. I know gary Rebuild Worst and gary Minima Finder fail to clean up when cancelled, heck they don't even restore recent best.

While I prefer the original interface most of the time I'm starting to switch back and forth between them. When one switches to the selection interface one loses selections one had in the original interface. One of the features of the selection interface is notes appear as bubbles. I was using a note I kept in segment 1 to store the selected options. I did a Quicksave to slot 90 then repeated this when a solution gained points. When I switched to the selection interface the note was plastered across the screen. I realized I had to clear the note after the Quicksave so it wasn't junking up the screen. I've thought about using this feature of the selection interface to show people the first 10 segments selected by a particular set of selection options. I may add that and saving/retrieving the options from one of the save slots to version 1.3. If I retrieve the settings I'll need to add a "reset defaults" button.

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