GROMACS RMSD Analysis: Understanding Non-Zero Initial Values

GROMACS version:5.0.7

Hi Everyone,

Why is my RMSD at t=0 not exactly zero when using the first frame as reference?
I’ve been calculating RMSD for my 300 ns protein simulation. I set up my simulation with:
gmx grompp -f mdout_300ns.mdp -c NPT_5.gro -t NPT_5.cpt -p topol.top -o MD_300ns_1.tpr

Then I ran the simulation and processed the trajectory:
nohup gmx mdrun -deffnm MD_300ns_1 -ntmpi 4 -ntomp 32 > MD_300ns_1.log 2>&1 &
gmx trjconv -s MD_300ns_1.tpr -f MD_300ns_1.xtc -o MD_300ns_1_noPBC.xtc -pbc mol -center

I extracted the first frame from the trajectory and used it as reference to calculate rmsd:
gmx trjconv -s MD_300ns_1.tpr -f MD_300ns_1.xtc -o first_frame.gro -dump 0
gmx rms -s first_frame.gro -f MD_300ns_1.xtc -o rmsd.xvg -tu ns

I selected ‘Protein’ for the first command and ‘Backbone’ for both fitting and RMSD calculation in the second command. The RMSD at t=0 is 0.0000008 nm instead of exactly 0. While this is extremely small, I’m curious about why it’s not precisely zero when comparing a structure to itself. Is this expected behavior due to numerical precision in GROMACS calculations?

Thank you so much for your help!

-Khush

This is an extremely small value which I would argue is completely consistent with being zero. It might be an error due to numerics. Consider that the reference .gro file will have probably less precision than the .xtc file, so there might be some left over length there that sums up to that small number. Maybe with the .tpr as reference rather than the .gro you get ‘better’ agreement with zero, but again the .xtc file has a loss compression format so it might be again not exactly zero!

1 Like

It makes sense, thank you so much for your response!