How do I calculate all heavy-atom distances < 6A, per frame?

GROMACS version:2020.4

Hi all, thanks for reading.

I’m sure I’m being dense here. I am trying to get, per frame, all heavy-atom distances less than 6A e.g.

frame, atom1, atom2, distance

0, 12, 32, 4.5
0, 203, 901, 5.6

1004, 14, 301, 3.2

  • gmx distance seems wrong as it’s not fixed pairs, and even if I iterated all pairs, I would be including pairs that are super far apart
  • gmx mindist I thought maybe could be coerced with clever groupings, but I couldn’t see it
  • gmx pair-dist also seemed reasonable, but i wasn’t seeing how

I sort of got it to work with mdmat. This lets me specify ‘per frame’ as well as a threshold, so I can tell it to measure in 1/100 A units and that seems reasonable. And this does get me what I need. But it seems really hacky and I’m spending my time writing xpm and ndx parsers which seems like more work than should be necessary for something that I’m sure is a common task.

What is the preferred method for doing this?

Thank you!