A question about 3V

Regarding your paper entitled "3V: cavity, channel and cleft volume calculator and extractor", which I read carefully.

I’ve a question for you. In the abstract, it is written the following:"It rapidly finds internal volumes by taking the difference between two rolling-probe solvent-excluded surfaces,…", but I think you mean "two imaginary rolling-probe solvent-excluded surfaces" because after looking at your code, I haven’t seen any analytic SES formulation therein. I guess you are just using two probe spheres of distinct radii to account for cavities, not the analytic SES themselves. Am I right?

I am not certain about your use of the term "imaginary", but I would say my method is a "discrete approximation" to the SES. And because it is discrete (i.e. a 3D grid) one can simply subtract one grid from another. See attached figures.

With small grid sizes (0.2 A), I see very little discrepancy to the analytical solution.




Help with Voronoi software

I have a protein PDB structure I’ve seen you this text,,I want to use Voronoia software to find the cavity of the protein and the amino acids of the cavity ,Can you help me to analyse it? I want to use the SURFNET software to find my cavity,can you help me to analyse? the following is my protein PDB structure.

My apologies for the confusion, but SURFNET was not written by our group. SURFNET was written by Laskowski. Perhaps you could reach out to that team, and they may be able to help:

SURFNET: a program for visualizing molecular surfaces, cavities, and intermolecular interactions.
Laskowski RA1.

If you’re interested in using a similar software, you may want to try our 3V server:

If you experience difficulties using 3V, please do not hesitate to let us know.

ps — By the way, I just ran 3v on your pdb. Feel free to set whatever parameters you like, but I used 2 and 6 as probe radii. See attached results.

Need help on 3v

I have been running the channel extraction utility of the 3v and I was able to analyze the results successfully using chimera.

However now I want to run on the multiple files by using the local copy of the program. So I just rerun the calculation for the test case to check if I get the same results as the server. But i am not able to do so. I have tried various option but nothing is seems to be working.

Please let me know if you have any suggestion.

the command that was run is on the server is:

Channel.exe -i 2016.aug31.c64.xyzr -b 10.000 -s 3.000 -t 1.500 -g 1.000 -x -57.519 -y -8.258 -z -52.322 -m 2016.aug31.c64.mrc

Can you compare it to what you were running locally?

Trouble installing libproteingeometry on Ubuntu 12.04

I am trying to set up your software package (libproteingeometry) on a lab
desktop. I having trouble during the Make step. After running for a while,
one of the packages is unable to link to the appropriate math header files,
causing make to exit with an error. I am able to understand some C++ coding,
but am not proficient enough to come up with a solution to this problem
independently. I would like to use your program, so is there anyway that you
can put me in contact with someone in your lab who might be able to help me
finish installing this software?

Apologies again for the delay. May I ask how many structures you plan on running? Customizing libprotgeometry for your machine’s settings may be pretty tricky, especially from our end. If you’re not running too many structures, I’d highly suggest using the Online version of this tool (assuming you’re calculating residue-level packing metrics), linked here:


Unfortunately, I plan on using you program in some molecular dynamics analysis, so the number of structures would be on the order of thousands. I fee like this is too much to run on your server (unless your server has a MD analysis option that I missed, which would be great).

I can send you specific error messages I have upon trying to run the make command. Please let me know what would help you. I saw this error on a forum somewhere where it looked like the problem had been solved, but the solution was not posted.

Yes, please do send us specific error messages upon trying to run make, as well as any other error messages that you obtain. The more info we have, the better. We’ll try to sort things out. Also, what type of OS is your machine running?

I run ubuntu 12.04. I’m pretty sure the system is a converted dell. i5 processor, with nvidia graphics card. I’ll send the error messages in the morning.

Volume calculations w/3V

I would really appreciate if your could assist me with an issue I encounter by using your online 3V software.
I am trying to compute the cavity size of a host (which I also did two years ago, see Org. Biomol. Chem., 2013, 11,
7667) but am receiving the message: "failed to create an MRC file”.

Program is still running, progress is shown below
host ip address= (Tue Mar 31 17:13:16 2015)
converting pdb into xyzr (Tue Mar 31 17:13:16 2015)
completed conversion of PDB file: 2015.mar31.8dd.pdb (size: 4k) (Tue Mar 31 17:13:16 2015)
converted 128 atoms of 128 atoms (Tue Mar 31 17:13:16 2015)
found 128 atoms in pdb (Tue Mar 31 17:13:16 2015)
running 3v channel program (Tue Mar 31 17:13:16 2015)
failed to create an MRC file (Tue Mar 31 17:13:16 2015)

The program stops and does not provide me with any result.

I looked at the log file and the program does not find a cavity at coordinate 0,0,0. I tried it again with a high resolution grid size.

I used the cached PDB that you uploaded and I managed to get a channel using channel finder:

It missed the channel, I think if you use the coordinates, 5,0,0 it will work better:

Dealing w/system boundaries in Voronoi calculations & assigning radii to pseudo-water

I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:


I understand that the bisection of distances between atoms means that the radius does not matter. However, what happens at the boundary of the system?

Also, if you add ‘pseudo-water’ to the system, then do the water atoms need to have a particular radius? If not, then is there a distance cutoff?

With respect to your first question (regarding the boundary of the system — ie the protein surface): the Voronoi volumes become large and potentially infinite. That’s why you need to introduce solvent. A course lecture may help to further explain this nicely:

With respect to your second question (regarding the radius assigned to water): Yes, the water atoms most definitely need to have a particular radius. Distance cutoffs won’t work. You can probably use the normal water radius here.

Change in contact areas as the radii grow larger (but remain in proportion)


I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:


Is there any work you know off showing how the contact areas change as the radii grow larger but in proportion? … I managed to read in any file definition of atom radii but this has no effect on the area of polygon faces. I also tried to multiply the atom_vdw[ii] but this too had no effect. The main routine I use is "full-dump-polyhedra.main.c".

I think there’s an easy answer. See the DumpAFace routine in the code linked here:


This prints out :
"– Face between atom %3d and neighbour %3d"
& then
"Face-Area= %9.4f Pyramid-Volume=%9.4f\n",area,FaceVolume

If you vary the radii used to parameterize the program, you can see how the contact area changes, perhaps by tabulating the value of the area variable. The effect is, as you guess, rather small but is related to the way optimal radii sets were selected in the past.

With respect to the second part of the question, ie:
I also managed to read in any file definition of atom radii but this
has no effect on the area of polygon faces.
I also tried to multiple the atom_vdw[ii] but this too had no effect.
The main routine I use is "full-dump-polyhedra.main.c".

There’s a number of reasons why this is happening.

(1) You only have one atom type (ie just CA).

In this case, radii are irrelevant and you’re effectively just using bisection. The radii are only relevant when two atoms of different types come into contact, and one has to apportion the space between them.

(2) You have differently typed atoms, but you’re using the normal Voronoi bisection method and not the alternate plane positioning methods using radii.

You need to tell the program explicitly not to use the normal bisection approach via the "-method" argument. See the documentation for calc-volume in the readme file linked here:


I think this argument works properly for full-dump-polyhedra:


See the code for the main() routine to see it being invoked.

(3) You have differently typed atoms & are specifying a non-bisection plane positioning method, but you’re not reading the radii properly.

Here you can verify the atoms are correctly typed by using the show-2rad-refV program, viz:


Re-parameterizing radii when performing Voronoi-based analysis on structures with only the alpha carbon atoms


I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:


I’m hoping to run the calculations using just the CA atoms, and so I must change the radii accordingly. Where should I start in terms of figuring out the new radii that should be used?

The most recent re-parameterization of the radii is from Neil Voss’s work about ten years ago. See


The logic in this paper could be easily extended to derive a set of CA radii.