[gmx-users] Good method to turn off electrostatics
Justin A. Lemkul
jalemkul at vt.edu
Tue Jul 12 00:45:16 CEST 2011
Andrew DeYoung wrote:
> Hi,
>
> I am running NVE simulations of a system of 1000 water molecules. I am
> attempting to run analogous simulations on Gromacs 4.5.4 and also on another
> MD program. Once finished, I will compare the results of the two programs.
> It was suggested to me that to compare the results of the two programs in a
> step-by-step manner, as a first step I should run the simulations with the
> electrostatics (both short-range and long-range interactions) turned off.
> In other words, run the simulations considering only Lennard-Jones
> interactions. My question is, what is the best way to do this in Gromacs?
>
> A (very much more experienced) colleague suggested that I "turn off
> electrostatics" by simply setting all the charges to zero. However, when I
> look into the topology and structure files, I see some surprising (to me)
> things -- the charges do not appear to be specified in the .top and .gro
> files.
>
> To back up, I will first try to explain my system. I have a PDB file
> specifying 1000 water molecules that someone gave me. This PDB file looks
> like the following:
>
> TITLE water
> REMARK THIS IS A SIMULATION BOX
> CRYST1 47.100 47.100 47.100 90.00 90.00 90.00 P 1 1
> MODEL 1
> ATOM 1 OW SOL 1 -21.177 -21.195 -21.179 1.00 0.00
> ATOM 2 HW1 SOL 1 -21.671 -21.195 -22.083 1.00 0.00
> ATOM 3 HW2 SOL 1 -21.863 -21.195 -20.412 1.00 0.00
> ATOM 4 OW SOL 2 -16.467 -21.195 -21.179 1.00 0.00
> ATOM 5 HW1 SOL 2 -16.961 -21.195 -22.083 1.00 0.00
> ATOM 6 HW2 SOL 2 -17.153 -21.195 -20.412 1.00 0.00
> ...
>
> And so on. According to the PDB file format specification
> (http://www.wwpdb.org/format/sect9.html), the last two columns in my file
> correspond to the occupancies and temperature factors, respectively, of my
> atom. So, evidently, partial charges on the oxygen and hydrogens are not
> specified in this PDB file.
>
> Next, I execute the command:
>
> pdb2gmx -f water.pdb -p water.top -i water.itp -o water_processed.gro
>
> And, when prompted, I choose the OPLS-AA force field and the SPC/E water
> model. Apparently, Gromacs recognizes from my PDB file that my system
> contains water (and only water). Alternatively, I could have created a
> topology file manually, without pdb2gmx, by simply creating a .top file
> containing:
> ------
> #include "oplsaa.ff/forcefield.itp"
> #include "oplsaa.ff/spce.itp"
>
> [ system ]
> water
>
> [ molecules ]
> SOL 1000
> ------
> and then simply feed grompp the topology file and the original PDB file when
> preparing for a dynamics run (pdb2gmx, I understand, is meant for chains
> rather than multiple molecules). But, in any case, I took the long road and
> used pdb2gmx to create the .top topology and a .gro coordinate file.
>
> What surprises me (a novice in Gromacs and MD in general), though, is that
> it seems that neither the .top file nor the .gro file contains any reference
> to the charges on the oxygens and hydrogens in this water-only system. For
> example, my .top file contains:
> ------
> ; Include forcefield parameters
> #include "oplsaa.ff/forcefield.itp"
>
> ; Include water topology
> #include "oplsaa.ff/spce.itp"
>
> #ifdef POSRES_WATER
> ; Position restraint for each water oxygen
> [ position_restraints ]
> ; i funct fcx fcy fcz
> 1 1 1000 1000 1000
> #endif
>
> ; Include topology for ions
> #include "oplsaa.ff/ions.itp"
>
> [ system ]
> ; Name
> water
>
> [ molecules ]
> ; Compound #mols
> SOL 1000
> ------
>
> And, my .gro file contains, for example:
> ------
> water
> 3000
> 1HOH OW 1 -2.118 -2.119 -2.118
> 1HOH HW1 2 -2.167 -2.119 -2.208
> 1HOH HW2 3 -2.186 -2.119 -2.041
> 2HOH OW 4 -1.647 -2.119 -2.118
> 2HOH HW1 5 -1.696 -2.119 -2.208
> 2HOH HW2 6 -1.715 -2.119 -2.041
> ...
> 4.71000 4.71000 4.71000
> ------
>
> So, as far as I can tell, neither my .top nor my .gro file specify the
> charges on the atoms. I guess that this means that the charges on the atoms
> are only specified in the spce.itp file. When I find and open the spce.itp
> file, I see:
> ------
> [ moleculetype ]
> ; molname nrexcl
> SOL 2
>
> [ atoms ]
> ; nr type resnr residue atom cgnr charge mass
> 1 opls_116 1 SOL OW 1 -0.8476
> 2 opls_117 1 SOL HW1 1 0.4238
> 3 opls_117 1 SOL HW2 1 0.4238
>
> #ifndef FLEXIBLE
> [ settles ]
> ; OW funct doh dhh
> 1 1 0.1 0.16330
>
> [ exclusions ]
> 1 2 3
> 2 1 3
> 3 1 2
> #else
> [ bonds ]
> ; i j funct length force.c.
> 1 2 1 0.1 345000 0.1 345000
> 1 3 1 0.1 345000 0.1 345000
>
> [ angles ]
> ; i j k funct angle force.c.
> 2 1 3 1 109.47 383 109.47 383
> #endif
> ------
>
> So, there the charges are specified: -0.8476 on the oxygen and 0.4238 on
> each hydrogen. Coming back to my original goal--to "turn off
> electrostatics" by zeroing the charges--I could in principle just set the
> charges in this .itp file to 0. However, on our cluster, this file appears
> to be READ ONLY. So to change the charges to 0, I need to see if I can get
> permission from our administrator.
>
That would be a terrible idea. It would affect anyone who uses that file, and
then surprise! their entire simulation is worthless because the charges are not
there :)
> Based on my story above, my questions are:
>
> 1. Is there a better way to "turn off electrostatics"--without modifying
> the spce.itp file?
>
There are several options:
1. Don't mess with the system-wide spce.itp file. Make your own local copy and
alter it there. Adjust the call in the .top to some location where it will be
found (which you can set with the "include" keyword in the .mdp file, if necessary).
2. Don't mess with topologies at all and instead use the free energy code with,
e.g.:
couple-moltype = SOL
couple-lambda0 = vdw
couple-moltype = (either vdw or none)
init-lambda = 0
Then don't both with any other lambda values, since you don't care about the
free energy of some transformation of the system, just the energy value of the
Hamiltonian under these conditions. This is a very roundabout way of
accomplishing your task.
3. Use a simpler system like a noble gas, which has no charges to begin with.
> 2. Why does it seem that charges are not specified in the .top and .gro
> files? Is this just because I am boringly simulating only a solvent, and
> the topology file tells Gromacs to look in spce.itp when simulating the
> water molecules?
>
Charges *are* specified in the .top file, albeit indirectly. The #include
statement is a C preprocessor term that literally means "cut and paste the
contents of the included file right here." If you use grompp -pp to get the
post-processed topology you will see. The #include statements are there for
convenience, so you don't have to copy and paste a water topology for every
single simulation, which would be horrendously annoying for most of us. Most
other "normal" (i.e. protein-containing) topologies have all the information for
the protein listed explicitly (see my tutorial, or probably any other, for a
complete description).
The .gro file does not contain charges because it is a coordinate file. It has
atom and residue names and numbers, coordinates, and (optionally) velocities.
-Justin
> Thank you very much for your time!
>
> Andrew DeYoung
> Carnegie Mellon University
>
--
========================================
Justin A. Lemkul
Ph.D. Candidate
ICTAS Doctoral Scholar
MILES-IGERT Trainee
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080
http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin
========================================
More information about the gromacs.org_gmx-users
mailing list