Opened 10 years ago
Closed 9 years ago
#305 closed enhancement (fixed)
RFE: connect to pyMLP, molecular lipophilicity potential evaluator
Reported by: | Elaine Meng | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Structure Analysis | Version: | |
Keywords: | Cc: | Tom Goddard, Conrad Huang | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
MLP is analogous to electrostatic potential (ESP) and depends on the 3D arrangement of protein atoms, unlike our kdHydrophobicity lookup which is always the same per-residue value for a given type of amino acid.
Suggested by Darrell Hurt in 2013, see chimera-users thread starting with:
http://plato.cgl.ucsf.edu/pipermail/chimera-users/2013-December/009423.html
Input is a PDB file (protein), output is DX format volume data. I don't know whether direct incorporation or implementation as a web service would be best.
pyMLP on github:
https://github.com/plantigrade/pyMLP
Attachments (1)
Change History (7)
comment:1 by , 10 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 10 years ago
Not that it must be adhered to, but there is some potential command design for including color-by-volume in the color command at: http://www.cgl.ucsf.edu/home/meng/chi2/color.html see the “multicoloring” methods. (We already changed some stuff, though, and it would be good to make “target r” a synonym for “target c” instead of using it for residue labels as suggested in that page.)
comment:3 by , 9 years ago
Conrad, did you say that there was also code available to generalize this to organic molecules other than the standard amino acids? That would be very useful at some point (I realize many other things are higher priority for now)… for example, MLP is often used for small molecules. Secondly, executing mlp is EXTREMELY slow even for small proteins. It takes so long one starts to think something is wrong. Is there any reasonable-effort way to speed it up? From Oliver Clarke today: Re mlp, I have tried using it with ChimeraX but possibly because the systems I deal with are too large I have never been able to run it to completion.
comment:4 by , 9 years ago
Hi Oliver, At today’s Chimera meeting we discussed hydrophobicity scales and Elaine mentioned that you would prefer to use MLP in ChimeraX but it is too slow. It does a very slow calculation all in Python using a 1 Angstrom grid, and measuring distances from every grid point to every atom. That will be quite a wait for a ribosome (say a 20 nm cube, so 8 million grid points, say 100,000 atoms, each does at least 3 floating point operations (some modes use exp() too), so about 24 trillion floating point operations. With typical processors these days doing 20 Gflops (typically 16 flops per clock cycle), that could take 1000 seconds even in C++, and probably 1000x longer in Python. But it is rather trivial to optimize it to use C++, since it is about 10 lines of code that do the work, so I could do that. A bit more optimization is possible and would make a huge speed increase — all the MLP calculation modes weight atom contributions by distance, and almost all fall off with distance fast (exponentially with 1/e falloff in 3.1 Angstroms Brasseur method, 1/d**3 for buckingham method). So using only atoms near each grid point could be much faster. Or just computing on a surface instead of a whole 3d grid. Anyways, if you are interested I can do a bit of optimization the first week in August. Tom
comment:6 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Optimized about 6 months ago.
I added a new experimental command "mlp" which generates the volume for the specified model. Right now, it just displays the volume directly. I think a better representation would be a molecular surface colored by the volume. The latter functionality is not yet implemented, so I'm reassigning this ticket to TomG to get the request in the queue.