Release Notes

v2.4.0 April 2024

Cube Updates

  • The CollectionSetting Cube now creates V2 ShardCollections by default. This behavior is controlled by the new V2 switch, which defaults to On.

  • Cubes that need to run OpenMM on a GPU now print a more informative error message when no GPU platform is available.

  • The IterChecker Cube no longer deletes the per-iteration MD stages (cycle_0, cycle_1, etc.) after concatenating them. This task has been delegated to the new DeleteMDStagesCube.

Bug Fixes

  • Cubes no longer attempt to load the reference positions when the Restraint to Reference switch is turned Off.

General Notice

The package distribution now includes both the orionmdcore and oeommtools Python packages (oeommtools was released separately in a previous release).

v2.3.1 February 2024

API-Breaking Changes

  • The default value for the ForceFieldCube.ligand_forcefield parameter has been changed from “Gaff_1.81” to “OpenFF_2.0.0”.

New Features

  • The ForceFieldCube.ligand_forcefield parameter has a new “Custom” value. When this value is selected, the ligand force field is defined by inputting one or more SMIRNOFF XML files via the custom_offxml_file_in parameter.

  • When the ligand_forcefield is set to “Custom”, “OpenFF_1.3.1”, or “OpenFF_2.0.0”, and the new prefer_bespoke switch is turned On (the default), the force field can be augmented with bespoke parameters by providing them in the field specified by the bespoke_forcefield_field parameter. This field accepts a list of SMIRNOFF XML strings.

  • The new SolvationCube.random_seed_from_system_time parameter specifies whether Packmol should generate its random seed from the system time. The default (and historical) behavior is to use Packmol’s fixed default seed.

  • Residue numbers in the output topology now match those in the input design unit or molecule.

Bug Fixes

  • A bug in which the IterMDNptCube could schedule a cycle of zero length has been fixed.

General Notice

This version of Orion MD Core has more flexible requirements:

>>> from importlib.metadata import metadata, requires
>>> metadata("openeye-orionmdcore")["Requires-Python"]
'>=3.9'
>>> requires("openeye-orionmdcore")
['click <9,>=8.1.3',
 'h5py <4,>=3.1.0',
 'lxml <5,>=4.6.0',
 'mdtraj <2,>=1.9.6',
 'numpy <2,>=1.21.2',
 'oeommtools <2,>=1.2.1',
 'openeye-orionplatform <7,>=5.1.1',
 'openeye-snowball <0.28,>=0.26.0',
 'openeye-toolkits >=2023.2.3',
 'openff-toolkit <0.15,>=0.14.4',
 'openmm <8.1,>=7.7.0',
 'openmoltools ==0.8.8',
 'parmed ==3.4.4',
 'pdbfixer <2,>=1.8.1',
 'pyparsing <3,>=2.4.7',
 'tqdm <5,>=4.57.0']

v2.1.2 September 2023

Warning

This version reintroduces a bug, fixed in version 2.1.1, in which the IterChecker cube incorrectly records the combined simulation time as the time of the last stage. Furthermore, while version 2.1.1 requires oeommtools==1.2.*, this version requires oeommtools==1.2.0. Hence it is unable to leverage new features in oeommtools 1.2.1, including the retention of residue numbers when converting from an OEMol to an OpenMM topology. These issues are fixed in version 2.3.1.

Bug Fixes

  • Support has been added for systems containing iron and other metal cofactors, which previously failed during force field assignment.

v2.1.1 September 2023

New Features

  • A new cube type, Parallel Iteration Checker Cube was added to enable scalability of the (serial) Iteration Checker Cube.

v2.1.0 July 2023

General Notice

  • This version v2.1.0 pins Python 3.9 and OpenMM 7.7.

  • Minor bug fixes have been made.

Cube Updates

  • In the Solvation Cube, the “geometry” parameter name has been changed to “Periodic Box shape”. The parameter offers two options: a “cubic” or “rectangular” periodic box.

  • The Iterative NPT Cube has a better way of setting trajectory intervals for long simulations (>= 10 ns).

  • The Ligand Charge Cube now supports ELF10 charge assignment of macrocycles.

v2.0.1 April 2023

General Notice

  • Since the first MD pkg release, we have been using Pickle to serialize and deserialize MD custom objects passed along the OpenEye data records. A main side effect of pickling them is that the class objects API is embedded inside the produced dataset. Therefore, updating the object APIs could generate issues. To overcome the problem, all the MD custom objects are now using JSON serialization and deserialization, which does not have this side effect. To avoid compatibility problems, in this release both serializers (pickle and JSON) are supported. However, the support for pickle will be dropped in future releases, and only the JSON serializer will be kept. The MDAPIDatasetConverterCube can be used to convert old datasets into new datasets where the JSON serializer/deserializer is used.

New Cubes

  • Iterative NPT Cube. This cube performs NPT MD simulations in the cyclic MD Floe (Plain MD Floe) on the provided system. If the MD cycle is complete, the cube emits the record to the “success” port and if not, it emits the record to the “cycle_out_port” port.

  • Iteration Checker Cube. This cube checks if the MD cycle is complete. If the MD cycle is complete, it emits the record to the “true” output port, and if not, it emits the record to the “false” output port.

Cube Updates

  • The MDAPIDatasetConverterCube has been updated to support the conversion from old pickle datasets to the new JSON serializer/deserializer

  • The ComplexPrepCube has been updated to raise a fatal error if the protein cannot been found.

v1.1.6 June 2022

General Notice

  • Add new Cube for checking the wall clock time of production runs

  • G4/G5 AWS instances support for OpenMM/GROMACS

  • Minor bug fixing

New Cubes

  • MDSpeedChecker Cube. This Cube estimates the wall clock time a production run will require and if the estimated time exceeds the 12 hour time limit, the Cube will fail the job.

Cube Updates

  • All Cubes have been updated for improved exception handling.

v1.1.5 April 2022

General Notice

  • New Cubes for Long Trajectory MD support; these are Cubes to enable iterative Floes.

  • Package dependencies update

  • Minor bug fixing

New Cubes

  • MDProxyCube. The MD Proxy Cube runs chunks of MD simulations in cycles till the desired total MD running time has been reached

  • MDRecoveryRestartProxyCube. This Cube is able to restart or recover a previously run long MD simulation. It is used in association with the MD proxy cube.

Cube Updates

  • All the MD Cubes are by default pinning g3 spot instances to improve reliability.

v1.1.2 December 2021

General Notice

  • Better Implicit Solvent Support

  • Add CPU support to OpenMM and Gromax

  • Add HMR support to Gromax

New Cubes

  • MDAPIDatasetConverterCube

Cube Updates

  • All the MD cubes have been updated to support Implicit Solvent simulations