lua functions for wiggle and shake should allow timed wiggles

Case number:845813-987798
Topic:Game: Tools
Opened by:Tlaloc
Opened on:Thursday, June 3, 2010 - 09:56
Last modified:Monday, June 28, 2010 - 06:53

If you look at the descriptions of particular moves in the wiki, frequently they say things like "wiggle backbone for about 2 seconds, then stop." There is no way to implement that in a script. I want to wiggle a little, but not until the structure completely changes.

There is the issue that this can mean different things on different speed machines, so seconds might not be the right unit to use, but some standard time unit that takes machine speed into account.

(Thu, 06/03/2010 - 09:56  |  9 comments)

Joined: 04/19/2008
Groups: None

As far as I know the currently used "iterations" unit is already independent from processor speed and size of the protein. The problem is that the minimum number of iterations, one, is sometimes already too much.

Joined: 09/18/2009
Groups: SETI.Germany

A global threshold value for shake/wiggle, as I suggested here, could help.

Soetimes, Shake and Wiggle DO some changes, but only in a non-GUI-visible amount (fewer than 0.001 points),so it would be nice to stop those actions by the "game engine" itself, if they do changes under this amount (absolute value)... if needed.
So, you could use for example a wiggle(1), but with a smaller threshold to have smaller steps.

Joined: 04/11/2010

My issue with iterations is that it can run for 2 seconds when there isn't much to do or for minutes while mangling the protein. I'd like to see the wiggle time be more predictable than currently availalbe with iteration count.

Joined: 09/18/2009
Groups: SETI.Germany

Then, using a high difference threshold value could help.

Joined: 09/18/2009
Groups: SETI.Germany

I'm rather for a case-sensitive than a time-sensitive solution,
as there are different systems with different performances, and computers get faster each day.

Tlaloc's picture
User offline. Last seen 33 weeks 10 hours ago. Offline
Joined: 08/04/2008
Groups: Mojo Risin'

I have given this some more thought. I think rather than timed, I want two additional parameters on the wiggle and shake functions, a low and high score. So, for example, do_global_wiggle_backbone(1,10,3) would do a wiggle for one iteration. If the score dropped by more than 10 points, or went up by more than 3 points, it would stop and return, otherwise it plays out the original do_global_wiggle_backbone(1) functionality. Either of the last two parameters could be nil, so do_global_wiggle_backbone(1, 10, nil) would stop if it drops by more than 10 points, but would not stop as long as it goes up. This means that this could be implemented without breaking any existing scripts, since parameters default to nil.

I think this accomplishes what I want. The goal is to get it to change the structure, but not by too much. We can rate the change by the change in score.

Joined: 09/18/2009
Groups: SETI.Germany

Right, this would help, as often even an iteration value of 1 does (too) much changes.

Joined: 09/18/2009
Groups: SETI.Germany

If it were done like Tlaloc submitted, also this would be solved indirectly:

Joined: 09/18/2009
Groups: SETI.Germany

If it is easier to implement for all tools, Tlaloc's idea could be realized as global behaviour parameter:

set_behaviour_max_change_pos(x) for maximum positive change
set_behaviour_max_change_neg(x) for maximum negative change

Then,I would also wish to include

set_behaviour_min_change_pos(x) for minimum positive change
set_behaviour_min_change_neg(x) for minimum negative change,

as some stragetgies say "Do [tool] until no change", respecting that some tools (like wiggle backbone or wiggle sidechains especially) do changes, but only on very low scales sometimes.


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