Well, it works. I am so delighted with this Marching Cubes algorithm!
It turns out that the rendition of solvent-accessible surfaces using
isosurfaces is almost trivial. I just don't want to think how much time
first Miguel and then later I spent trying to do this other ways!

see <http://www.stolaf.edu/people/hansonr/jmol/test/proto/isosurface.htm>

One of the very nice consequences of doing solvent surfaces this way is that
they can then be colored using exactly the same methods being used for any
other isosurfaces. Examples:

 # First, just the surface.
 load ch3cl.mol;isosurface solvent;show isosurface

 # Now mapped using electrostatic potential from a CUBE file
 load ch3cl.mol;isosurface solvent color "ch3cl-esp.cub.gz";show isosurface

(Note that the "show isosurface" command gives you the JVXL equivalent.

 # And the JVXL equivalent (19.5K)
 load ch3cl.mol;isosurface "ch3cl-solvent.jvxl"

 # The color mapping can be adjusted to your liking
 isosurface delete;isosurface solvent color absolute -0.01 0.01 
"ch3cl-esp.cub.gz"

 # solvent probe radius is set using the "set radius" command
 load ch3cl.mol;set radius 3.0;isosurface solvent color "ch3cl-esp.cub.gz"
 # back to the default:
 load ch3cl.mol;set radius 1.2;isosurface solvent color "ch3cl-esp.cub.gz"

 # more examples
 load C6H6.smol;isosurface _benzene mesh nofill solvent
 load caffeine.xyz;isosurface _caffeine mesh nofill solvent
 load 1crn.pdb;select 1-3;isosurface _pdb mesh nofill solvent

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

I'm sure this will all see a bit of refinement as people express their 
desires, but this is basically it.

For those interested in the technical side of it, basically the key to 
success was realizing that voxels can take values that express the 
distance (positive or negative) to the nearest solvent-surface point, 
and those points can be easily determined using simple geometry. Then, 
with that "cube" data, the Marching Cube algorithm can interpolate 
essentially perfectly to deliver the actual surface. The ones I am 
seeing have a bit of bumpiness to them; this could be a bug. I'll play 
some more with the algorithm to see if I overlooked something. (I can 
think of one thing right now....) For now I'll call it a bit of 
"texture". :)

Bob





_______________________________________________
Jmol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to