Skip to content


  • Software
  • Open Access

ProteinVolume: calculating molecular van der Waals and void volumes in proteins

BMC Bioinformatics201516:101

  • Received: 28 December 2014
  • Accepted: 10 March 2015
  • Published:



Voids and cavities in the native protein structure determine the pressure unfolding of proteins. In addition, the volume changes due to the interaction of newly exposed atoms with solvent upon protein unfolding also contribute to the pressure unfolding of proteins. Quantitative understanding of these effects is important for predicting and designing proteins with predefined response to changes in hydrostatic pressure using computational approaches. The molecular surface volume is a useful metric that describes contribution of geometrical volume, which includes van der Waals volume and volume of the voids, to the total volume of a protein in solution, thus isolating the effects of hydration for separate calculations.


We developed ProteinVolume, a highly robust and easy-to-use tool to compute geometric volumes of proteins. ProteinVolume generates the molecular surface of a protein and uses an innovative flood-fill algorithm to calculate the individual components of the molecular surface volume, van der Waals and intramolecular void volumes. ProteinVolume is user friendly and is available as a web-server or a platform-independent command-line version.


ProteinVolume is a highly accurate and fast application to interrogate geometric volumes of proteins. ProteinVolume is a free web server available on Free-standing platform-independent Java-based ProteinVolume executable is also freely available at this web site.


  • ProteinVolume
  • Volume calculations
  • Void volume
  • van der Waals volume


The volume that a protein occupies in solution is an important thermodynamic parameter: the change in protein volume upon unfolding defines the changes in stability as a function of pressure, ΔV = (∂ΔG/∂P)T. Experimental studies have shown that such changes upon unfolding of proteins are small and range from −4.0 to +1.0% [1-3]. The volume of a protein in solution can be divided into its protein-solvent interaction volume and geometric volume. The protein-solvent interaction volume is affected by the hydrophobicity, polarity, and charge distribution of surface residues of the protein. The geometric volume is the solvent-excluded volume, which is enclosed within the solvent-excluded surface (Figure 1). The solvent-excluded surface was termed the molecular surface by Richards in 1977 [4]. In this paper, we will refer to the solvent-excluded volume as the molecular surface volume (VMS). The molecular surface volume comprises of the intrinsic volume of protein atoms termed van der Waals volume (VVDW), and the intramolecular void volume (VVoid) that arises due to imperfect packing between protein atoms (Figure 1). The solvent accessible surface is the surface delineated by the center of a solvent probe rolling around the protein. The volume enclosed by this surface is termed the solvent accessible volume (VSA). The volume enclosed between the solvent accessible surface and molecular surface is the envelope volume (VE = VSA - VMS). It is well established that the voids in the native protein structure determine the pressure unfolding of proteins [5,6]. In this paper, we will focus on the calculation of the geometric volume of a protein enclosed within the molecular surface, which can be computed knowing the Cartesian coordinates of protein atoms found in PDB structure files.
Figure 1
Figure 1

Schematic diagram depicting surface and volume definitions. The solvent accessible surface is made by tracing out the center of solvent probes (blue circles) rolled around the entire protein surface. The molecular surface definition cleanly separates geometric or solvent-excluded volume (VSE) from the envelope volume (VE) reflecting to solute-solvent interactions. The molecular surface volume (VMS) is the sum of the van der Waals (VVDW) and void volumes (VVoid).

Currently there are several algorithms to calculate geometric volumes of proteins. They can be divided into three distinct categories. The first is 3D grid-based calculations and include VOIDOO [7], AVP [8], 3 V [9], Voronoia [10]. The second category uses analytical methods and includes MSROLL [11], VORLUME [12] and ALPHAVOL [13]. The third category includes calculations based on Delaunay triangulation such as VADAR [14] or Monte Carlo method such as MCVOL [15]. Each of these methods has its own advantages but more importantly some disadvantages. For example, 3D-grid methods have irreproducibility issues due to the positioning of protein structure on the grid. The Delaunay triangulation does perform well in the protein interior but suffers from uncertainty of how protein boundaries are delineated. These issues are sometimes further amplified upon implementation in software packages that are usually written to evaluate a particular property (see comparison in Additional file 1: Table S1).

Several methods calculate VVDW and VSA. VOIDOO [7] is a 3D grid-based algorithm that calculates the VVDW and/or VSA of a protein. VORLUME [12] and ALPHAVOL [13] are analytical alpha-shape methods that also calculate VVDW and/or VSA. Another method to calculate protein volume involves partitioning the space around each atom into Voronoi polyhedra, as implemented by Finney in 1970 [16] and Richards in 1974 [17]. However, this method does not calculate any of the volumes individually, but instead calculate the sum of the VVDW, VVoid, and portions of the VE. Parts of the VE are assigned to surface atoms because the boundary separating protein and bulk solvent is drawn between the surface atoms and neighboring solvent molecules. Thus, the boundary separating protein and bulk solvent is highly dependent on the method used for the placement of the solvent molecules. Depending on the placement method, the volume and packing density of surface atoms will vary. Since parts of the VE are grouped with protein atoms, it is impossible to separate hydration or geometric volume components from the total volume computed using Voronoi polyhedra methods.

It is crucial to separate geometric and hydration volumes of a protein to understand the magnitude of contribution of each of these components to the total volume of a protein in solution. Therefore, it is necessary to calculate the VMS of a protein instead of VSA and VVDW. Unfortunately, there are a limited number of non-grid based programs that can calculate VMS. MCVOL [15] uses a Monte Carlo algorithm to approximate the VMS of a protein, whereas MSROLL [11] analytically calculates VMS. However, both programs have inherent limitations. MCVOL will underestimate VVoid when the diameter along the shortest axis of a cavity is larger than 2.8 Å, because a point is considered part of the solvent if it is more than 1.4 Å away from the surface of any protein atom [15]. MSROLL is extremely fast, but it suffers from lower robustness when encountering degenerate geometry. Finally neither is available as a web-server. We present ProteinVolume, a robust method to numerically calculate VMS, VVDW and VVoid using a flood-fill algorithm to generate the molecular surface and fill the surface interior with high-resolution probes. Volume probes can dynamically reduce their radius when needed, increasing the accuracy of numerical approximation.


ProteinVolume is available as free-standing software as well as via a web-based interface from Below we describe the overall properties of the ProteinVolume followed by the description of web-server.

Surface generation

The surface of a protein is generated from the user provided Protein Data Bank (PDB) coordinates using a flood-fill algorithm operating in the spherical coordinate system, analogous to rolling a ball on the surface of a protein. The furthest atom from the protein center of mass is selected as the starting atom. Then, an exhaustive ray-sphere intersection test is carried out on all angles around the starting atom to find an unoccupied position for a probe with 1.4 Å radius. This is the starting position for the surface algorithm. The starting spherical coordinates are converted into Cartesian coordinates and then the surface is grown from that starting point using a flood-fill algorithm. A hashset is used to store all previously visited locations on each atom surface to prevent backtracking. To detect inter-atom surface probe collisions, all surface probes within nearby spatial bins are tested for distance below a minimum cutoff, the surface probe minimum distance (default value set to 0.1 Å). For reference, this method generates approximately 500,000 surface probes for the native structure of ubiquitin (1UBQ, 76 residues, 1,231 atoms) in ~2 seconds on a single core of an i7-3630QM.

Volume calculation

The total volume and van der Waals volume of a protein is also calculated using a flood-fill algorithm (see Figure 2). The atom closest to the center of mass of the protein is selected as the starting point. A volume probe is then placed at the center of the starting atom and volume probes are grown outwards until they are 1.4 Å away from any surface probe, thus filling the molecular surface. Upon collision with any surface probe, a volume probe is replaced by 8 new volume probes with half its radius as to increase the volume calculation resolution. This process continually repeats itself upon collision until the new volume probe is less than the preset minimum volume probe radius. Volume probes are treated as cubes for the purposes of volume calculations. The sum of all volume probes is calculated and reported as the total protein volume (VMS). Van der Waals volume is also calculated during the same step as the total volume calculation procedure, but with an additional check of whether the volume probe is within the van der Waals radius of a protein atom. A probe which lies on top of a van der Waals boundary will be randomly accepted based on its magnitude of overlap with the atom. This increases the accuracy of the van der Waals volume calculation and reduces the volume underestimation of numerical integration methods. The sum of all van der Waals volume probes is calculated and reported as van der Waals protein volume (VVDW). Void volume, VVoid, is calculated as the difference between the total volume and the van der Waals volume.
Figure 2
Figure 2

Cartoon representation of probes filling the voids inside a protein. For illustrative purposes this picture was generated with the probe size (yellow) fixed at 0.2 Å. Actual calculations were run with the starting probe size of 0.04 Å (see Figure 3).


Grid-based spatial binning is employed to reduce the number of collision checks when placing a new volume probe in the protein. The entire 3D coordinate space is divided into cubic spatial bins of 2 Å diameter. This value is slightly larger than the radius of the largest protein atom which will minimize the number of possible bins an atom can occupy. Each existing protein atom and generated surface probe is added into a hashmap of spatial bins before volume calculation. The data structure of the hashmap is a spatial bin index and an ArrayList of atoms/probes. The spatial bin index is calculated from the 9 possible extreme edges of each sphere and duplicate bin indices are ignored. When testing for a collision between volume probes and surface atoms or nearby protein atoms, only spatial bins surrounding the volume probe are selected for collision testing as to reduce computational time. This results in an overall runtime complexity of O(n), where n is the number of atoms in the system.

Language and libraries

ProteinVolume was programmed in Java (JDK 1.7) using the Trove collections library for higher performance and overall lower memory usage. ProteinVolume is platform independent and can be run on any platform with a Java runtime environment.

ProteinVolume web interface

ProteinVolume web interface allows users to upload PDB files and run ProteinVolume from any device without expending their local computing resources. We have strived to create a clean, user-friendly, and responsive interface for ease of use. All interactions with the server are AJAX-powered, which provides a native feel to the application. Users are presented with a form that allows them to upload file(s) of interest and fill in their names and email addresses. Anonymous users are allowed to upload one PDB file whereas users providing their name are allowed to upload up to ten PDB files. After the PDB files are uploaded, users are placed into a queue. As resources become available, the job is executed and the output of the program is displayed in real time to the user and a progress bar is displayed. The progress bar shows the percent completion value, estimated based on the total number of atoms in all submitted PDB files and the selected ProteinVolume options.

Input structure preparation

The default option of ProteinVolume uses explicit hydrogen atoms and Bondi [18] van der Waals radii for all atoms due to overestimation of van der Waals volumes when united atom radii are used. It is highly recommended to energy minimize all structures before volume processing to reduce unfavorable steric clashes that will skew volume results and make volume comparisons inaccurate. For example, we routinely energy minimize our proteins using the CHARMM27 [19] all-atom forcefield in GROMACS [20] for 1 ps using the steepest decent method in implicit solvent and a 1 nm cutoff for electrostatic interactions. This will also add all hydrogen atoms to the structure. The user can add minimization as a preprocessing option to web server calculations. Alternatively, the hydrogen atoms can be explicitly [12] modeled using REDUCE software [21]. In the executable version of ProteinVolume, the user can modify the van der Waals radii set by editing parameter file. If hydrogen atom radius is set to zero, hydrogens will be ignored in the calculations.


The volume calculation of a protein ranges from seconds to minutes depending on protein size and program options. On a single core of an i7-3630QM @ 2.4ghz, the structure of ubiquitin (1UBQ, 76 residues) takes ~1 minute to calculate with 0.08 Å starting probe size, 0.02 Å ending probe size, and 0.1 Å surface probe minimum distance. With the current server hardware the same protein with the same parameter settings takes ~9 min. The computational complexity of the algorithm is O(n) or linear, where n is the number of atoms in the system, due to spatial binning optimizations which limit the number of pairwise distance calculations.


A set of 1,379 high-resolution (<1.7 Å) crystal structures had their native ensembles modeled and calculated with ProteinVolume. MODELLER [22] was used to model the native ensemble, which contained 11 structures per protein. The range of protein sizes was between 40 to 1,052 amino acid residues. The total number of structures tested was 15,169. For all structures, ProteinVolume successfully calculated volumes without runtime errors.


The effects of the probe size parameters

Three parameters, starting probe size, ending probe size, and surface probe minimum distance, have a significant effect on the running time and accuracy of the algorithm.

The starting probe size is the initial radius of probes prior to collision with protein atoms or surface probes. Probes halve in radius upon collision with protein atoms or surface probes to increase the accuracy of calculations. The ending probe size specifies the minimum radius of all probes. Probes that would become smaller than the ending probe size after division are prevented from dividing. Increasing the starting and ending probe sizes speeds up computational time at the expense of volume accuracy due to imperfect packing of the probes around the edges of protein atoms and the protein surface. The default value of starting and ending probe sizes is 0.08 Å and 0.02 Å, respectively, which provides a good balance between runtime and accuracy (see Figure 3A).
Figure 3
Figure 3

The effects of the probe size parameters on the running time and accuracy of the algorithm. Panel A. Dependence on the starting probe size. Panel B. Dependence on the surface probe minimum distance. Blues lines – the running time; Red bars – default parameters used in all calculations (see text for details).

The surface probe minimum distance is the minimum distance at which two surface probes can be placed next to each other. When this value is increased, surface probe density decreases which causes a significant reduction in pairwise distance calculations made and reduces processing time taken. The default value for surface resolution is 0.1 Å. Increasing this up to 0.4 Å will decrease computational time at the expense of accuracy of the calculations (see Figure 3B). A surface probe minimum distance of 0.1 Å generates a very high-resolution surface of approximately 5,000 probes per a single isolated atom.


ProteinVolume was benchmarked against two volume calculation programs: MCVOL [15] and MSROLL [11]. MCVOL uses a Monte Carlo algorithm to approximate the VMS and VVoid of a protein. MSROLL analytically calculates the VMS of a protein. Triangles occupying the intersection volume between atoms are discarded. VMS is calculated by summing the volume of each triangular pyramid formed by the tessellated surface to the center of each atom. 217 ultra-high resolution (0.7-1.2 Å) crystal structures [23,24] were selected for benchmarking volume calculations Additional file 2. Ultra High Resolution Protein Set (0.73 - 1.20 Å). These two programs were selected because they directly compute VMS. The average VMS deviation between ProteinVolume and MCVOL or MSROLL was 0.2% and 0.7%, respectively (Additional file 3: Figure S1). The excellent agreement of ProteinVolume, with MSROLL and MCVOL shows that ProteinVolume is accurately calculating VMS. Since VOIDOO, Vorlume, and AlphaVol directly compute VSA instead of VMS, direct comparison with ProteinVolume volumes is not possible, yet the VVDW computed by for example VOIDOO is in excellent agreement with VVDW computed by ProteinVolume (see Additional file 3: Figure S1). To test whether ProteinVolume accuracy was dependent on crystallographic resolution, calculations performed on a set of proteins, solved to an ultra-high resolution (0.7 - 1.2 Å, n = 217) was compared to a set solved to high resolution (1.2 - 1.7 Å, n = 1,161). As expected [25], both sets display the same slope and intercept for the dependence of volume on the protein size (Additional file 3: Figure S1). This indicates that accuracy of ProteinVolume is independent of the crystallographic resolution.

Scaling behavior of geometric volumes of proteins

Figure 4A compares the dependences of VMS, VVDW and VVoid on the number of amino acid residues in proteins. The dependence is linear in all three cases suggesting that as the protein size increases, the corresponding geometric volumes also increase. The slopes of the dependences, however is not the same, it is the largest for VMS and smallest for VVoid. In other words, as the total volume of protein increases the fraction of void volume, fVoid = VVoid/VMS increases nonlinearly. In fact smaller proteins have smaller fVoid than the larger ones (Figure 4B). The dependence plateaus at ~200-250 amino acid residues which is considered to be an upper limit of protein domains [26,27]. Longer proteins with more than ~250 amino acid residues usually consist of multiple structural domains [28].
Figure 4
Figure 4

The size scaling behavior of geometric of volumes of proteins. Panel A. Dependence of the molecular surface volume (circles, VMS), the van der Waals volume (triangles, VVDW) and void volumes (upside-down triangles, VVoid) on number of amino acid residues in proteins (Naar). Panel B. Dependence of fraction of void volume on protein size.

The void volumes inside the proteins, i.e. the magnitude of VVoid, have been implicated in determining the pressure unfolding of proteins [5,6]. The prediction based on the scaling behavior of VVoid is that larger proteins will be more prone to unfold under pressure. This prediction still awaits experimental validation.


We present ProteinVolume, a volume calculator that reports the van der Waals (VVDW), void (VVoid), and total volume (VMS) enclosed within the molecular surface a protein. The VMS, or solvent-excluded volume, can be thought of as the geometric volume contribution of a protein which consists of van der Waals and intramolecular void volume. This allows us to clearly separate the volume contribution of the protein geometry (VMS) and the protein-solvent interactions (hydration volume). The sum of these two components should result in a better approximation of the apparent volume of a protein molecule in solution than other computational models which are based on the volume enclosed by the accessible surface area. Finally, partitioning the volume components into geometric (VMS) and hydration components will lead to a quantitative insight of each term, and will allow rational engineering of volume changes in proteins.

Availability and requirements

Project name: ProteinVolume

Project home page:

Operating system(s): Platform independent

Programming language: Java

Other requirements: Java Runtime Environment 1.7 and above

License: Closed source proprietary

Any restrictions to use by non-academics: none



This work was supported by the US National Science Foundation grant CHE-1145407 (Chemistry of Life Processes).

Authors’ Affiliations

Department of Biological Sciences and Center for Biotechnology and Interdisciplinary Studies, Rensselaer Polytechnic Institute, 110 8th Street, Troy, NY 12180, USA


  1. Royer CA. Revisiting volume changes in pressure-induced protein unfolding. Biochim Biophys Acta. 2002;1595:201–9.View ArticlePubMedGoogle Scholar
  2. Chalikian TV. On the molecular origins of volumetric data. J Phys Chem B. 2008;112:911–7.View ArticlePubMedGoogle Scholar
  3. Schweiker KL, Fitz VW, Makhatadze GI. Universal convergence of the specific volume changes of globular proteins upon unfolding. Biochemistry. 2009;48:10846–51.View ArticlePubMedGoogle Scholar
  4. Richards FM. Areas, volumes, packing and protein structure. Annu Rev Biophys Bioeng. 1977;6:151–76.View ArticlePubMedGoogle Scholar
  5. Frye KJ, Royer CA. Probing the contribution of internal cavities to the volume change of protein unfolding under pressure. Protein Sci. 1998;7:2217–22.View ArticlePubMedPubMed CentralGoogle Scholar
  6. Roche J, Caro JA, Norberto DR, Barthe P, Roumestand C, Schlessman JL, et al. Cavities determine the pressure unfolding of proteins. Proc Natl Acad Sci U S A. 2012;109:6945–50.View ArticlePubMedPubMed CentralGoogle Scholar
  7. Kleywegt GJ, Jones TA. Detection, delineation, measurement and display of cavities in macromolecular structures. Acta Crystallogr D Biol Crystallogr. 1994;50:178–85.View ArticlePubMedGoogle Scholar
  8. Cuff AL, Martin AC. Analysis of void volumes in proteins and application to stability of the p53 tumour suppressor protein. J Mol Biol. 2004;344:1199–209.View ArticlePubMedGoogle Scholar
  9. Voss NR, Gerstein M. 3V: cavity, channel and cleft volume calculator and extractor. Nucleic Acids Res. 2010;38:W555–62.View ArticlePubMedPubMed CentralGoogle Scholar
  10. Rother K, Hildebrand PW, Goede A, Gruening B, Preissner R. Voronoia: analyzing packing in protein structures. Nucleic Acids Res. 2009;37:D393–5.View ArticlePubMedGoogle Scholar
  11. Connolly ML. Computation of Molecular Volume. J Am Chem Soc. 1985;107:1118–24.View ArticleGoogle Scholar
  12. Cazals F, Kanhere H, Loriot S. Computing the Volume of a Union of Balls: A Certified Algorithm. ACM. 2011;38:1–25.Google Scholar
  13. Edelsbrunner H, Koehl P. The weighted-volume derivative of a space-filling diagram. Proc Natl Acad Sci U S A. 2003;100:2203–8.View ArticlePubMedPubMed CentralGoogle Scholar
  14. Willard L, Ranjan A, Zhang H, Monzavi H, Boyko RF, Sykes BD, et al. VADAR: a web server for quantitative evaluation of protein structure quality. Nucleic Acids Res. 2003;31:3316–9.View ArticlePubMedPubMed CentralGoogle Scholar
  15. Till MS, Ullmann GM. McVol - A program for calculating protein volumes and identifying cavities by a Monte Carlo algorithm. J Mol Model. 2010;16:419–29.View ArticlePubMedGoogle Scholar
  16. Finney JL. Random Packings and Structure of Simple Liquids.1. Geometry of Random Close Packing. Proc R Soc Lon Ser-A. 1970;319:479–93.View ArticleGoogle Scholar
  17. Richards FM. Interpretation of Protein Structures - Total Volume, Group Volume Distributions and Packing Density. J Mol Biol. 1974;82:1–14.View ArticlePubMedGoogle Scholar
  18. Bondi A. Van Der Waals Volumes + Radii. J Phys Chem-Us. 1964;68:441–7.View ArticleGoogle Scholar
  19. Brooks BR, Brooks CL, Mackerell AD, Nilsson L, Petrella RJ, Roux B, et al. CHARMM: The Biomolecular Simulation Program. J Comput Chem. 2009;30:1545–614.View ArticlePubMedPubMed CentralGoogle Scholar
  20. Pronk S, Pall S, Schulz R, Larsson P, Bjelkmar P, Apostolov R, et al. GROMACS 4.5: a high-throughput and highly parallel open source molecular simulation toolkit. Bioinformatics. 2013;29:845–54.View ArticlePubMedPubMed CentralGoogle Scholar
  21. Word JM, Lovell SC, Richardson JS, Richardson DC. Asparagine and glutamine: using hydrogen atom contacts in the choice of side-chain amide orientation. J Mol Biol. 1999;285:1735–47.View ArticlePubMedGoogle Scholar
  22. Fiser A, Sali A. MODELLER: Generation and refinement of homology-based protein structure models. Method Enzymol. 2003;374:461–91.View ArticleGoogle Scholar
  23. Bush J, Makhatadze GI. Statistical analysis of protein structures suggests that buried ionizable residues in proteins are hydrogen bonded or form salt bridges. Proteins. 2011;79:2027–32.View ArticlePubMedGoogle Scholar
  24. Loladze VV, Makhatadze GI. Energetics of charge-charge interactions between residues adjacent in sequence. Proteins. 2011;79:3494–9.View ArticlePubMedGoogle Scholar
  25. Fleming PJ, Richards FM. Protein packing: Dependence on protein size, secondary structure and amino acid composition. J Mol Biol. 2000;299:487–98.View ArticlePubMedGoogle Scholar
  26. Trifonov EN, Berezovsky IN. Evolutionary aspects of protein structure and folding. Curr Opin Struct Biol. 2003;13:110–4.View ArticlePubMedGoogle Scholar
  27. Sandhya S, Rani SS, Pankaj B, Govind MK, Offmann B, Srinivasan N, et al. Length variations amongst protein domain superfamilies and consequences on structure and function. PLoS One. 2009;4:e4981.View ArticlePubMedPubMed CentralGoogle Scholar
  28. Privalov PL. Stability of proteins. Proteins which do not present a single cooperative system. Adv Protein Chem. 1982;35:1–104.View ArticlePubMedGoogle Scholar


© Chen and Makhatadze; licensee BioMed Central. 2015
