Membrane Protein system_inflate.gro error generation for an oligomer maybe an inflategro.pl problem?

GROMACS version: 2022.1
GROMACS modification: No
Here post your question:

I have spent a considerable amount of time on the above problem concluding that maybe the inflategro.pl needs to be adjusted to generate a proper system_inflate.gro file exhibiting a correctly generated top atom count of 36263 matching the topol.top.

After running the below command:

gmx grompp -f minim_inflategro.mdp -c system_inflated.gro -p topol.top -r system_inflated.gro -o system_inflated_em.tpr

I received the below error:

Fatal error: number of coordinates in coordinate file (system_inflated.gro, 41663) does not match topology (topol.top, 36263)

Prior to this command I performed the below command to generate the system_inflate.gro file:

Step Three: Defining the Unit Cell & Adding Solvent

  1. Pack the lipids around the protein

perl inflategro.pl system.gro 4 DPPC 14 system_inflated.gro 5 area.dat

this resulted in the output below:

There are 20 lipids within cut-off range… 11 will be removed from the upper leaflet… 9 will be removed from the lower leaflet… I then removed these 20 lipids from my topol.top file resulting in a topol.top DPPC 108 total.

  • My generated system_inflate.gro is defunct not exhibiting a proper visualization via Pymol nor VMD.

  • My generated system_inflate.gro exhibits a generated 41663 total atom count instead of the proper 36263.

  • My generated system_inflate.gro file exhibits 30863 residue atoms and 128 lipids (128 x 50 = 6400 lipid atoms) only totaling 37263 total atoms accordingly it can not reach the intended 41663 atom count when inputting the below command:

gmx grompp -f minim_inflategro.mdp -c system_inflated.gro -p topol.top -r system_inflated.gro -o system_inflated_em.tpr

In conclusion my system_inflate.gro file should of generated a total atom top count of 36263 allowing me to then run the command:

gmx grompp -f minim_inflategro.mdp -c system_inflated.gro -p topol.top -r system_inflated.gro -o system_inflated_em.tpr

which would of then of read all atoms of my system_inflated.gro file up until DPPC 109 i.e. 36263 atoms from the total of 37263 total atoms in this file.

I do not believe that this is a bookkeeping issue adjustment and instead believe it is maybe an oligomer inflategro.pl compatibility problem since when similarly running these two commands for the KALP Membrane Protein the system_inflate.gro generated file for KALP runs error free throughout the energy minimization via its system_inflate.gro file exhibiting a top generated total atom count of 6438 resulting in it being properly read through the 138th final residue atom into the 126th DPPC final 6300th DPPC atom; 138 + 6300 = 6438 (two DPPC were deducted, 127 and 128).

Any insight would be greatly appreciated to help fix this error, thanks:)

The issue is bookkeepping. InflateGRO is a very simplistic script. It reads through and looks for known protein residue names and assigns those to a group to use as reference for distance calculations, then it looks for residues with the name you specify to delete if they are too close. That’s it. If your input topology is correct and you update it correctly, there should be no issue.

This message from grompp is inconsistent with what you’ve said in terms of atom numbers, which honestly I have a very hard time following from what you’ve written. This is a difference of 5400 atoms, with the coordinate file having more atoms than the topology, which makes no sense at all. Moreover, if 20 lipids were deleted, that would mean there are 270 atoms per lipid, which is also not right. Something in your file management or naming is likely going awry here, in addition to what you’re trying to modify.

This means you’ve broken the syntax of the file, either by leaving in header or box vector lines from combining the lipids and protein or by specifying an incorrect number of atoms in the file on line 2. Check before running InflateGRO that it displays properly. If it doesn’t, the file is mangled and likely won’t even be processed properly by InflateGRO. If the script runs, check the output and make sure it displays correctly.

Hi Justin thank you for your kind update:).

Great email and yes I agree with everything that you had stated and believe that my system_inflate.gro is not being visually exhibited via Pymol because of this generated incorrect number of atoms exhibited in the file on line 2.

I worked through the KALP Membrane Tutorial up- to the energy minimization command:
gmx mdrun -deffnm system_inflated_em

with zero errors, accordingly I will investigate my oligomer all over again and see where my file management or naming is awry and let you know where I end up, thanks a bunch again for the affirmation :), Joel 🚀

…and my executed command:
perl inflategro.pl system.gro 4 DPPC 14 system_inflated.gro 5 area.dat

is exhibiting the below output with maybe the repeated `argument isn´t numeric´ being the cause of my defunct generated system_inflate.gro (my system.gro was generated successfully).

See below:

     printf OUTPUT "%5d%-5s%5s%5d%8.3f%8.3f%8.3f\n",$resnum_l[$k],$resname_l[$k],$atmname_l[$k],$atmnum_l[$k],$newx,$newy,$z_l[$k]; 

joelsubach@Joels-Air GalaxyPanx1_Seq. % perl inflategro.pl system.gro 4 DPPC 14 system_inflated.gro 5 area.dat

Reading…
Scaling lipids…
There are 128 lipids…
with 100 atoms per lipid…

Determining upper and lower leaflet…
64 lipids in the upper…
64 lipids in the lower leaflet

Centering protein…
Checking for overlap…
…this might actually take a while…
100 % done…
There are 20 lipids within cut-off range…
11 will be removed from the upper leaflet…
9 will be removed from the lower leaflet…

Writing scaled bilayer & centered protein…
Argument “C1” isn’t numeric in printf at inflategro.pl line 502.
Argument “C2” isn’t numeric in printf at inflategro.pl line 502.
Argument “C3” isn’t numeric in printf at inflategro.pl line 502.
Argument “N4” isn’t numeric in printf at inflategro.pl line 502.
Argument “C5” isn’t numeric in printf at inflategro.pl line 502.
Argument “C6” isn’t numeric in printf at inflategro.pl line 502.
Argument “O7” isn’t numeric in printf at inflategro.pl line 502.
Argument “P8” isn’t numeric in printf at inflategro.pl line 502.
Argument “O9” isn’t numeric in printf at inflategro.pl line 502.

Argument “C5” isn’t numeric in printf at inflategro.pl line 502.
Argument “C6” isn’t numeric in printf at inflategro.pl line 502.
Argument “O7” isn’t numeric in printf at inflategro.pl line 502.
Argument “P8” isn’t numeric in printf at inflategro.pl line 502.
Argument “O9” isn’t numeric in printf at inflategro.pl line 502.

Calculating Area per lipid…
Protein X-min/max: -22 84
Protein Y-min/max: -22 86
X-range: 106 A Y-range: 108 A
Building 106 X 108 2D grid on protein coordinates…
Calculating area occupied by protein…
full TMD…
upper TMD…
lower TMD…
Area per protein: 88.25 nm^2
Area per lipid: 10.6196549333333 nm^2

Area per protein, upper half: 86.5 nm^2
Area per lipid, upper leaflet : 10.8530446490566 nm^2

Area per protein, lower half: 64.5 nm^2
Area per lipid, lower leaflet : 10.85838848 nm^2

Writing Area per lipid…
Done!

(I could not find this situation in the GROMACS search.)

Thanks:)

…and attached is a Pymol screenshot of my system.gro file oligomer adjacent to the KALP;
maybe my system.gro result is not packed enough into the membrane causing my former error,
if so then I would need to backtrack before the system.gro generation. (Im just not experienced enough to solve this so will keep trying ideas.)

Your protein is huge. You can’t cram that into a tiny, 128-lipid patch. You need to start with a much larger membrane patch and go from there. As for the other errors above, I have no idea aside from assuming there’s something wrong with the format of the files you’re using. If you need to debug those, you need to upload the coordinate files before and after the first step of InflateGRO.

Hi Justin thank you so much for your kind update:). I had suspected this that the lipid membrane should be expanded but was not 100% sure, ill work on these two issues and let you know where I end up 🚀.

Hi Justin would you recommend a certain DPPC lipid patch thats compatible with Gromacs or would any DPPC.pdb file work? (Im going to try and start with around 500 DPPCs.). Thanks:)

Make your own from what you already have:

gmx genconf -f dppc128_whole.gro -o dppc512.gro -nbox 2 2 1

Hi thanks a bunch ill work on it:)

Hi Justin the larger lipid bilayer came out nicely via your above command, see my newly generated system.gro visual below:

(Im working on the debugging now of this file towards generating a proper system_inflated.gro.)

Thanks again:)

Hi Justin, my generated system.gro file exhibits a proper visual and to my knowledge the formatting is correct, here is a link to my system.gro system.gro

I may just not be experienced enough to discover what is wrong with this file, accordingly if you have time to scan it feel free to update me accordingly and if this request is beyond the scope of this forum sorry for the inquiry and no problem I will then just continue to try and discover this bug, thanks:) Joel