Trjconv does outputs structure of only monomer in case of dimeric protein

GROMACS version: 2018
GROMACS modification: No

Hello all,

When I use trjconv to output a specific frame of the simulation in pdb format, I receive output of only one monomer of my dimeric protein. This happens even if I use the entire system as output for trjconv.

Kindly let me know how to resolve this issue.

Thanks in advance

Did you save the entire system during the simulation, or did you use compressed-x-grps to write only a subset? What does gmx check tell you about the contents of the trajectory in terms of number of atoms, and does this meet your expectations?

I have saved the entire simulation, gmx check number of atoms is exactly as I expected. At the end of my NPT equilibriation, the gro file output is dimeric. I couldn’t complete the entire simulation due to HPC issues so i haven’t got the gro file from the deffnm of the mdrun. However trjconv outputs only the monomer.

Output coordinate files (final snapshots) always contain the whole system. That doesn’t indicate anything. Please provide the complete screen output of gmx check and your gmx trjconv command and its output, including the selection(s) you made.

GROMACS: gmx check, version 2020.2
Executable: /home/apps/bio_tools/gromacs/2020.2/bin/gmx_mpi
Data prefix: /home/apps/bio_tools/gromacs/2020.2
Working dir: /scratch/hussainb.iiser/disulfide_dimer_gromacs
Command line:
gmx_mpi check -f md_0_100_disulf.xtc

Checking file md_0_100_disulf.xtc
Reading frame 0 time 0.000
Atoms 143510
Precision 0.001 (nm)
Reading frame 2000 time 200000.000

Item #frames Timestep (ps)
Step 2610 100
Time 2610 100
Lambda 0
Coords 2610 100
Velocities 0
Forces 0
Box 2610 100

This is the output of gmx check.

This is the output after my trjconv command:

GROMACS: gmx trjconv, version 2020.2
Executable: /home/apps/bio_tools/gromacs/2020.2/bin/gmx_mpi
Data prefix: /home/apps/bio_tools/gromacs/2020.2
Working dir: /scratch/hussainb.iiser/disulfide_dimer_gromacs
Command line:
gmx_mpi trjconv -f md_0_100_disulf.xtc -s md_0_10.tpr -dump 220000 -o 220.pdb

Note that major changes are planned in future for trjconv, to improve usability and utility.
Will write pdb: Protein data bank file
Reading file md_0_10.tpr, VERSION 2020.4 (single precision)
Reading file md_0_10.tpr, VERSION 2020.4 (single precision)
Select group for output
Group 0 ( System) has 143510 elements
Group 1 ( Protein) has 6976 elements
Group 2 ( Protein-H) has 3514 elements
Group 3 ( C-alpha) has 464 elements
Group 4 ( Backbone) has 1392 elements
Group 5 ( MainChain) has 1854 elements
Group 6 ( MainChain+Cb) has 2286 elements
Group 7 ( MainChain+H) has 2302 elements
Group 8 ( SideChain) has 4674 elements
Group 9 ( SideChain-H) has 1660 elements
Group 10 ( Prot-Masses) has 6976 elements
Group 11 ( non-Protein) has 136534 elements
Group 12 ( Other) has 136534 elements
Group 13 ( POT) has 151 elements
Group 14 ( CLA) has 129 elements
Group 15 ( TIP3) has 136254 elements
Select a group: 0
Selected 0: ‘System’
Reading frame 0 time 0.000
Precision of md_0_100_disulf.xtc is 0.001 (nm)
Reading frame 0 time 0.000
Back Off! I just backed up 220.pdb to ./#220.pdb.3#
Reading frame 2000 time 200000.000
Dumping frame at t= 220000 ps
→ frame 0 time 220000.000

Hope this helps

just attaching the image post the NPT simulation. There seems to be no problem with this

Can you try to make gro file from trjconv and check it?

You can’t determine the contents of a file simply by looking at a default PyMOL rendering. What you’re seeing is a product of PyMOL being unable to guess secondary structure. Render the protein as lines or something else and I guarantee it’s there. If you want to verify the contents of a file, look at the actual contents in a text editor, not a visualization program that makes guesses about things.

I did check the pdb and gro files that I have output. The contents of the dimer are still there but as you said there seems to be a rendering issue. Is there any way to resolve this?

Remove water and ions. Usually the failure to render cartoons is due to some contact that is slightly too close to the backbone for PyMOL to figure out what the appropriate bonded connectivity is.