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
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
AlchemicalFreeEnergyhttps://github.com/OpenBioSim/biosimspace/blob/devel/python/BioSimSpace/Sandpit/Exscientia/FreeEnergy/_alchemical_free_energy.py rather than
Relative, but this is almost identical toRelative(with some minor changes to handle restraints). To avoid breaking changes, maybe we could createAbsoluteandRelativeclasses in the main BSS code, whereRelativehas identical functionality as before but all shared functionality is moved to a parentAlchemicalFreeEnergyclass?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, andProtocol/_gromacs.pye.g. in https://github.com/OpenBioSim/biosimspace/blob/baad60690aff9fc09da3a3a7edfdee11c74[…]639b8/python/BioSimSpace/Sandpit/Exscientia/Protocol/_config.py