Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a4c16fd
Remove survey section.
lohedges Oct 8, 2025
20ad1b8
Update Sire development requirement. [ci skip]
lohedges Oct 8, 2025
aec0bfd
Fix incorrect conditional.
lohedges Oct 13, 2025
1096b37
Merge pull request #460 from OpenBioSim/fix_459
lohedges Oct 14, 2025
cc74635
Wrap sire.legacy.IO.setCoordinates and sr.io.get_coords_array.
lohedges Oct 21, 2025
15f9267
Fix incorrect context manager name.
lohedges Oct 22, 2025
527321f
Fix typo in RDKit d2d option. [closes #449] [ci skip]
lohedges Oct 22, 2025
d62076a
Use absolute path for node directory. [ci skip]
lohedges Oct 22, 2025
2cc1724
Merge pull request #463 from OpenBioSim/fix_462
lohedges Oct 22, 2025
0412cd4
Add unit test for setCoordinates functionality.
lohedges Oct 22, 2025
7f8a2d3
Merge branch 'devel' into feature_set_coordinates
lohedges Oct 22, 2025
5db2bc8
Grammar tweak.
lohedges Oct 22, 2025
099db38
Fix typo.
lohedges Oct 23, 2025
0850575
Merge pull request #465 from OpenBioSim/feature_set_coordinates
lohedges Oct 23, 2025
010ccb3
Switch to new Sire API.
lohedges Oct 24, 2025
5be5f78
Refactor imports.
lohedges Oct 27, 2025
0e951c4
Add lazy_import to requirements.
lohedges Oct 27, 2025
5cb0763
Fix importing of Sandpit in isolation.
lohedges Oct 27, 2025
624b3ca
Fix incorrect conversion of BioSimSpace API call.
lohedges Oct 27, 2025
6850eaa
Handle new Sire API already being activated.
lohedges Oct 27, 2025
d1ad043
Use verbose errors for testing.
lohedges Oct 27, 2025
39e8180
Fix missing Sire API updates and lazy load issues.
lohedges Oct 27, 2025
cc9b6af
More Sire API conversion fixes.
lohedges Oct 27, 2025
f7f86bf
Fix docstring placement. [ci skip]
lohedges Oct 27, 2025
c8106a1
Fix tutorialUrl call. [ci skip]
lohedges Oct 27, 2025
d36f94a
Don't lazy import modules in a Jupyter notebook.
lohedges Oct 27, 2025
32e2f05
Fix missing Sire API conversion.
lohedges Oct 27, 2025
590a0c2
Allow disabling of lazy import via environment variable. [ci skip]
lohedges Oct 28, 2025
2ed14cc
Switch tutorial to new Sire API. [ci skip]
lohedges Oct 28, 2025
4c88f30
Need to import internal modules too.
lohedges Oct 28, 2025
40ba29d
Add missing attribution to GUFE. [ci skip]
lohedges Oct 29, 2025
45194e3
Merge pull request #466 from OpenBioSim/feature_refactor
lohedges Oct 30, 2025
d280a61
Set GPU device index correctly. [closes #467]
lohedges Nov 6, 2025
b3c8aea
Merge pull request #468 from OpenBioSim/fix_467
lohedges Nov 6, 2025
1f19141
Merge branch 'main' into release_2025.3.0
lohedges Nov 10, 2025
a860241
Update Sire version.
lohedges Nov 10, 2025
52bd769
Update CHANGELOG.
lohedges Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,6 @@
:target: https://joss.theoj.org/papers/4ba84ad443693b5dded90e35bf5f8225
:alt: Paper

Survey
------

We are currently conducting a
`survey <https://docs.google.com/forms/d/1zY0i3lLR9MhmohKjcu0wJp_CXJvBwcWoj6iG4p9LNKk/edit?ts=6836f566>`__
to help us understand how BioSimSpace is being used and how we can improve it.
The survey explores your molecular simulation tools and practices, identifies workflow challenges, and
gathers feedback on the BioSimSpace simulation framework to guide its future development. If you have
a few minutes, please fill it out!

About
-----

Expand Down
13 changes: 12 additions & 1 deletion doc/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,18 @@ 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.

`2025.2.0 <https://github.com/openbiosim/biosimspace/compare/2024.5.0...2025.2.0>`_ - Oct 08 2025
`2025.3.0 <https://github.com/openbiosim/biosimspace/compare/2025.2.0...2025.3.0>`_ - Nov 10 2025
-------------------------------------------------------------------------------------------------

* Fixed bug that caused trajectory frame reconstruction to be skipped for perturbable systems (`#460 <https://github.com/OpenBioSim/biosimspace/pull/460>`__).
* Fixed typo in RDKit ``rdMolDraw2D`` attribute name (`#463 <https://github.com/OpenBioSim/biosimspace/pull/463>`__).
* Fix incorrect context manager name in node runner (`#463 <https://github.com/OpenBioSim/biosimspace/pull/463>`__).
* Added functionality for quickly getting and setting the coordinates array of a :class:`System <BioSimSpace._SireWrappers.System>` (`#465 <https://github.com/OpenBioSim/biosimspace/pull/465>`__).
* Reduce depdency import overheads by switching from module level imports to function and method level (`#466 <https://github.com/OpenBioSim/biosimspace/pull/466>`__).
* Fully switch over to using the new Sire Python API naming convention, allowing BioSimSpace to be used within Sire (`#466 <https://github.com/OpenBioSim/biosimspace/pull/466>`__).
* Fixed logic used for setting the GPU device index for :class:`Process.OpenMM <BioSimSpace.Process.OpenMM>` (`#468 <https://github.com/OpenBioSim/biosimspace/pull/468>`__).

`2025.2.0 <https://github.com/openbiosim/biosimspace/compare/2025.1.0...2025.2.0>`_ - Oct 08 2025
-------------------------------------------------------------------------------------------------

* Add support for ``SOMD2`` FEP analysis using data frames with different numbers of samples (`#415 <https://github.com/OpenBioSim/biosimspace/pull/415>`__).
Expand Down
2 changes: 1 addition & 1 deletion doc/source/tutorials/crystal_water.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Firstly, let's load the PDB structure:
>>> import BioSimSpace as BSS
>>> tyk2_xtal = BSS.IO.readMolecules(
... BSS.IO.expand(
... BSS.IO.tutorialUrl(), "tyk2_xtal.pdb"
... BSS.tutorialUrl(), "tyk2_xtal.pdb"
... )
...)[0]

Expand Down
24 changes: 12 additions & 12 deletions doc/source/tutorials/molecular_editing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ SireMol::AtomCharges( size=9

.. Note::
To see the full list of properties available for a molecule, you can use the
``propertyKeys()`` method on the underlying Sire molecule object, e.g.
``ethanol._sire_object.propertyKeys()``.
``property_keys()`` method on the underlying Sire molecule object, e.g.
``ethanol._sire_object.property_keys()``.

Editing bonds
-------------
Expand All @@ -122,7 +122,7 @@ constant for all existing bonds:
>>> bonds = TwoAtomFunctions(ethanol._sire_object.info())
>>> for bond in ethanol._sire_object.property("bond").potentials():
... amber_bond = AmberBond(0, 0)
... bonds.set(bond.atom0(), bond.atom1(), amber_bond.toExpression(Symbol("r")))
... bonds.set(bond.atom0(), bond.atom1(), amber_bond.to_expression(Symbol("r")))
>>> cursor = ethanol._sire_object.cursor()
>>> cursor["bond"] = bonds
>>> ethanol._sire_object = cursor.commit()
Expand Down Expand Up @@ -163,7 +163,7 @@ and modifying the desired angle:
>>> for angle in ethanol._sire_object.property("angle").potentials():
... if ethanol._sire_object.atom(angle.atom1()).name().value() == "O3":
... amber_angle = AmberAngle(100, 1.5)
... angles.set(angle.atom0(), angle.atom1(), angle.atom2(), amber_angle.toExpression(Symbol("theta")))
... angles.set(angle.atom0(), angle.atom1(), angle.atom2(), amber_angle.to_expression(Symbol("theta")))
... else:
... angles.set(angle.atom0(), angle.atom1(), angle.atom2(), angle.function())

Expand Down Expand Up @@ -247,7 +247,7 @@ A regular AMBER-style dihedral series where all terms have positive cosine facto
>>> d = AmberDihedral(f, Phi)
>>> print("AMBER:", d)
AMBER: AmberDihedral( k[0] = 0.3, periodicity[0] = 1, phase[0] = 0, k[1] = 0.8, periodicity[1] = 4, phase[1] = 0 )
>>> assert d.toExpression(Phi) == f
>>> assert d.to_expression(Phi) == f

An AMBER-style dihedral containing positive and negative cosine factors, which
can appear in the CHARMM force field:
Expand All @@ -256,7 +256,7 @@ can appear in the CHARMM force field:
>>> d = AmberDihedral(f, Phi)
>>> print("CHARMM:", d)
CHARMM: AmberDihedral( k[0] = 0.3, periodicity[0] = 1, phase[0] = 0, k[1] = -0.8, periodicity[1] = 4, phase[1] = 0 )
>>> assert d.toExpression(Phi) == f
>>> assert d.to_expression(Phi) == f

An AMBER-style dihedral containing positive and negative cosine factors, with
the negative of the form ``k [1 - Cos(Phi)]`` rather than ``-k [1 + Cos(Phi)]``.
Expand All @@ -269,7 +269,7 @@ GROMACS: AmberDihedral( k[0] = 0.3, periodicity[0] = 1, phase[0] = 0, k[1] = 0.8
>>> from math import isclose
>>> from sire.legacy.CAS import SymbolValue, Values
>>> val = Values(SymbolValue(Phi.ID(), 2.0))
>>> assert isclose(f.evaluate(val), d.toExpression(Phi).evaluate(val))
>>> assert isclose(f.evaluate(val), d.to_expression(Phi).evaluate(val))

Finally, a three-term expression that mixes all formats:

Expand All @@ -280,7 +280,7 @@ Finally, a three-term expression that mixes all formats:
... + 0.8 * (1 - Cos(4 * Phi))
... )
>>> d = AmberDihedral(f, Phi)
>>> assert isclose(f.evaluate(val), d.toExpression(Phi).evaluate(val))
>>> assert isclose(f.evaluate(val), d.to_expression(Phi).evaluate(val))

.. Note::
Impropers are also stored as ``FourAtomFunction`` objects, which can be
Expand Down Expand Up @@ -428,17 +428,17 @@ the editor, reparenting them to the appropriate chain, then adding the atoms:
... cg = editor.add(sr.legacy.Mol.CGName(str(i)))
... new_res = editor.add(res.number())
... new_res.rename(res.name())
... new_res.reparent(chain_ids[i // 3])
... for j, atom in enumerate(res.atoms()):
... new_res.reparent(sr.legacy.Mol.ChainName(chain_ids[i]))
... for atom in res.atoms():
... new_atom = cg.add(atom.number())
... new_atom.rename(atom.name())
... new_atom.reparent(res.index())
... editor = editor.commit().edit()

Next we need to copy across the molecular properties, e.g. charges and bonded terms.

>>> for prop in ala._sire_object.propertKeys():
... editor = editor.setProperty(prop, ala._sire_object.property(prop)).molecule()
>>> for prop in ala._sire_object.property_keys():
... editor = editor.set_property(prop, ala._sire_object.property(prop)).molecule()

Finally, we can commit the changes to create the new molecule:

Expand Down
6 changes: 6 additions & 0 deletions python/BioSimSpace/Align/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,10 @@
viewMapping
"""

import sire as _sr

_sr.use_new_api()
del _sr

from ._align import *
from . import _squash
Loading
Loading