Voronoia calculates atomic volumes by applying the Voronoi Cell algorithm. The volume calculated for each atom is split into two portions, both of which are represented in the .vol files produced by the server. The first is the vdW volume (the volume inside an atoms' van der Waals sphere), the second is the solvent excluded volume (within a 1.4 Angstrom layer around the vdW sphere). The space is allocated among atoms using hyperboloid surfaces. The calculation is performed by applying a cubic lattice of 0.1 Angstrom grid width.
Cavities are found by applying a Delaunay triangulation and looking for edges above a cutoff length in the resulting graph corresponding to a 1.4 Angstrom probe radius. Their locations are approximated by the center of mass of all neighboring atoms.
The core algorithm of Voronoia has been implemented in Delphi and an intermediate layer in Python. The core algorithm calculates atomic volumes and cavities from PDB structures, prefiltered for modifications. It produces modified PDB files from which packing densities, cavity positions, and tabular reports containing average volumes and densities are calculated.
To visualize the results of Voronoia and create an intuitive understanding of cavities and packing in a biological molecule, NGL is used. The viewer is embedded directly in the website and does not require any downloads by the user.
The molecule itself is shown in a cartoon representation, colored by the packing density of its atoms with a color scale ranging from red for very tightly packed atoms to blue for atoms with relatively low packing densities. Cavities are depicted as balls and colored either red or blue, where red indicates a more hydrophobic environment and blue a hydrophilic environment with a higher probability of internal water. The atoms neighboring cavities are additionally shown in licorice, highlighting them so that users can more easily evaluate the chances for buried water molecules in particular cavities.