Hi there-
I'm looking for a recipe that can convert the Foldit score to Rosetta Energy Units. I saw a Wiki ( about a function that does this conversion, but I'm unfamiliar with functions. How do I implement them? Here's the Wiki page I'm referring to:
https://foldit.fandom.com/wiki/Free_energy#:~:text=In%20Foldit%20terms%2C%20the%20lower,all%20contribute%20to%20free%20energy
Hi -
I see that recipe needed a couple of corrections in the labeling of the output, but it does seem to still work.
The updated code is:
local sFoldit = current.GetEnergyScore ()
print ( "Foldit energy score = ".. sFoldit )
local sRosetta = scoreboard.GetScore ()
print ( "Rosetta energy score = ".. sRosetta )
local sRosecon = 10 * ( 800 - sRosetta )
print ( "converted Rosetta score = " .. sRosecon )
print ( "Foldit score - converted Rosetta score = " .. sFoldit - sRosecon )
One way is to copy those lines to the clipboard.
Then here on the Foldit site, go to Game -> Recipes, and click "Create New". You can then paste those lines into the "code" area, give the recipe a title, and click "Create Recipe" (you may need to scroll down to see the button. You'll then be able to refresh the cookbook in Foldit (using the "recycle" icon), and you should be able to see your recipe.
Your recipe will be yours alone unless you choose to share it with a wider audience.
I have however just created a public version of the recipe, and called it Rosetta energy. Just go to that page, click "Add to Cookbook", and refresh your cookbook in Foldit. You should see "Rosetta energy" under "[Recipes]".
Either way, open the recipe output window in Foldit by clicking the black "DOS prompt" icon in the cookbook. Then click on the recipe entry to run it. You should see the result in the "Recipe Output" window (which does look kind of like a DOS prompt).
Recipe output will also be written to "scriptlog.default.xml" in your Foldit directory. (The "default" is actually the current track name, and the default track name is "default".)
The programming language is Lua, and you'll find more Lua resources on the wiki.
Thank you very much! This recipe is exactly what I needed.
A followup question: Any suggestions for converting REU to experimental values (kcal/mol)? I teach an introductory research course for undergrads and having the experimental value on their research posters will have greater meaning to the audience than Rosetta energy units. Thanks again!
https://fold.it/forum/blog/partition-functions says that an energy difference of 1.4 kcal/mol is roughly 14 Foldit points.
Thank you for the link. Does the same conversion apply for puzzles with bonus points for objectives? I'm assuming the level of the bonus points were set based on this conversion.
The objectives and their bonus points use the same units as the rest of the Foldit score, but they don't correspond to real forces in the protein like many parts of the Foldit score do. Instead, the objectives and their bonus points are there to enforce certain features in our designs, like if the designs are close to what AlphaFold would predict, if they include small molecules from a compound library, what % b-sheet they contain, and whether they contain ideal loops, BUNS, hydrogen bonding networks, disulfide bonds, etc. The scientists adjust the values for the objectives and their bonus points from puzzle to puzzle based on how our designs behave in the lab.
Okay. So for puzzles using objectives/bonus points, is it safer to report the Rosetta energy units rather than converting the Foldit score to kcal/mol? Thank you.
Interesting point. As jeff101 notes, the bonuses from objectives are just used to enforce design goals. Without them, everything would be three-helix bundles.
The Foldit Lua functions let you turn off the objectives, and get the "real" Foldit score without them. Then you can convert the Foldit score to Rosetta units. I guess you can also calculate the Rosetta energy offset from the objectives, but I'm not sure how meaningful that would be.
The Lua function behavior.SetFiltersDisabled can be used to turn objectives (also called a "filters") off and on. For example, behavior.SetFiltersDisabled (true) turns off all objectives. The values returned by the Foldit score overall functions, such as current.GetEnergyScore, depend on whether objectives are enabled.
For more detail, you can use filter.GetNames to get the names of each objective, then filter.GetBonus to get the bonus of each one.
There's also filter.GetBonusTotal if you don't care about the individual objectives.
The functions in the filter namespace give you a detailed picture of each objective. For example, not all objectives offer a bonus, so there's filter.HasBonus to tell you which is which.
Hi there. I'm using the Rosetta energy recipe to calculate the REU of my solution, but it seems there's a bug in the recipe. I'm running it in my private puzzle (coronavirus beginner + binding metrics objectives). When I run it on the starting structure of the puzzle (ACE2 fragment), I get a Rosetta energy score of -759. When I load my saved solution and run the recipe again, it still gives me an output of -759. The same thing happens when I run it in the active coronavirus beginner puzzle. I'd be grateful if the recipe could be fixed! Foldit scores don't have much scientific meaning, so having the REU would be useful when communicating to outside audiences about the game.