Make LUA commands band.SetNote and band.GetNote

Started by jeff101

jeff101 Lv 1

It would be nice to have LUA V2 commands for bands called band.SetNote and band.GetNote that behave like the present LUA V2 commands for segments/residues called structure.SetNote and structure.GetNote. Then the user could store information about each band, and when the user later Tabs over a band on the screen, this information will be displayed. These band Notes could even be displayed in Note Mode in the Original Interface like the present segment/residue Notes are.

See http://foldit.wikia.com/wiki/Foldit_Lua_Functions#structure.GetNote and http://foldit.wikia.com/wiki/Foldit_Lua_Functions#structure.SetNote for more details.

With band.SetNote, a user can make a string containing information about a band from within the Recipe that actually makes the band. This way, when the Recipe ends and all local variables within the Recipe disappear, this stored information about the band will be preserved and readable from other Recipes as well as from within the Foldit GUI. This information will also continue to be associated with the same band even if the band's number happens to change (like when other bands with lower band numbers are deleted).

jeff101 Lv 1

Some applications of band.SetNote and band.GetNote:

(1) List which segments (amino acids) are connected by a particular band.

(2) List what function the band is playing, like to hold together a helix or sheet so that hydrogen bonds can form, or to hold together two cysteines so they can form a disulfide bond.

Susume Lv 1

Another use for this would be for marking parts of the Electron Density cloud. Make a band from any segment to the part of the cloud you want to mark, and attach a note to the band. Useful when first trying to get one's bearings; obviously you would want to disable or remove these marker bands before wiggling.

jeff101 Lv 1

Some related ideas are below:

(1) When you Tab on band number N,
list band N's number, strength,
target length, present length,
the contents of band.GetNote() for band N,
and whether band N is enabled or disabled.

(2) If you Tab on band N
and then use the -> arrow key,
go to band N+1 and show its information.
If band N+1 doesn't exist, go to band #1
and show band #1's information.

(3) If you Tab on band N
and then use the <- arrow key,
go to band N-1 and show its information.
If band N-1 doesn't exist, go to the
highest-numbered band and show this
band's information.

(4) In addition to a Note Mode that lists the
contents of band.GetNote() for all the bands,
there could be another Note Mode that just
lists the band #'s next to each band. Then
one can easily use the band #'s to tell the
order that bands were added to the protein.
This can help, for example, if you have been
using 27 bands set by the Contact Map but the
recipe you just quit left 3 bands behind.
Showing the band #'s would make the newest
3 bands easy to find and remove.

(5) In the above, be careful when removing bands.
I think if you have 10 bands and remove band #6,
bands 1-5 stay the same, but band #'s 7-10 shift
down to 6-9.

jeff101 Lv 1

In (1) above, when a player Tabs on a band,
it could also list which segment and atom numbers are connected by the band.
For example, a band from the backbone nitrogen of LYS 99 to the backbone oxygen
of ARG 142 could list "99LYS1-142ARG4" (on most segments, atom 1 is a nitrogen,
and atom 4 is an oxygen). Also, if a band goes from the alpha-carbon of GLY 56
to space, it could list "56GLY2-space" (on most segments, atom 2 is the alpha-carbon).