Skip to content

Commit 7dd4668

Browse files
authored
Merge pull request #228 from OpenBioSim/release_2023.5.0
Release 2023.5.0
2 parents f273b68 + 85d609a commit 7dd4668

32 files changed

Lines changed: 2883 additions & 640 deletions

.github/workflows/Sandpit_exs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535

3636
- name: Install dependency
3737
run: |
38-
mamba install -c conda-forge -c openbiosim/label/main biosimspace python=3.10 ambertools gromacs "sire=2023.3" "alchemlyb>=2.1" pytest openff-interchange pint=0.21 rdkit "jaxlib>0.3.7" tqdm
38+
mamba install -c conda-forge -c openbiosim/label/main biosimspace python=3.10 ambertools gromacs "sire=2023.4" "alchemlyb>=2.1" pytest openff-interchange pint=0.21 rdkit "jaxlib>0.3.7" tqdm
3939
python -m pip install git+https://github.com/Exscientia/MDRestraintsGenerator.git
4040
# For the testing of BSS.FreeEnergy.AlchemicalFreeEnergy.analysis
4141
python -m pip install https://github.com/alchemistry/alchemtest/archive/master.zip

doc/source/changelog.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ company supporting open-source development of fostering academic/industrial coll
99
within the biomolecular simulation community. Our software is hosted via the `OpenBioSim`
1010
`GitHub <https://github.com/OpenBioSim/biosimspace>`__ organisation.
1111

12+
`2023.5.0 <https://github.com/openbiosim/biosimspace/compare/2023.4.1...2023.5.0>`_ - Dec 16 2023
13+
-------------------------------------------------------------------------------------------------
14+
15+
* Add support for detecting nucleic acid backbones (`@fjclark <https://github.com/fjclark>`_) (`#189 <https://github.com/OpenBioSim/biosimspace/pull/189>`__).
16+
* Added SOMD and GROMACS support for multiple distance restraints for ABFE calculations (`#178 <https://github.com/OpenBioSim/biosimspace/pull/178>`__).
17+
1218
`2023.4.1 <https://github.com/openbiosim/biosimspace/compare/2023.4.0...2023.4.1>`_ - Dec 14 2023
1319
-------------------------------------------------------------------------------------------------
1420

@@ -17,7 +23,7 @@ within the biomolecular simulation community. Our software is hosted via the `Op
1723
* Make sure velocities are double counted when searching for velocity properties when combining molecules (`#197 <https://github.com/OpenBioSim/biosimspace/pull/197>`__).
1824
* Remove redundant ``BioSimSpace.Types.Type.__ne__`` operator (`#201 <https://github.com/OpenBioSim/biosimspace/pull/201>`__).
1925
* Minor internal updates due to Sire API fixes (`#203 <https://github.com/OpenBioSim/biosimspace/pull/203>`__).
20-
* Fixed bug in the BSS Boresch restraint search code (`@fjclark <https://github.com/fjclark>`_) (`#204 <https://github.com/OpenBioSim/biosimspace/pull/204>`__).
26+
* Fixed bug in the Boresch restraint search code (`@fjclark <https://github.com/fjclark>`_) (`#204 <https://github.com/OpenBioSim/biosimspace/pull/204>`__).
2127
* Fixed ``renumber`` option in :meth:`extract <BioSimSpace._SireWrappers.Molecule.extract>` method (`#210 <https://github.com/OpenBioSim/biosimspace/pull/210>`__).
2228
* Add workaround for fixing reconstruction of intrascale matrix in :func:`readPerturbableSystem <BioSimSpace.IO.readPerturbableSystem>` function (`#210 <https://github.com/OpenBioSim/biosimspace/pull/210>`__).
2329
* Remove incorrect ``try_import`` statement in metadynamics driver script and make sure that global parameters in OpenMM script are unique (`#217 <https://github.com/OpenBioSim/biosimspace/pull/217>`__).

python/BioSimSpace/Parameters/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
# ready to be returned.
142142
molecule = BSS.Parameters.ff14SB(molecule, water_model="tip3p").getMolecule()
143143
144-
Additional parameters can be loaded by passing the ``leap_commands`` option to
144+
Additional parameters can be loaded by passing the ``pre_mol_commands`` option to
145145
any compatible AMBER force field function, e.g.:
146146
147147
.. code-block:: python
@@ -157,7 +157,11 @@
157157
158158
# Initialise the parameterisation process and block until the molecule is
159159
# ready to be returned.
160-
molecule = BSS.Parameters.ff14SB(molecule, leap_commands=leap_commands).getMolecule()
160+
molecule = BSS.Parameters.ff14SB(molecule, pre_mol_commands=leap_commands).getMolecule()
161+
162+
If you need to apply any additional operations on the loaded molecule, then this
163+
can be done using the ``post_mol_commands`` option, using ``mol`` for the name of
164+
the molecule.
161165
"""
162166

163167
from ._parameters import *

python/BioSimSpace/Sandpit/Exscientia/FreeEnergy/_alchemical_free_energy.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,12 +258,23 @@ def __init__(
258258
"Use the 'BioSimSpace.Align' package to map and merge molecules."
259259
)
260260

261-
if self._protocol.getPerturbationType() != "full":
261+
pert_type = self._protocol.getPerturbationType()
262+
if pert_type not in ["full", "release_restraint"]:
262263
raise NotImplementedError(
263264
"GROMACS currently only supports the 'full' perturbation "
264265
"type. Please use engine='SOMD' when running multistep "
265266
"perturbation types."
266267
)
268+
if pert_type == "release_restraint":
269+
restraint_err = ValueError(
270+
"The 'release_restraint' perturbation type requires a multiple "
271+
"distance restraint restraint type."
272+
)
273+
if not restraint:
274+
raise restraint_err
275+
if restraint._restraint_type != "multiple_distance":
276+
raise restraint_err
277+
267278
self._exe = _gmx_exe
268279
elif engine == "AMBER":
269280
# Find a molecular dynamics engine and executable.
@@ -354,6 +365,15 @@ def __init__(
354365
# Ensure that the system is compatible with the restraint
355366
restraint.system = self._system
356367

368+
# Warn the user about instabilities with multiple distance restraints in SOMD.
369+
if restraint._restraint_type == "multiple_distance" and engine == "SOMD":
370+
_warnings.warn(
371+
"SOMD simulations with some non-interacting ligands can be unstable. This "
372+
"affects some systems with multiple distance restraints during the release "
373+
"restraint state. If you experience problems, consider using multiple distance "
374+
"restraints with GROMACS instead."
375+
)
376+
357377
self._restraint = restraint
358378

359379
# Create fake instance methods for 'analyse' and 'difference'. These

0 commit comments

Comments
 (0)