DSSP over trajectory - returns average not array

GROMACS version: 2020.2
GROMACS modification: No

Dear all,

I’m trying to calculate the secondary structure of a protein as a function of time through the trajectory, which is 400 ns. I’m using the following command wherein I’m using an XTC which is just my protein, and an equivalent topology. I’ve visualised the trajectory from these files in VMD and they are exactly what I would expect/hope to see, so I don’t think this is a trajectory issue.

gmx do_dssp -f md_proc.xtc -s md_proc.tpr -o ss.xpm -dt 1 -tu ns

DSSP (mkdssp 3.0.0) runs as I would expect, and I can see do_dssp processing frames 0-400 ns but when I look at ss.xpm, rather than the array I would expect to see, I just get a single assignment per residue - though the x axis values in the .xpm clearly show values 0-400 ns. I’ve tried using -b and -e flags to use smaller slices (I need to disregard the first 50 ns anyhow) but no joy. And if I try to go ahead and convert this via xpm2ps I get this error:

“Fatal error:
Too many x-axis labels in xpm (max 1)”

And if I use a webtool to convert the xpm to png I get one singular, albeit beautiful, bar.

I’ve gone so far as to load the XTC and an equivalent GRO into MDTraj in IPython and used mdtraj.compute_dssp(traj) - the shape of the array is n_frames x n_residues so I’m not clear on where I’m going wrong with do_dssp.

Is anyone able to shed light on where I’m going wrong with do_dssp?

Many thanks for any advice,

Natalie Tatum
PDRA Newcastle University


this should be the bug(s) that got addressed recently in

Can you check if applying this patch fixes the issue?



Hi Paul,

That’s fixed it, thanks very much!