========= Changelog ========= .. current developments v1.4.0 ==================== This release includes significant quality of life improvements for the CLI's ``openfe gather`` command. **Added:** * ``openfe gather`` now accepts any number of filepaths and/or directories containing results JSON files, instead of only accepting one results directory (`PR #1212 `_). * When running ``openfe gather --report=dg`` and result edges have fewer than 2 replicates, an error will be thrown up-front instead of failing downstream with a ``numpy.linalg.LinAlgError: SVD did not converge`` error (`PR #1243 `_). * ``openfe gather`` includes failed simulations in its output, with ``Error`` listed in place of a computed value, instead of simply omitting those results from the output table (`PR #1227 `_). * ``openfe gather --report=dg`` (the default) checks for connectivity of the results network and throws an error if the network is disconnected or has fewer than 3 edges (`PR #1227 `_). * ``openfe gather`` prints warnings for all results JSONs whose simulations have failed or are otherwise invalid (`PR #1227 `_ ). * ``openfe gather`` now throws an error up-front if no valid results are provided, instead of returning an empty table (`PR #1245 `_). **Changed:** * Improved formatting of ``openfe gather`` output tables. Use ``--tsv`` to instead view the raw tsv formatted output (this was the default behavior as of v1.3.x) (`PR #1246 `_). * Improved responsiveness of several CLI commands (`PR #1254 `_). v1.3.1 ==================== Bugfix release - Improved error handling and code cleanup. We are also dropping official support for MacOSX-x86_64. Any platform-specific bugs will be addressed when possible, but as a low priority. **Added:** * ``openfe gather`` now detects failed simulations up-front and prints warnings to stdout (`PR #1207 `_). **Changed:** * Temporarily disabled bootstrap uncertainties in forward/reverse analysis due to solver loop issues when dealing with too small a set of samples (`PR #1174 `_). **Removed:** * Dropped official support for MacOSX-x86_64. Any platform-specific bugs will be addressed when possible, but as a low priority. * Unused trajectory handling code was removed from ``openfe.utils``, please use ``openfe-analysis`` instead (`PR #1182 `_). **Fixed:** * Fixed `issue #1178 `_ -- The GPU system probe is now more robust to different ways the ``nvidia-smi`` command can fail (`PR #1186 `_) * Fixed bug where openmm protocols using default settings would re-load from JSON as a different gufe key due to unit name string representation discrepancies (`PR #1210 `_) v1.3.0 ==================== **Added:** * Added CLI support for ``generate_lomap_network``. This option can be specified as a `YAML-defined setting `_ * Added ``--n-protocol-repeats`` CLI option to allow user-defined number of repeats per quickrun execution. This allows for parallelizing execution of repeats by setting ``--n-protocol-repeats=1`` and calling ``quickrun`` on the same input file multiple times. * Added a new CLI command (``charge-molecules``) to bulk assign partial charges to molecules `PR#1068 `_ * CLI setup will raise warnings for unsupported top-level YAML fields. * OpenMMEngineSettings now has a `gpu_device_index` attribute allowing users to pass through a list of ``ints`` to select the GPU devices to run their simulations on. * Add support for variable position/velocity trajectory writing. * ``openfe gather`` now supports replicates that have been submitted in parallel across separate directories. **Changed:** * Networks planned using the CLI will now automatically use an extended protocol for transformations involving a net charge change `PR#1053 `_ * The ``plan-rhfe-network`` and ``plan-rbfe-network`` CLI commands will now assign partial charges before planning the network if charges are not present, the charge assignment method can be controlled via the yaml settings file `PR#1068 `_ * `openfe.protocols.openmm_rfe._rfe_utils.compute` has been moved to `openfe.protocols.openmm_utils.omm_compute`. * ``openfe gather`` now includes *all* edges with missing runs (instead of just the first failing edge) when raising a "missing runs" error. * ``openfe quickrun`` now creates the parent directory as-needed for user-defined output json paths (``-o``). * The MBAR bootstrap (1000 iterations) error is used to estimate protocol uncertainty instead of the statistical uncertainty (one standard deviation) and pymbar3 is no longer supported `PR#1077 `_ * CLI network planners' default names use prefixes `rbfe_` or `rhfe_` , instead of `easy_rbfe` or `easy_rhfe`, to simplify default transformation names. **Removed:** * openfe is no longer tested against macos-12. macos support is, for now, limited to osx-arm64 (macos-14+). **Fixed:** * ``openfe quickrun`` now creates the parent directory as-needed for user-defined output json paths (``-o``). * OpenMM CPU vacuum calculations now enforce the use of a single CPU to avoid large performance losses. v1.2.0 ==================== **Added:** * New `cookbook featuring bespokefit `_ **Fixed:** * Improved responsiveness of CLI calls * Fixed bug where `openfe gather --report raw` was only including first replicates. v1.1.0 ==================== **Added:** * Extended system solvation tooling, including support for; non-cubic boxes, explicitly defining the number of waters added, the box vectors, and box size as supported by `Modeller.addSolvent` in OpenMM 8.0 and above. **Changed:** * Improved documentation of the OpenMMSolvationSettings. * The `PersesAtomMapper` now uses openff.units inline with the rest of the package. * Structural analysis data is no longer written to `structural_analysis.json` but rather a 32bit numpy compressed file named `structural_analysis.npz` (`PR #937 `_). * Structural analysis array data is no longer directly returned in the RelativeHybridTopologyProtocol result dictionary. Instead it should be accessed from the serialized NPZ file `structural_analysis.npz`. The `structural_analysis` key now contains a path to the NPZ file, if the structural analysis did not fail (the `structural_analysis_error` key will instead be present on failure) (`PR #937 `_). * Add duecredit citations for pymbar when calling `openfe.protocols.openmm_utils.multistate_analysis`. **Fixed:** * 2D RMSD plotting now allows for fewer than 5 states (`PR #896 `_). * 2D RMSD plotting no longer draws empty axes when the number of states - 1 is not divisible by 4 (`PR #896 `_). * The RelativeHybridTopologyProtocol result unit is now much smaller, due to the removal of structural analysis data (`PR #937 `_). v1.0.1 ==================== **Added:** * Debug script in devtools to test OpenMM installation. * Use rever to manage changelog. **Changed:** * Updated docs to reference miniforge instead of mambaforge since they are the same now, see https://github.com/conda-forge/miniforge?tab=readme-ov-file#whats-the-difference-between-mambaforge-and-miniforge. * The LomapAtomMapper defaults have now changed to better reflect real-life usage. Key kwarg changes include; `max3d=1.0` and `shift=False`. **Fixed:** * Calling `get_forward_and_reverse_energy_analysis` in the RFE and AFE protocols now results a warning if any results are ``None`` due to MBAR convergence issues. * Checkpoint interval default value has been set to 250 ps instead of 1 ps. This better matches the previous default for openfe versions < 1.0rc (See `issue #772 `_ ).