Let users save/restore/load portions of a structure

Case number:845813-992730
Topic:Game: Tools
Opened by:jeff101
Opened on:Wednesday, May 23, 2012 - 03:37
Last modified:Thursday, May 31, 2012 - 15:43

I think it would be neat if LUA commands like save.Quicksave, save.Quickload, recentbest.Save, recentbest.Restore, creditbest.Restore, and absolutebest.Restore had options so they could save/restore/load portions of a structure rather than the entire structure. This way, you could take the best-scoring parts of several different structures and combine them all together to make a Frankenstein's Monster structure. If this can be done already some other way, please let me know. Also, if this has been suggested before, please guide me to the previous post so I can up-vote it.


(Wed, 05/23/2012 - 03:37  |  7 comments)

brow42's picture
User offline. Last seen 2 years 1 week ago. Offline
Joined: 09/19/2011
Groups: None

I think this is a good idea, althought it will probably require the creation of cutpoints when it is loaded. Probably not useful as a LUA function but good for the selection interface.

Joined: 06/17/2010

It may work nice in selection interface:
- if nothing is selected structure save/load works on entire thingy
- it there are some segments selected structure save/load works only on selected area

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

If we could fetch and set the relative 3d-angle positions from segment to segment, this could be done easily by script.
To create a combination of two solutions, you can take all angle values from one section of the first piece, then all other angle values from the other piece, as using absolute positions won't work.

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

Some time ago, I used these scripts to do something similar:

These scripts measure (with a user-customized mesh of bands) segment distances of the puzzle state stored in quicksave 2, and try to adapt these to the puzzle state stored in quicksave 1.
When the band-mesh is applied and wiggle is executed, puzzle-state 1 will be "morphed" to puzzle state 2.

Another idea to form "Frtankenstein's Monster" could be via alignment.
Maybe we could have the option to store current sections (or whole puzzle states) as alignment templates, and apply these saved alignments (partially) to other loaded puzzles.
Would be the most elegant way, as partial alignment does exist already.

brow42's picture
User offline. Last seen 2 years 1 week ago. Offline
Joined: 09/19/2011
Groups: None

It's my understanding (via Tlaloc) that reading and setting the angles or positions directly would make it too easy for someone to import an external server solution or evolver solution, which would ruin the competition for the players and ruin foldit project's studies on humans folding and crowdsourcing. Technically Crashguard's mass banding approach can do this with a computer-generated script, but probably not super effective.

(I tried it once when I was about to do a small change the required a huge change to get there...the rest of the protein was supposed to back the way it was afterward, but it didn't. This was before banding to space, just segment bands. I also tried to force bad disulfide bridges to clone a known good bridge, and that didn't work *at all*).

The more coordinate-producing features we request, or the more we work around built-in limitations, the closer we come to not having lua band functions. I think at this point the game science, bioscience, and development teams should speak up about what they want and don't want us to do with our scripts. It should definately be raised at the next Skype meeting.

xposted to the GetDistance thread.

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

Yes, the script is not that effective, as if you make the mesh too dense (many bands), the scaffolding banding structure is too stiff allowing no compensation movements between segments (torsion, rotation) anymore, and this is not natural (to my opinion).
And if the mesh is too coarse, the target structure will not be imitated this much.
They key is, that a computer can't "see", which segment-to-segment-distances are important for a change in structure, and which ones don't matter or should be left out to allow movement (which causes structural differences, too).
In rough, I found out that it is the best if you only use the parts out of sheet or helix sections as reference, but as you wrote, exact clones (including the same atom bonds etc.) won't be possible, as minor changes at one position have an effect to the whole structure (as it happens on spline curves, when you change just one reference point).

I can understand that direct setting of 3d-segment-to-segment-angles can make it too easy.
Even if those solutions couldn't be shared, players could send angle values to each other.
But you could prevent this by reducing the resolution (precision) of those angle-values, adding some random amount, so each solution would still be unique, even after setting angles.

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

A big counter-argument (according to the game's philosophy) against using angles is when setting them directly, you have no trackable transition from the last puzzle state to the newly created one.
But when doing alignment, this is the same situation.
Maybe we should consider allowing angle manipulation only under certain circumstances, in alignment puzzles for example.


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