GROMACS version: 2023.3
GROMACS modification: No
I have been trying to run a Free energy simulation using AWH and no matter what I set some of the values too I keep getting the same error:
-------------------------------------------------------
Program: gmx mdrun, version 2023.3
Source file: src/gromacs/applied_forces/awh/pointstate.h (line 355)
Function: gmx::PointState::updateFreeEnergy(const gmx::BiasParams&, double)::<lambda()>
Assertion failed:
Condition: std::abs(freeEnergy_) < detail::c_largePositiveExponent
Very large free energy differences or badly normalized free energy in AWH
update.
For more information and tips for troubleshooting, please check the GROMACS
website at http://www.gromacs.org/Documentation/Errors
-------------------------------------------------------
Have tired making the awh1-dim1-diffusion and awh1-error-init options bigger and smaller, default, slightly altered default. I have tried setting awh-dim1-end to 0.75, 0.5, and 0.45 nothing as worked. I think I just need a professional opinion.
When you say charges you mean like when I create the topology file and it tells me whether or the not the systems charge is positive, negative, or neutral? Well in that case yes. If I did set sc-coul=yes and it works would I have to re-run the enitre simulation? For accuracy sake, because of the mistake?
I tried just creating another TPR file with with that option set to yes and started the simulation again using it, and I just got the same error. So I’m going to completely restart the simulation with this option set to yes and see where that takes me. I’ll stay posted.
So I set sc-coul=yes and restarted the entire simulation but I’m still getting the same error, it was pushed back a little bit. Originally I was getting the error at around 15ns now I’m getting it at around17ns, but that could also be because I messed with the temperture. Got any other ideas?
@MagnusL mentioned that the same issue can occur when large molecules are decoupled with couple-intramol=yes and soft-core on. But I don’t see how that could cause issues. Magnus, can you explain?
With large molecules, such as proteins, and especially if there are formal charges, and even more so if they charges are balancing each other out, in the molecule, the free energy difference between fully interacting and fully eliminated (which is what you get with couple-intramol = yes) can be huge. But I don’t see any way around it.
Yes, I see now that decoupling a large molecule can exceed the limit on the free-energy of 700 kT. But I wonder if one can get reasonable convergence for such cases. With couple-intramol=yes sampling of the decoupled state can get difficult. With couple-intramol=no the cutoff for LJ limits the size of the molecule.
I have now uploaded an MR that changes the assertion failure to an exception with the message: “An AWH free energy difference is larger than 700 kT, which is not supported”.
Does that mean that free energy simualtions or alchemical simulations are more meant for ligands and small peptides rather that big protein structures?
We didn’t think that such large free energy differences were relevant when developing the AWH method. But with alchemical transformations one get can beyond 700 kT. It is not clear to me how practically useful such calculations are. If they are many use cases, we should look into moving this limit.
There are two separate aspects here. One is if it is scientifically useful to use alchemical transformations with such large free energy differences. Another is whether one can get converged results in reasonable time.
Note that you can move this limit a bit by dividing the lambda interval into parts. You can e.g. compute lambda 0-0.5 and 0.5-1 separately.