Icon representing a recipe

Recipe: Blue Fuse 2020

created by LociOiling

Profile


Name
Blue Fuse 2020
ID
103333
Shared with
Public
Parent
None
Children
Created on
March 21, 2020 at 20:04 PM UTC
Updated on
March 21, 2020 at 20:04 PM UTC
Description

Updated version of Blue Fuse v1.1 by Vertex, January 2010 - see https://fold.it/portal/recipe/2052

Best for


Code


-- -- Blue Fuse 2020a - 21 March 2020 - see notes at end -- print ( "Blue Fuze 2020a" ) startScore = current.GetEnergyScore () -- Get the current energy score. print ( "starting score = " .. startScore ) -- print the starting score recentbest.Save () -- Save the current pose as the recent best pose. behavior.SetClashImportance ( 0.05 ) -- Set the clashing importance. structure.ShakeSidechainsAll ( 1 ) -- Shake all sidechains. behavior.SetClashImportance ( 1.00 ) -- Reset the clashing importance. structure.WiggleAll ( 8 ) -- Global wiggle all segments. print ( "after first shake/wiggle, score = " .. current.GetEnergyScore () ) behavior.SetClashImportance ( 0.07 ) -- Set the clashing importance. structure.ShakeSidechainsAll ( 1 ) -- Shake all sidechains. behavior.SetClashImportance ( 1.00 ) -- Reset the clashing importance. structure.WiggleAll ( 8 ) -- Global wiggle all segments. print ( "after second shake/wiggle, score = " .. current.GetEnergyScore () ) recentbest.Restore () -- Load the recent best pose. print ( "after restoring recent best, score = " .. current.GetEnergyScore () ) behavior.SetClashImportance ( 0.3 ) -- Set the clashing importance. structure.WiggleAll ( 1 ) -- Global wiggle all segments. behavior.SetClashImportance ( 1.00 ) -- Reset the clashing importance. structure.WiggleAll ( 8 ) -- Global wiggle all segments. print ( "after final wiggle, score = " .. current.GetEnergyScore () ) recentbest.Restore () -- Load the recent best pose. finalScore = current.GetEnergyScore () -- Get the current energy score. print ( "final score = " .. finalScore ) -- print the final score gain = finalScore - startScore -- calculate the gain print ( "gain = " .. gain ) -- print the gain print ( "Blue Fuze 2020a complete" ) -- -- original: Blue Fuse v1.1 by Vertex 3 January 2010 - https://fold.it/portal/recipe/2052 -- -- BlueFuse 2020a - LociOiling - 21 March 2020 -- + converted to Foldit Lua interface V1 to V2 -- + added printing scores and gain -- + dropped "select_all", not needed with ShakeSidechainsAll and WiggleAll -- -- Some potential improvements: -- -- TODO: round the score to three decimals -- TODO: repeat the process if there's a gain -- TODO: try different values for clashing importance -- TODO: try a different number of iterations for wiggle -- TODO: turn off filters during shake and wiggle for better performance -- TODO: add a dialog to control settings --

Comments


LociOiling Lv 1

Inspired by the Best Recipes of All Time thread, here is a slight update to Blue Fuse v1.1, published in 2010 by Vertex.

Blue Fuse extends the idea in the Control Over Clashing intro puzzle, using different values of clashing importance (CI) during shake and wiggle, attempting to improve the score.

Blue Fuse compared favorably with the Fast Relax algorithm that scientists were developing around the same time. See A Framework for Scientific Discovery through Video Games by Seth Cooper (on Google Books) for a comparison.

This 2020 version adds a few print commands, so the recipe output window and the scriptlog file will show what happened.

The 2020 version is rewritten to use the new "V2" version of the Foldit Lua interface. The original Blue Fuse 1.1 used the "V1" interface, with a more limited set of commands.

The recipe output should just fill the recipe output window. The recipe itself should fill about one screen in the Foldit recipe editor.

See the comments at the very end of the recipe for areas which could be improved.