[gmx-users] Re: Some questions about OPLS/Berger combination
chris.neale at utoronto.ca
chris.neale at utoronto.ca
Fri Jun 19 18:46:49 CEST 2009
The flaw in your reasoning is a misunderstanding of [ pairtypes ].
Look to section 5.3.4, especially page 99, and 5.7.1, especially page
112, of the gromacs 4 manual. The fudge is only applied to generated
pairs. Since we define [ pairtypes ] for all lipid and lipid-water
pairs, fudgeLJ is not applied to those (although fudgeQQ is). When I
originally posted this method, Berk had a nice suggestion that it
would be simpler not to modify epsilon at all and instead to add a
second pairs list that contained all zeroes for the LJ portion and
thus this second pairs section would only double the coulomb part to
restore it to full strength. While this is a cleaner solution, the
result should be the exact same and I had already fully tested my .itp
files so there was no motivation for me to retest this new, cleaner,
If you still disagree, please use your system to do zero-step mdruns
(i.e. nstep=0) with i) the original ffgmx/berger combination from the
Tieleman website, ii) my method, and iii) with whatever method you
believe to be superior. I posit that you will find the energies of my
method and the ffgmx/berger combination to be identical excepting
slight differences in rounding errors due to a difference in order of
operations, and further that you will find your suggestion to yield
different energies. This is in fact one of the many tests that I did
at the outset.
The remaining issue is how will the lipids see the opls protein for
generated nonbonded interactions. This obviously has nothing to do
with 1-4 interactions, and is a problem inherent in mixing
forcefields. I don't propose that my method addresses this problem to
any degree. In fact, I state quite explicitly that I don't even
attempt to address this problem in the pdf that I have posted on my
website. The Berger lipids are, quite simply, not parameterized
consistently with any protein forcefied. The problem that I solved is
only that of getting the Berger lipids to maintain their intended
Thank you Chris for your answer.
It didn't though clarify the things to me, so I'll try to explain again
where my objection is.
> The method is sound. A key realization is that the [ pairs ] section
> defines both the LJ and the Q pairs, so we will have double of each.
> We actually want double Q, since it was cut to 0.5 and 0.5*2=1.0. What
> we don't actually want is double epsilon, since the epsilon in
> question is already a special pairtypes epsilon that has been properly
> modified for 1-4 interactions. We thus cut epsilon in half to
> counteract the fact that we are forced to add it again twice in the
> pairs section.
But why should the epsilons be doubled? For OPLS-AA both the FudgeLJ and
FudgeQQ parameters are set to 0.5, so both the Coulombic and LJ 1-4
interactions are cut by 50%. We want them both to be 100% so, to
counteract this reduction, one can put a second copy of [ pairs ] section
to make GROMACS calculate both potentials twice. Dividing the epsilons by
2 will excessively reduce the 1-4 LJ potential (see below)
>> Another point concerns the 1-4 Coulombic interaction; you state that
>> dividing the Berger epsilons by 2 will modify both the 1-4 interactions
>> types, the LJ and the Coulombic ones.
> I don't believe that I do say that anywhere.
Ok, I misinterpreted what you wrote in
"1. Divide the epsilon entries in the [ pairtypes ] of lipid.itp by 2.0.
Now the LJ and coulombic 1-4 interactions are both exactly half of what
they should be."
> While I am always open to the possibility that I have made a mistake,
> I actually put a lot of time into developing this and distributing it,
> so I'm not very motivated to go look into it again before I see a bit
> of data or perhaps a proper mathematical derivation of whatever
> problem you propose. I still believe that the method is properly
> derived and implemented.
All right, I'll try to explain what I mean with the exact formulas.
I understand the OPLS-AA LJ potential for 1-4 interaction between atoms A
and B is calculated as:
V(OPLS) = 0.5*4*epsilon*[(sigma/r)^12 - (sigma/r)^6] = 0.5*V(Berger)
where 0.5 is the scaling factor as defined by FudgeLJ and the epsilon and
sigma values are taken from the [ pairtypes ] section, if the pair A-B has
been specified there, otherwise they are calculated from the epsilons and
sigmas for the A and B atoms by the combination rule.
So, if you put into this formula the Berger epsilon for a given pair of
atoms, as taken from the [ pairtypes ], you get V(OPLS) which is a half of
what the potential should be. What you need is to double this value, which
may be achieved by putting a second copy of [ pairs ].
Now, if you divide the Berger epsilons by 2, the calculated OPLS potential
V(OPLS) = 0.5*4*(epsilon/2)*[(sigma/r)^12 - (sigma/r)^6]=0.25*V(Berger)
Putting a second copy of [ pairs ] will double this value, so you end with
50% of the proper potential value instead of 100%.
So, where is the flaw in my reasoning?
All my best,
More information about the gromacs.org_gmx-users