This is a call for those interested in molecular surfaces.

I've had some great success lately redesigning the way Jmol creates solvent-excluded surfaces, and I need some help. What I'm interested in doing is comparing Jmol's surface creation with both PyMOL and the MSMS program ( I think this might be significant enough to consider publication. It is not MSMS, but it reproduces the result of MSMS VERY closely and perhaps better than MSMS itself. I have no idea how PyMOL generates these surfaces -- it may just be a straight implementation of MSMS, but I don't know. (I think not, because I see there's an MSMS plug-in for PyMOL. In the course of transferring to a new laptop, I haven't gotten PyMOL set up, so I haven't checked that out.)

I'm interested in testing cases with cavities and various other oddities, comparing Jmol, PyMOL, and MSMS.

Nico has released Jmol 12.1.27, which introduces this new way of creating surfaces, and tweaks today I have made make some subtle changes -- see

Here's a sample output that I created:

In this image, the green is Jmol. The orange is MSMS triangulation. The reason the image is so patchy is that the surfaces are almost identical. The tent-like tripods are Jmol's calculated analytical solution to the problem. The tripods are places where the solvent probe sits on three atoms. Green means the solvent probe is well above the plane connecting the three atoms; red means the solvent probe intersects that plane. The  white/green or white/red boundaries are at the solvent probe radius.

The surfaces are almost identical. Interestingly, though, MSMS and Jmol generate the surfaces in two totally different ways -- MSMS creates a "reduced surface" and uses that to generate a network of triangles representing the solvent-excluded surface directly from the analytical solution, stitching them together as needed; Jmol never creates a reduced surface and never has to do any "stitching." Instead, Jmol identifies all edges and faces that are required for the generation of the surface (like MSMS), then generates a grid of point-values representing distances from the surface, and then uses the Marching Cube algorithm to generate the surface from that. The starting point is the same, but Jmol's process is quite different. Also, Jmol's measure of the surface area, 2269 A^2, is closer to the analytical solution reported by MSMS, 2258 A^2, than the MSMS triangulation (2214 A^2). Even if I increase the triangulation for MSMS more than two fold, it still doesn't get as close to the analytical result as Jmol's. Thus, I think we really have something here. Besides, this is open source....

If you are interested in participating in this test and in writing a paper about it, let me know. Just for future reference, I'm adding some more information below, before I forget what I did. The command sequence for comparison is given below.


## creating the MSMS surface:

load =1crn
script ""
set defaultVDW babel
load xxxx.pdb

[ then used the following command:

msms -probe_radius 1.5 -density 3 -if 1crn.xyzrn -of 1crn

to create the MSMS surface -- density 5 is probably more appropriate for comparison.]

isosurface s1 color orange 1crn.vert

# creating the Jmol surface, with the tripods:

set logfile "msms.log"  # logging ON generates a file of draw commands for the tripods
log "$CLEAR$"
isosurface s2 color green solvent 1.5 FULL
log ""

script JmolLog_msms.log

Robert M. Hanson
Professor of Chemistry
St. Olaf College
1520 St. Olaf Ave.
Northfield, MN 55057
phone: 507-786-3107

If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900