TI - Free Energy - couple-intramol=no

GROMACS version: 2021.4
GROMACS modification: Yes/No

I’m trying to calculate the free energy of solvation of a particular molecule in water (amber03 and TIP3P parameters are used for solute and solvent, respectively). I’m ceasing electrostatic first and then van der Waals interactions in a protocol that includes: minimization, NVT (5ns), NpT (50ns) and Production (50ns). I have 31 lambdas and some calculations got a Fatal Error with this message:

“Fatal error:
There are 1 perturbed non-bonded pair interactions beyond the pair-list cutoff
of 1.2 nm, which is not supported. This can happen because the system is
unstable or because intra-molecular interactions at long distances are
excluded. If the latter is the case, you can try to increase nstlist or rlist
to avoid this.The error is likely triggered by the use of couple-intramol=no
and the maximal distance in the decoupled molecule exceeding rlist.”

I really do not understand this error. I checked some structures and did not see a problem that justifies, why some calculations finish without problems and others show this fatal error.
Did anyone face this problem? Should I extent my equilibration time before the production?
Thanks in advance,
Fred

Hi Fred,

I also encountered the problem with my system. As I read from release notes and bugs fixes (issue #3403, #3809, and also A check for perturbed listed pairs beyond rlist (!861) · Merge requests · GROMACS / GROMACS · GitLab, in GROMACS 2021, the developers implemented a simple check to assert whether some non-bonded pair interactions exceeds rlist in FEP calculation.

This will fail as soon as some perturbed interactions exceeds this range. The rlist is normally automatically set by the Verlet-buffer-tolerance.
So as stated in the error, you can either extend your rlist or turn on the intra-molecular coupling.
I assume you don’t want to turn on any intra-mol coupling. So the solution would be to extend your rlist. Furthermore, to overwrite the auto rlist by Verlet-buffer-tolerance, you need to set Verlet-buffer-tolerance=-1. For me, the extension of my molecule reaches up to 1.6 nm, when it is fully extended. So I would recommend to check the size of your molecule.

Hope this help.

Tomo

Hi Tomo,
Thank you for your answer. It sounds like the best solution to overcome this problem. The average size of my molecules is smaller than yours.
Thank you again,
Fred

If we are doing drug like molecules, for example, ligpargen created an instance of ribociclib for me where the furthest atoms from each other are 1.754 nm apart. Should I be setting couple-intramol=yes or set rlist=rcoulomb=rvdw > furthest_points

Good to know! Thanks.

It could be that this is caused by a bug in GROMACS which is fixed in version 2022.1:
https://manual.gromacs.org/2022.1/release-notes/2022/2022.1.html

1 Like

As far I know, if you set your rcoulomb and rvdw (those are for the short-range electrostatic and short-range vdw) that large, your calculation will be dead slow (correct me if I am wrong Gromacs-experts). One has to be carefull with these settings.

I still see this with GROMACs version 2022.2 here https://ftp.gromacs.org/gromacs/gromacs-2022.2.tar.gz. The error returns exactly the furthest two points of the molecule you are trying to decouple. For instance if at step 100 you get this message:

Fatal error:
There are 1 perturbed non-bonded pair interactions beyond the pair-list cutoff
of 1.783 nm, which is not supported

or

Fatal error:
There are 1 perturbed non-bonded pair interactions beyond the pair-list cutoff
of 1.921 nm, which is not supported

This means, and you can confirm it with a simple distance algorithm using python itertools for all pairs of points, that the furthest two points of the molecule being decoupled would be 1.783 nm in the first case and 1.921 nm in the second case. Ironically nobody else tried to confirm this but me from what I have read.

A lot of drug like molecules worth testing are pretty large now a days for more specificity, i.e. Cyclic Peptide Therapeutics: R&D Progress | Biopharma PEG

The newest GROMACS version available on cluster is 2022.0, I’ll install the 2022.1 version and test. Thank you so much for your suggestion.

I have tested for my system yesterday, and GROMACS 2022 still yielded to this error. So I believe that the assertion code is there and since your perturbed nb pair interaction exceeds your rlist, it threw this error.

I am having the same problem.
Even with the latest Gromacs, to calculate the free energy of a relatively large molecule (such as Fred’s molecule or bjwiley23’s Ribociclib) under couple-intramol=no conditions, I need to do rlist > furthest_points > rcoulomb=rvdw, which would require an enormous amount of time?
Does it mean that the calculation results are still not valid when I set rlist > furthest_points > rcoulomb=rvdw?
Also, if I set rlist > futhest_points, should the simultion_box_size > 2×rlist + futhest_points?

All requirements you list are really required. This is handled correctly in 2022.

But I would suggest to use couple-intramol=yes for large molecules, both to reduce the computational cost and for avoiding getting stuck in local minima when the molecule is decoupled.

1 Like

Hi Hess,
Thank you for your answer. I am planning to perform TI on an elongated molecule called C12EO8 with a maximum molecular length of about 2.3 nm.
Is this molecule a “large molecule”?
I am also planning to calculate TI under the following conditions.
I understand that if I calculate with couple-intramol=yes, the Van der Waals and Coulomb interactions within the molecule will also be turned on and off, is this correct?

free-energy = yes
couple-moltype = LIG
couple-lambda0 = vdw-q
couple-lambda1 = none
couple-intramol = no
separate-dhdl-file = yes
sc-alpha = 0.5
sc-power = 1
sc-sigma = 0.3
init-lambda-state = “each lambda point”
coul-lambdas = 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.00 1.0 1.00 1.0 1.00 1.0 1.00 1.0
vdw-lambdas = 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0
nstdhdl = 100
calc-lambda-neighbors = -1

Large, flexible molecules tend to fold onto them selves and get stuck in one conformation with couple-intramol=no. It’s better to avoid that.

Note that you need to do an extra free-energy calculation for coupling the ligand to the solvent when using couple-intramol=yes.

1 Like

Thanks so much for being so gracious!
I will try to implement it that way.

Thank you @hess for the response. Can you point to the relevant references to do the extra free-energy calculation, the implementation details and its importance?

Any serious text on binding free energy calculations should explain this. What you need to do is an identical free-energy coupling calculation but without solvent and subtract the resulting free-energy from the result from the calculation with solvent.

1 Like

Hi Tomo @hij09373,

I encountered the same problem as @fredpontes20 with my ion channel-membrane system when running minimization step. Even after I set Verlet-buffer-tolerance = -1 and increased my rlist, I still get the same error despite how large rlist is. I also tried couple-intramol=yes and still get this error.

I’m not sure what’s happening here and what should I do to get this fix and get my minimization running.

I really appreciate any advice/suggestions.

What molecule are you decoupling?

I’m running minimization on Piezo1 ion channel embedded in POPC lipid bilayer membrane system.