-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Gromacs FreeEnergyMinimisation
and FreeEnergyEquilibration
failing when using restraint
#339
Comments
I think the two issues are different. For the GROMACS one: can you see if it persists if you use the regular versions of the protocols, e.g. For the OpenMM one: can you try manually loading the prm7 and rst7 files written by BioSimSpace (the lambda = 0 state) with Parmed to see if it gives a more specific error. These will be in the process The only difference to the last run that I can think of is the changed LJ sigma parameters, but I can't think why they would cause this issue. |
It might be that the restraint file needs parameters for both states. Presumably this is done in the sandpit, so maybe take a look there. If this is the case, this is another reason why the system doesn't work since the change should have also been raised and PR'ed to the core. |
Confirming that the process runs successfully when using Re-trying everything using functionality from the sandpit doesn't solve the problem, it raises the same error as above. Also, just using the regular |
Moved the openMM issue to a separate thread: #340 |
Thanks for confirming. Could you check the GROMACS docs to see how restraints are handled for multi state topologies. It might be as easy as adding an additional column with the force constant for state B. |
Looking at the docstrings it seems that the positional restraints need to be explicitly defined for states So the This should be an easy fix since, as far as I can tell, for our use case the I'll take a look at implementing a fix and a unit test tomorrow. |
Great, that's nice and easy then. Yes, same for A and B (restraints aren't perturbed) and only for protocols that are instances of |
Describe the bug
Minimising or equilibrating a perturbable system using a protocol defined by either
BSS.Protocol.FreeEnergyEquilibration
orBSS.Protocol.FreeEnergyMinimisation
and run usingBSS.Process.Gromacs
will consistently fail when therestraint
keyword is passed.To Reproduce
Create a perturbable system (in this case the example from the BioSimSpace tutorials) and attempt to run with restraints:
this should raise the following exception:
Removing
restraint="heavy"
completely removes the issue.(please complete the following information):
Additional context
This issue is also present when using restraints to minimise/equilibrate perturbable systems using
OpenMM
(just usingBSS.Protocol.Minimisation
/BSS.Protocol.Equilibration
andBSS.Process.OpenMM
), so the issue certainly appears to be with the restraint logic, rather than any specific protocol.In the case of openMM the issue is specifically with the following line:
parmed.load_file('openmm.prm7', 'openmm_ref.rst7')
, raising the errorcannot reshape array of size 0 into shape (0,3)
The text was updated successfully, but these errors were encountered: