NanoShaper: a general and robust ray-casting based tool for processing surfaces at the nanoscale
Sergio Decherchi and Walter Rocchia
We present a general, robust, and efficient ray-casting-based approach to deal with manifold surfaces arising in the nano-bioscience field. The software suite which implements this approach is called NanoShaper (freely available at www.electrostaticszone.eu) and presents several algorithmic features:
i) building and triangulating the molecular surface of nanometric systems according to several existing definitions,
ii) importing external meshes,
iii) performing accurate surface area and volume estimation,
iv) coloring the points of a grid (for i.e. finite difference solution of a PDE) according to their locations with respect to the given surface,
v) detecting cavities/pockets, computing their volume and surface area, using this info to filter them,
vi) tracking pockets/cavities and their size along a molecular dynamics trajectory.
Robustness is achieved using the CGAL library and an ad hoc ray-casting technique. Our approach can deal with any manifold surface (including non-molecular ones). Those explicitly treated here are the Connolly-Richards (SES), the Skin, and the Gaussian surfaces. Test results indicate that it is robust to rotation, scale, and atom displacement. This last aspect is supported, for instance, by cavity detection applied to the highly symmetric structure of fullerene, which fails or is inaccurate when attempted by most of the available alternative, such as MSMS, Surf and EDTSurf. In terms of timings, NanoShaper triangulates the SkinSurface at least ten times more rapidly than the Kruithof algorithm.
The software implementation of NanoShaper can be compiled as a stand-alone executable, as a library or as a Python module. As a library, it has been interfaced with the DelPhi 4.0 Poisson-Boltzmann equation solver. Its SES grid coloring outperformed the DelPhi counterpart. To test the viability of our method on large systems, we chose one of the biggest molecular structures in the Protein Data Bank, namely the 1VSZ entry, which corresponds to the human adenovirus (180,000 atoms after Hydrogen addition). We were able to triangulate the corresponding SES and Skin surfaces (6.2 and 7.0 million triangles, respectively, at a scale of 2 grids per Å) on a middle-range workstation. Additionally, on the quest of an ideal molecular surface, the capability of NanoShaper to import triangulated surfaces is allowing us to build an optimization algorithm for the molecular surface parameterization.