How to measure distance along solvent-accessible surface of protein complex in PDB file?

I am looking for a straightforward way to measure the distance between two active sites in a protein complex (PDB file).
I need the distance along the solvent-accessible surface of the protein and *not* the linear distance that would go through the protein, and which the distance wizard will give.


I would prefer a solution using [PyMOL](https://pymol.org/2/), although I would consider alternatives as well.




I would use linear distances between a suitable amount of fixed points as an approximation. You cannot measure exact distances along a rough surface, as the distance will vary depending on minimum measuring size. This is known as the [coastline length paradox](https://en.wikipedia.org/wiki/Coastline_paradox) in math.


In theory the length would approach infinity as the measuring size approaches zero. In practice you can get around the issue if you use a step size compatible with the smallest stable feature.


A suitable measuring size would probably be in the order of ${\sim}\pu{10^{-11} m}$ or $1/10$ the size of an carbon atom.


 2

As Jeppe Nielsen says in the other answer, the distance along the surface is not defined. I would tackle this visually so that the reader can convince themselves that your distance makes sense. Cut the protein in two parts (with a plane that goes through both of the active sites and the "center" of the protein). Then (in 2D) trace a path and measure its length.


Here is an example using xanthine dehydrogenase. Instead of cutting the protein, I used slabbing to remove the top part. This ensures an orientation where the plane is in the plane of the paper.


[![enter image description here](https://i.stack.imgur.com/QNU0S.png)](https://i.stack.imgur.com/QNU0S.png)


Using the linear distance shown as a scale bar, you can estimate the path length. This is all approximate, as it should be because the problem is ill-defined. If I choose a different orientation or slab, I will get a slightly different answer. You could also first select some surface atoms to define the path, and then estimate the distance by adding up atom-pair distances. Then, you could visualize the path in a 3D figure and state the distance.


 0