Comparing 2 PCA vectors of different systems

GROMACS version: 2018
GROMACS modification: No

Dear GROMACS community,

I have recently tried to do a PCA for a set of various similar systems:

  • Protein A
  • Protein A linked to different antibodies

I wanted to see if the motions of the bound systems were different compared to the original protein. I could quite easily use gmx covar and gmx anaeig to obtain the eigenvectors and value but I now want to check whether the PC1 of a system would be the same as the PC1 (or PC2, …) of another.

I thought I could use the gmx anaeig with -over and -inpr options using -v and -v2 for two vectors, but the ouput I have is a blurry image that does not allow me to retrieve numerical data. Ideally, I would like to obtain something similar to this figure from the 1998 thesis of Antonius Bernardus Maria Linssen :

Would you have any idea on how to obtain these graphics with a GROMAC function or manually ?

Best regards,

David Cauwenbergh
PhD Student
Université Libre de Bruxelles

Hi David,

The -over option should provide you with an .xvg file that contains plain numbers, only the -inpr does use the .xpm format that will be a blurry image due to the way it is rendered in your machine, but does contain a number of pixels where each pixel represents a compressed number - even though you can back-calculate the values from the .xpm file it’s arguably not the most useful way to extract exact numbers.

The .trr files that store the eigenvectors are just usual compressed trajectory files, so you can convert them with some trickery to plain number formats and continue calculations directly from there - using an input structure with as many atoms as were part of the PCA analysis group, you may apply trjconv to obtain an output trajectory in .gro or .pdb format, where each frame corresponds to one eigenvector.

One alternate route is to jump over file conversions and do the PCA in python using
where you can directly access the eigenvectors as well.