From: Giacomo Fiorin (
Date: Mon Dec 06 2021 - 12:57:32 CST

Hi, using VMD tools the most computationally efficient way could probably
use "measure rdf" or "measure gofr" to compute a distance distribution
between your molecule and the surface's atoms for one frame. Because the
NxM loop is done in the C++ code, looping over thousands of distance pairs
is not so bad. Once you have g(r) as an array for that frame, you could
loop over it from the minimum distance until you hit enough positive
counts, at which point the corresponding "r" would be your distance.

How to define the threshold is up to you, you could use e.g. a percentile
to minimize discontinuities between frames due to discretization of the
g(r), but it gets a bit tedious to do in Tcl so you could process that data

If your trajectory frames are well correlated with each other, you could
also compute the RDF over longer segments than one frame.


On Mon, Dec 6, 2021 at 1:41 PM Raman Preet Singh <> wrote:

> Dear All,
> I am interested in calculating the distance between a set of atoms from a
> curved surface. There is a distance.tcl script available as well as several
> tutorials which either measure distance between two atoms (or a range of
> atoms) or COM of atoms/residues.
> Is there a way that I can adapt the distance.tcl script to measure
> distance of atoms from a curved surface? (the surface is composed of
> several thousands of atoms and it doesn't really makes sense to determine
> distance of all atoms of the surface vs atom selection of an interacting
> molecule)
> Any directions towards existing script(s) or modifications will be helpful.
> Thanks,
> Raman