GEM is a package designed to be a sandbox for experimenting with 
biomolecular visualization and electrostatic potential
computation and representations.  It is open-source and ideally available for most "scientific platforms" (*NIX + Mac OSX).  

The basic theory is published in these two papers: 

1) An Analytical Approach to Computing Biomolecular Electrostatic
Potential I: Derivation and Analysis

by A.T. Fenley, J.C. Gordon, and Alexey Onufriev, 

J. Chem. Phys. 129, 075101 (2008)

and 

2) An Analytical Approach to Computing Biomolecular Electrostatic Potential
II: Validation and Applications

by J.C. Gordon, A.T. Fenley, and Alexey Onufriev

J. Chem. Phys. 129, 075102 (2008)

Once you have GEM installed (make sure you do 'make install' to install the man pages), do "man gem" to see a few basic 
examples + definitions of input arguments. All of the example files are 
contained in GEMn/data directory. 
To compute and visualize the potential for any of these examples, just execute
"gem" from its main directory, select "File", then "Open", in the dialogue box, 
click on GEMn/data in the menu box, and then 
select any of the .pqr files there.  Then click "Open" button at the bottom 
right of the dialogue box. Use the mouse to translate/rotate the picture. 
Click both right and left mouse buttons at the same time to select a residue on the surface. 

Make sure you have MSMS installed if you want to compute the potential for
any of the structures other than the few examples.
If you do not have your structure in pqr format, which is PDB + charges + atomic radii, I suggest trying
out the H++ sever (biophysics.cs.vt.edu/H++).  It will generate 
you pqr files from pdb inputs. The protonation (charge) state of your 
structure will be properly set at the pH you give as input to H++. 

USEFUL TIPS: 

1. Never click on "Apply" button in the middle of the dialogue box. Use other 
action buttons such as "Save", "Open", "Cancel", etc. 

2. If saving the computed potential on a full 3D cubic grid ("Save" as "Phi map" ) make sure to specify the right file extension in the name of the output file. Valid extensions are .phi for DELPHI format and .fld for MEAD format.  
Remember that this calculation may take a while for a large structure -- this 
part of the algorithm has never been optimized.  

3. Compared to the above referenced papers, the current version of GEM uses a 
"charge coarse-graining" (hierarchical charge partitioning, HCP) 
approximation that brings about considerable 
speed-ups at a minimal accuracy loss. It is not a cut-off in the 
usual sense in that all charge sources are retained, albiet in an approximate
fashion. More in "An NlogN approximation
   based on the natural organization of biomolecules
   for speeding up the computation of long range interactions" by 
Anandakrishnan and Onufriev, J. Comp. Chem. 2010.  
Setting the appropriate threshold levels to values larger than the system size should reproduce the published results exactly. These values are 
defined in src/include/defines.h, you will have to re-compile the code after 
changing them. 

4. Structure Manipulation: 

Move the structure: left mouse click and hold, drag the structure.

Zoom in/out: middle button click and hold, push forward/backwards 
to zoom in/out.

Rotate: right mouse click and hold, drag the structure.

5. Structure element selection: 

Select group on the surface: left and right click simultaneously. Selected group will show as mesh surface. A pop-up window will display some properties. 

OR, you can just select and click a group on the main pull-down window. 


6. Adjusting potential color scale: left mouse click 
directly on the color bar. A window will pop-up, use the slider to 
adjust the values.   

---------------------------------------------------------

What can you do to improve the GEM code?

Well, realistically if you want to improve it you can do almost anything
right now. If you want to use it for computational experimentation, 
the choices are almost as broad. If you can get a structure into pqr format, 
you are pretty much good to go.

Let's assume you are interested in figuring out how to contribute to the project but don't want to program...

well, you can test it out of it and play a role in coming up with new
features

You could play with shell scripts to test it extensively and try to pin down how we could improve our approximations.

You could derive interesting new models to implement.

Let's assume you like programming and are looking for an open source project to work on...

You could add new atom representations (cartoons, ribbons, etc.)

You could restructure the code to be easier to work with.

You could check the TODO file and find more stuff to do.

I hope there were some interesting ideas to entertain you there.  



						John Gordon. 
