-
Notifications
You must be signed in to change notification settings - Fork 14
Description
It would be useful for A3FE to build on top of core BioSimSpace instead of relying on functionality present in sandpit/Exscientia.
A quick chat with @fjclark suggests the following changes would be necessary:
The functionality we need is pretty much all in https://github.com/OpenBioSim/biosimspace/blob/devel/python/BioSimSpace/Sandpit/Exscientia/FreeEnergy/_restraint_search.py and https://github.com/OpenBioSim/biosimspace/blob/devel/python/BioSimSpace/Sandpit/Exscientia/FreeEnergy/_restraint.py . The only other difference is that we have AlchemicalFreeEnergy
https://github.com/OpenBioSim/biosimspace/blob/devel/python/BioSimSpace/Sandpit/Exscientia/FreeEnergy/_alchemical_free_energy.py rather than Relative , but this is almost identical to Relative (with some minor changes to handle restraints). To avoid breaking changes, maybe we could create Absolute and Relative classes in the main BSS code, where Relative has identical functionality as before but all shared functionality is moved to a parent AlchemicalFreeEnergy class?
So, I don't think large changes would be required to BSS, and the changes to A3FE should be minor (especially with Roy's PR which bypasses a lot of the BSS SOMD config generation (https://github.com/Roy-Haolin-Du/a3fe/blob/6864a475756a8e798b14e7437eb108b47a30b3b1/a3fe/configuration/engine_config.py#L95) which I think differs slightly between the Sandpit and main code).
there will also be some changes required to e.g. Protocol/_config.py, Protocol/_somd.py, and Protocol/_gromacs.py e.g. in https://github.com/OpenBioSim/biosimspace/blob/baad60690aff9fc09da3a3a7edfdee11c74[…]639b8/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py