Function iteration lengths lack control

Case number:845813-990202
Topic:Game: Tools
Opened by:bendbob
Opened on:Sunday, August 21, 2011 - 00:52
Last modified:Sunday, August 21, 2011 - 19:25

The parameter for many "do" commands would be enhanced if 'real' seconds,minutes were allowed.
Example: do_global_wiggle_all(1)
The arbitrary decision to have 'fixed' lengths does not allow for control. I do not know what the time length is, more than a minute, I believe. When folding by hand, it is most often the case, we stop certain functions much sooner than the parameter allowed to control time length in Lua scripts.

Having a 'real' time parameter is my suggestion. I think most of the scripting community will welcome this simple enhancement.


(Sun, 08/21/2011 - 00:52  |  5 comments)

B_2's picture
User offline. Last seen 6 years 39 weeks ago. Offline
Joined: 11/29/2008
Groups: None

The command is do_global_wiggle_all([iterations]) in other words, wiggle for a given nubmer of iterations or forever if the value is not specified.

Of course, no one has ever seen fit to define an iteration, so it's a complete unknown.

bendbob's picture
User offline. Last seen 39 weeks 4 days ago. Offline
Joined: 05/06/2011
Groups: None

I believe you restated my issue very nicely. My suggestion still has merit, don't you think?

Thanks for your concern

B_2's picture
User offline. Last seen 6 years 39 weeks ago. Offline
Joined: 11/29/2008
Groups: None

I was trying to point out that an "iteration" is NOT a measure of time, so your suggestion isn't really relevant unless the function is changed to be time based instead of iteration based.

bendbob's picture
User offline. Last seen 39 weeks 4 days ago. Offline
Joined: 05/06/2011
Groups: None

Let me restate my suggestion: a time argument (parameter) of seconds would allow scripts to control the length of time a function runs. I'd suggest using seconds as the measure of control. So, a call like do_global_wiggle_all(30) would last 30 seconds. I've run tests and watched as the predefined times result in less than optimal scores.

I hope this clears up what I am asking for, I mean, I did post to the suggestions section, not the bugs section.

I disagree that an "iteration" is not a period of time. The nature of programming loops with "iterations" is inherently measured by time. When testing functions and observing their performance we talk about it in terms of time, even processor cycles are measured in time ultimately. If you prefer to think about it as 1, or 2, or....then you choose to ignore that 1,2, and ... take different amounts of time, and offer the script writer very little to no control of HOW LONG the function runs, then be happy, everything is just fine for you and there is nothing more you need to add to the discussion. I'm suggesting a change that would make me happier.

For me, being able to tell the function what to do rather than the function doing what it BELIEVES is the correct thing to do is preferable.

I am not accusing the developers of bad programming. I am not telling them (you?) that their effort fell short. I simply made a suggestion. If the suggestion is not clear, please ask me to confirm what you think I said, or even ask me to restate it. But, to just dump on people that make suggestions encourages us to ignore trying to improve the game.

Joined: 06/17/2010
Topic: General » Game: Tools
Type: Suggestion » Suggestion

AFIK "iteration" means how many times wiggle (or any other) function is looking and moving all segments of protein. There is also some kind of threshold of movement, causing that wiggle stops gaining points after some time (iterations). So sometimes wiggle(1) takes longer when there is lot "to do" and sometimes wiggle(20) runs quicks as (3) because there is nothing to move. Also it takes different time on different size of protein.

For me best potions would be global variables accessible to script changing:
- maximum amount of time function runs
- maximum loss function causes till it stops
- maximum gain function takes till it stops

Then in script I can set:
config.MaxTime=10 --up to 10 seconds
config.StopLoss=100 --stop earlier if loss 100pts
config.TakeProfit=10 --stop earlier if get 10 points

Or just set all of them to 0 bringing back "original" behavior.

Settings this vales in script can give us possibility to make totally different scripts for different tasks: when we i early game and need just want "quick fix" protein, when in endgame i need any fraction it can get me.


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