Skip to content

Commit

Permalink
Merge pull request #228 from OpenBioSim/release_2023.5.0
Browse files Browse the repository at this point in the history
Release 2023.5.0
  • Loading branch information
lohedges authored Dec 16, 2023
2 parents f273b68 + 85d609a commit 7dd4668
Show file tree
Hide file tree
Showing 32 changed files with 2,883 additions and 640 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Sandpit_exs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

- name: Install dependency
run: |
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
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
python -m pip install git+https://github.com/Exscientia/MDRestraintsGenerator.git
# For the testing of BSS.FreeEnergy.AlchemicalFreeEnergy.analysis
python -m pip install https://github.com/alchemistry/alchemtest/archive/master.zip
Expand Down
8 changes: 7 additions & 1 deletion doc/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ company supporting open-source development of fostering academic/industrial coll
within the biomolecular simulation community. Our software is hosted via the `OpenBioSim`
`GitHub <https://github.com/OpenBioSim/biosimspace>`__ organisation.

`2023.5.0 <https://github.com/openbiosim/biosimspace/compare/2023.4.1...2023.5.0>`_ - Dec 16 2023
-------------------------------------------------------------------------------------------------

* Add support for detecting nucleic acid backbones (`@fjclark <https://github.com/fjclark>`_) (`#189 <https://github.com/OpenBioSim/biosimspace/pull/189>`__).
* Added SOMD and GROMACS support for multiple distance restraints for ABFE calculations (`#178 <https://github.com/OpenBioSim/biosimspace/pull/178>`__).

`2023.4.1 <https://github.com/openbiosim/biosimspace/compare/2023.4.0...2023.4.1>`_ - Dec 14 2023
-------------------------------------------------------------------------------------------------

Expand All @@ -17,7 +23,7 @@ within the biomolecular simulation community. Our software is hosted via the `Op
* Make sure velocities are double counted when searching for velocity properties when combining molecules (`#197 <https://github.com/OpenBioSim/biosimspace/pull/197>`__).
* Remove redundant ``BioSimSpace.Types.Type.__ne__`` operator (`#201 <https://github.com/OpenBioSim/biosimspace/pull/201>`__).
* Minor internal updates due to Sire API fixes (`#203 <https://github.com/OpenBioSim/biosimspace/pull/203>`__).
* Fixed bug in the BSS Boresch restraint search code (`@fjclark <https://github.com/fjclark>`_) (`#204 <https://github.com/OpenBioSim/biosimspace/pull/204>`__).
* Fixed bug in the Boresch restraint search code (`@fjclark <https://github.com/fjclark>`_) (`#204 <https://github.com/OpenBioSim/biosimspace/pull/204>`__).
* Fixed ``renumber`` option in :meth:`extract <BioSimSpace._SireWrappers.Molecule.extract>` method (`#210 <https://github.com/OpenBioSim/biosimspace/pull/210>`__).
* Add workaround for fixing reconstruction of intrascale matrix in :func:`readPerturbableSystem <BioSimSpace.IO.readPerturbableSystem>` function (`#210 <https://github.com/OpenBioSim/biosimspace/pull/210>`__).
* 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>`__).
Expand Down
8 changes: 6 additions & 2 deletions python/BioSimSpace/Parameters/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
# ready to be returned.
molecule = BSS.Parameters.ff14SB(molecule, water_model="tip3p").getMolecule()
Additional parameters can be loaded by passing the ``leap_commands`` option to
Additional parameters can be loaded by passing the ``pre_mol_commands`` option to
any compatible AMBER force field function, e.g.:
.. code-block:: python
Expand All @@ -157,7 +157,11 @@
# Initialise the parameterisation process and block until the molecule is
# ready to be returned.
molecule = BSS.Parameters.ff14SB(molecule, leap_commands=leap_commands).getMolecule()
molecule = BSS.Parameters.ff14SB(molecule, pre_mol_commands=leap_commands).getMolecule()
If you need to apply any additional operations on the loaded molecule, then this
can be done using the ``post_mol_commands`` option, using ``mol`` for the name of
the molecule.
"""

from ._parameters import *
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,12 +258,23 @@ def __init__(
"Use the 'BioSimSpace.Align' package to map and merge molecules."
)

if self._protocol.getPerturbationType() != "full":
pert_type = self._protocol.getPerturbationType()
if pert_type not in ["full", "release_restraint"]:
raise NotImplementedError(
"GROMACS currently only supports the 'full' perturbation "
"type. Please use engine='SOMD' when running multistep "
"perturbation types."
)
if pert_type == "release_restraint":
restraint_err = ValueError(
"The 'release_restraint' perturbation type requires a multiple "
"distance restraint restraint type."
)
if not restraint:
raise restraint_err
if restraint._restraint_type != "multiple_distance":
raise restraint_err

self._exe = _gmx_exe
elif engine == "AMBER":
# Find a molecular dynamics engine and executable.
Expand Down Expand Up @@ -354,6 +365,15 @@ def __init__(
# Ensure that the system is compatible with the restraint
restraint.system = self._system

# Warn the user about instabilities with multiple distance restraints in SOMD.
if restraint._restraint_type == "multiple_distance" and engine == "SOMD":
_warnings.warn(
"SOMD simulations with some non-interacting ligands can be unstable. This "
"affects some systems with multiple distance restraints during the release "
"restraint state. If you experience problems, consider using multiple distance "
"restraints with GROMACS instead."
)

self._restraint = restraint

# Create fake instance methods for 'analyse' and 'difference'. These
Expand Down
Loading

0 comments on commit 7dd4668

Please sign in to comment.