More Accurate Band Setting

Case number:845813-983293
Topic:Game: Tools
Opened by:ZeddicusZulZorrandr
Status:Closed
Type:Suggestion
Opened on:Monday, February 9, 2009 - 11:12
Last modified:Tuesday, July 24, 2012 - 19:51

The first feature I would request is an easily accessible list of hydrophobic and hydrophilic residues.  Although I don't have xiando's computer skills this list would take the form of a two column list perhaps maintaining the coloring scheme by highlighting the hydrophobics in orange and the hydrophilics in blue.

The second feature I would suggest is the ability to see an xyz axis for the protein.  Personally I would prefer to have this with the origin on what ever residue you have selected with the center of the protein as 0º.  I would be happy with one with the origin as the center of the protein if the first option is not available.  With this I would like to be able to see the angle of a rubber band with it's residue.   This could all take place in note mode.

These two features will prove useful with this third feature.  I would like to be able to set bands using a command line (I think that is the correct term).  This would be most often used to set bands between to residues. For instance in the manual rebuild tecnique one should set bands from every residue to every other.  With this feature I could easily set all the rubber bands for a single residue with a single command, rather than dragging 20 rubber bands or so for each one. As some people attach bands to sidechains rather than residues, an S in front of the residue number could indicate the sidechain. I would also like an ability to set the strength of the rubber band,

I am bot sure how well this next part would work out.  I would also like to set a band from a residue to space.  This would require two direction, and a distance parameter.  This may prove more difficult than manually setting the rubber bands, however.

Thank you for considering these requests, and I would also appreciate feedback from other players.

(Mon, 02/09/2009 - 11:12  |  10 comments)


axcho's picture
User offline. Last seen 7 years 20 weeks ago. Offline
Joined: 12/18/2007
Groups: None
Status: Open » Open

I think a grad student is starting to work on a macro language for Foldit, where you can write scripts to fold automatically. That may address your third request.

Joined: 12/30/2010
Groups: None

For ease of manipulation using a tool to select x,y,or z axis of a selected point or vertice would be helpful. for reference one might look to the way Maya or 3ds max handle interfacing with objects. it allows them to move along a selected axis as opposed to guesstimated alteration along an unknown or random axis.

Joined: 08/06/2010
Groups: Contenders

In the past, when banding to the ghost I would band sidechains in several places.

Since the number of places to band the sidechain differs with residue syntax for banding residue would need to be something like:

band_add_sidechain_sidechain(seg1,pos1,seg2,pos2)

OK, I was putting it off. I spent some time a few weeks back starting
http://foldit.wikia.com/wiki/Lua_Script_Library
I been meaning to add a table with amino information.
I don't think anyone uses the wiki page but me so am slow to add to it.
I'll add some simple amino infromation and some functions to use it.
Since the lua "for each" statment hasn't been implemented I can't just
use get_ss as a direct index when I also want to search the amino list.
The definition would have to be something like:

fsl.amino={
{'a',},
{'b',},

}
for i=1,#fsl.amino do
fsl.amino[fsl.amino[i][1]]= fsl.amino[i]
end

so one could use this:
fsl.amino[[get_aa(seg)][]
or a for loop as indicated above.

I'm just a fan of foldit. I'd be happy to here a grad student was working on a macro language.

Joined: 08/06/2010
Groups: Contenders

darn I had used greater than and less than signs in the above to indicate glossed over information but it appears those get edited out.

gramps's picture
User offline. Last seen 5 years 17 weeks ago. Offline
Joined: 12/16/2010

It's not just you, Gary. I think the wiki is a key source for foldit information and hope to contribute in future. Here's a table of AA info, but not quite sure if it's complete or where it should go:

-- Table AminoAcidTable

local AminoAcidTable = { -- { 'short', 'long' } by lowercase letter code
['a'] = { 'Ala', 'Alanine' },
['b'] = { 'Asx', 'Asparagine or Aspartic acid' }, -- not in Foldit (as of Nov 15, 2010)
['c'] = { 'Cys', 'Cysteine' },
['d'] = { 'Asp', 'Aspartic acid' },
['e'] = { 'Glu', 'Glutamic acid' },
['f'] = { 'Phe', 'Phenylalanine' },
['g'] = { 'Gly', 'Glycine' },
['h'] = { 'His', 'Histidine' },
['i'] = { 'Ile', 'Isoleucine' },
['j'] = { 'Xle', 'Leucine or Isoleucine' }, -- not in Foldit (as of Nov 15, 2010)
['k'] = { 'Lys', 'Lysine' },
['l'] = { 'Leu', 'Leucine' },
['m'] = { 'Met', 'Methionine' },
['n'] = { 'Asn', 'Asparagine' },
['o'] = { 'Pyl', 'Pyrrolysine' }, -- not in Foldit (as of Nov 15, 2010)
['p'] = { 'Pro', 'Proline' },
['q'] = { 'Gln', 'Glutamine' },
['r'] = { 'Arg', 'Arginine' },
['s'] = { 'Ser', 'Serine' },
['t'] = { 'Thr', 'Threonine' },
['u'] = { 'Sec', 'Selenocysteine' }, -- not in Foldit (as of Nov 15, 2010)
['v'] = { 'Val', 'Valine' },
['w'] = { 'Trp', 'Tryptophan' },
['x'] = { 'Xaa', 'Unspecified or unknown amino acid' }, -- not in Foldit (as of Nov 15, 2010)
['y'] = { 'Tyr', 'Tyrosine' },
['z'] = { 'Glx', 'Glutamine or glutamic acid' } -- not in Foldit (as of Nov 15, 2010)
}
local AminoAcidTable_short_ind = 1
local AminoAcidTable_long_ind = 2

Joined: 06/17/2010

bool is_hydrophobic(seg_num)
returning true if seg_num is hydrophobic segment.

band_add(seg1,seg2)
adding band between seg1 and seg2. atm we can only band between segments
band_set_strength(band_no, str)
setting strenght (0-10) of band band_no
band_set_length(band_no,len)
setting band lenght (0-20) of band_no

see in: http://foldit.wikia.com/wiki/Lua_Functions_That_Should_Be_Implemented

Joined: 08/06/2010
Groups: Contenders

OK, tonight I will provide an implementation of fsl.is_hydrophobic.
It should be something like:

fsl={} -- declare table as foldit special library
fsl.aminos_letter_index=1
fsl.aminos_short_index=2
fsl.aminos_long_index=3
fsl.aminos_polarity_index=4
fsl.aminos_acidity_index=5
fsl.aminos_hydropath_index=6
fsl.aminos{
{'a','Ala','Alanine','nonpolar',9.69 ,1.8},
...
}
-- turn letter into alternative direct index
for i=1,#fsl.aminos do
fsl.aminos[fsl.aminos[i][fsl.aminos_letter_index]] = fsl.aminos[i]
end

function fsl.is_hydrophobic (segment)
return fsl.aminos(segment,fsl.aminos_hydrophathy_index) > 0
end

Joined: 08/06/2010
Groups: Contenders

darn,
return fsl.aminos[get_aa(segment)][fsl.aminos_hydropathy_index] > 0

I get my languages confused and sometimes gloss detail.

Joined: 08/06/2010
Groups: Contenders

OK, I implemented fsl.IsHydrophobe then checked tlaloc's hydrophobe and saw that is_hydrophobic has already been implemented. More interestingly the cut between hydrophobe and hydrophile is not at zero hydropathy but at -1.6, that is proline is hydrophobic but has hydropathy of -1.6.

Joined: 06/17/2010
Status: Open » Closed

V2 lua allow us band to space and any atom we want. Done.

Sitemap

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, RosettaCommons