Energy minimizing multiple frames of an MD trajectory

GROMACS version: 2024.6
GROMACS modification: No

Greetings,

I’m currently running some LSI calcs on simulated water, which needs inherent structures, so I need energy minimized structures. As of right now, my main workflow is:

  1. Post MD, using .trr or .xtc files, use gmx trjconv -sep to dump the individual frames
  2. Using a template energy minimization mdp, run grompp and mdrun on those individual frames one by one.
  3. Use the resulting energy minimized structures (confout.gro) to run my script on, one at a time again.

There are a couple of pain points here, the biggest one being that minimizing thousands of frames from the real trajectory one by one takes a long time. Currently, every frame is being processed one by one, where mdrun launches with 1 GPU and 16 OMP threads. Will it be quicker if I process 16/8 frames in one go, using 1/2 OMP threads respectively?

The other issue is storage. Every grommp and mdrun operation creates cpt, edr, trr, tpr and log files, and they add up quickly. Worse, for a thousand frames, I’m dealing with multiple thousands of small files, about a megabyte in size. This makes file sync and transfers really slow, compared to copying one trajectory file that’s a thousand frames big. Is there a way to get around this?

My LSI script (I’m using mdanalysis) can handle multi-frame trajectories, so ideally, I would like to set up a minimization workflow which takes in a multi-frame trajectory of real structures and puts out a multi-frame trajectory of minimized structures. Unfortunately, trjcat doesn’t work with .gro files, so I couldn’t use that solution without further experimentation.

Ideas are suggestions are much appreciated.