Subsections

2.2 Generation of Surfaces

   This section will cover the various ways of generating surfaces with OESpicoli.

2.2.1 Accessible vs Molecular

   OESpicoli provides two functions for generating surfaces directly from molecules: OEMakeAccessibleSurface and OEMakeMolecularSurface. Both functions require the definition of a solvent molecule's probe radius. The default solvent is water with a probe radius of 1.4 Å(angstroms).

The accessible surface is created by representing each atom as a hard sphere [2]. The radius of each sphere is the radius of the atom plus the probe radius. Figure 2.5 demonstrates how the spheres are packed together to form the surface. In the figure, portions of the surface are colored based upon each atom's contribution to the final accessible surface.

Figure 2.5: Accessible Surface Construction
 
[Spheres] Image AccessibleSpheres [Surface] Image AccessibleSurfaces

The molecular surface is composed of atom centered spheres plus reentrants [3]. Each sphere's radius is the atomic radii of the atom it is associated with. The defining characteristic of the molecular surface is the reentrant as shown in Figure 2.6. The reentrant models the portion of the molecule inaccessible to solvent. For this reason the volume enclosed by the molecular surface is sometimes referred to as the ``solvent-excluded'' volume.

Figure 2.6: Molecular Surface Construction
 
[Spheres] Image MolecularSpheres [Surface] Image MolecularSurfaces

2.2.2 Grids

   In OESpicoli the construction of surfaces from a molecule proceeds through a grid intermediate. The space between grid points determines the resolution of the surface, i.e., how many triangles there are and the size of each triangle. Grids usually consist of equidistant points aligned along orthogonal axes, but this need not always be the case (for instance, electron density grids from crystallography).

Scalar values are placed at every grid point. Surfaces are constructed by tracing out an contour through the grid points. An contour is a separator of points based on whether they are greater than or less than a given value. The separator is a line in two dimensions and a surface in three dimensions. This is similar to how topographic maps use lines to convey elevation.

When dealing with surfaces the points on the grid with a value less than the chosen contour value are inside the surface and vice versa. OEMakeSurfaceFromGrid will generate a surface from a grid using a variation of the marching cubes algorithm [4].

Figure 2.7: Contour
 

\begin{picture}(10,10)(0, 0)\linethickness{0.05mm}
\multiput(0,0)(1,0){11}%
...
...){$5$}
\put(7.3, 9.2){$5$}
\put(8.3, 9.2){$5$}
\put(9.3, 9.2){$5$}
\end{picture}

2.2.3 Subsets

   Surface subsetting is done through the use of cliques, see section 2.3.1. The triangle, not the vertex, is the most physically relevant intrinsic property of the surface. To maintain a constant surface area for the sum of all partitions OESpicoli will not duplicate triangles across surface partitions. However, this does not restrict the duplication of vertices across partitions.

Therefore, the sum of the surface area of every partition will equal the surface area of the whole surface. The sum of GetNumTriangles() over every partition will equal the total number of triangles in the whole surface. However, the sum of GetNumVertices() over every partition will not equal the total number of vertices in the whole surface.