124 Commits

Author SHA1 Message Date
Irfan Alibay
53470827a4 Switch repeat id assignment from leg to repeat in AFE Protocols (#1948)
* switch uuid from leg to repeat

* Add news item

---------

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-05-21 09:50:48 -07:00
Alyssa Travitz
cb10892e79 Updated CHANGELOG for 1.11.1 (#1973) 2026-05-01 19:32:51 -07:00
Alyssa Travitz
fa74a35f02 speed up cli responsiveness (#1972)
* move imports inside functions

* speed up imports in gather*.py

* add back speedy imports

* add news entry
2026-04-30 11:33:13 -07:00
Alyssa Travitz
db379890b2 release prep for v1.11.0 (#1967)
* Updated CHANGELOG for 1.11.0

* add PR links

* update release prep template

* fix code formatting

* Updated CHANGELOG for 1.11.0

* update example notebook tag

* update comment in env
2026-04-28 18:10:16 +00:00
Josh Horton
7bc31e1df5 Fix 1-4 interpolation for core-dummy interactions (#1856)
* Change the 1-4 interpolation to be on by default.
* Add htf tests including tests for 1-4 interpolation.

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2026-04-28 15:05:48 +01:00
Alyssa Travitz
82558ea7cd update changelog for perses deprecation planned in v1.12 (#1966) 2026-04-27 12:29:20 -07:00
Alyssa Travitz
8d229cffe3 membrane CLI support (#1896)
* initial cli ideas

* clean up names

* add test

* update docstrings and fix imports

* fix tests

* use gufe gzip branch

* clean up fixtures

* update fixtures

* adding membrane component to tests

* add membrane barostat check

* make output more consistent and add membrane args test

* error messages

* revert some out of scope typing things

* tidying fixtures

* update protein arg parsing

* clearer var naming

* add protein validate

* add validation

* fix handling for membrane solvents

* update docstring

* point to membrane tutorial branch

* linking

* remove redundant validation

* remove unneeded type hints

* Update src/openfecli/commands/plan_rbfe_network.py

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

* Update src/openfecli/parameters/protein.py

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

* clean up suggestions

* use click BadParameter

* testing arg errors

* update examplenotebook branch

* add news item

* use BadParameter

* fix test comments

---------

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
2026-04-27 09:05:43 -07:00
Josh Horton
909d29ad25 Plain MD restart support (#1884)
* split md protocol to setup and simulate, add restart support

* allow for resume in any stage

* add a single run dynamics function

* update restart to only look for checkpoints, split out remaining step logic, update tests

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2026-04-27 16:04:28 +01:00
Irfan Alibay
be6cd88414 Add resume support to SepTop (#1949)
Add resume support to SepTopProtocol.
2026-04-24 14:55:18 +01:00
Hannah Baumann
fc6689eaf1 User guide updates membrane (#1933)
* Membrane support prototype start

* Point to corresponding branch in gufe

* Make plain md protocol membrane ready

* Dry run for membrane system for debugging

* Add box vectors to modeller

* Adapt htf to allow for membrane barostat

* Fix test

* Add test files membrane

* Change test to cpu

* Prints for debugging

* Some more debugginh stuff, remove later

* Small fix

* Temporarily use branches for openmmtools and openmmforcefield

* Small fixes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* support membrane in gather

* First pass membrane support for SepTop protocol

* Change validation solvent

* Move changes in solvent validation to validate_solvent

* Some small fixes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add membrane test septop

* Change box vector units for handling membrane barostat

* Test box vectors SepTop more

* First pass at ABFE membrane prototype

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove some prints

* Revert box changes

* Some fixes in SepTop to fix tests

* Apply suggestion from @hannahbaumann

* Add tests for system creation

* FIx test

* Add ABFE membrane tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* More tests membrane septop and more dry outputs in septop

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add validation for box vector in ProteinMembraneComponent

* Adapt gather for membranes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* small changes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Modify box vectors plain md

* Address review comments

* Remove unnecessary prints

* Subclass membrane test

* Small fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove unnecessary import

* Remove prints

* Small fix

* Small fix

* Larger change to checks for BaseSolventComponent, SolvatedPDBComponent, and adding barostat settings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Some more changes

* Small fix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ABFE enforce timestep complex solvent the same

* Update test files

* Update environment.yaml with new openmmtools and openmmforcefield versions

* Remove unnecessary checks for box_vectors which are handled in gufe

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update openfe/protocols/openmm_afe/equil_binding_afe_method.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Attempt at rewriting validate_solvent

* Move get barostat to self

* Simplify mapping in test

* Add validator for surface_tension and membrane barostat

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add membrane barostat to adaptive settings rfe protocol

* Add validation/warning for barostat component mismatch

* Fix tests (except CLI)

* More merge fixes

* Remove unnecessary imports

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add test files

* Update tests

* Add lipid ff in adaptive settings

* remove commented out lines

* Update test abfe

* Update ABFE results with new settings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix solvent validation

* change env to gufe main

* Apply suggestion from @hannahbaumann

* Remove files from before src layout change

* Update tests

* Small fix

* mark slow tests

* Update env file

* Small fix

* Update src/openfe/protocols/openmm_afe/equil_binding_afe_method.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/protocols/openmm_afe/equil_binding_afe_method.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/protocols/openmm_rfe/_rfe_utils/relative.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/protocols/openmm_utils/system_validation.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Address review comments 1

* update doc string

* Update src/openfe/tests/protocols/openmm_abfe/test_abfe_protocol.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/tests/protocols/openmm_abfe/test_abfe_protocol.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/tests/protocols/openmm_abfe/test_abfe_protocol.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Update src/openfe/tests/protocols/openmm_abfe/test_abfe_protocol.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Address review comments 2

* Address review comments 3

* fix mypy

* Fix system creation tests

* Roundtrip box vectors to remove vec3 issues

* Roundtrip box vectors to remove vec3 issues

* Remove unnecessary imports

* Apply suggestion from @hannahbaumann

* Test mypy failure

* Test mypy failure 2

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* some fixes

* small fixes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update test files

* Update SepTop results settings

* add more tests for adaptive settings and others

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add news entry

* Fix for box vectors hybtop

* Make test slow again

* Make mypy happy

* try to make mypy happy again

* Adapt gather RFE membrane component types

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* use reference platform for the membrane energy test

* Add ChemicalSystem Component validation to Protocols

* Add test for chemicalsystem validation

* Apply suggestions from code review

Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>

* Update with slight variation to @jthorton 's suggestion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* point gufe back at main

* Drop lipid17 from adaptive settings

* just a tiny nit change

* fix typo

* Add extra class to openfecli check

* Add total particle checks to abfe protocol tests

* remove lipid17 check from adaptive settings

* remove lipid17 check from adaptive settings

* Add some checks for number of particles & residues

* Fix up some tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Minimized protein

* Update protein

* Revert back to old protein

* Apply suggestion from @hannahbaumann

* Remove box roundtrip and fix solvent from get_components

* Merge conflicts

* Update src/openfe/tests/protocols/openmm_abfe/test_abfe_protocol.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix merge conflict

* Forgot another one

* Move box roundtrip to _pre_equilibrate

* First go at modifying the user guide for membranes and ABFE and SepTop

* some small fixes

* Add adaptive_settings to user guide

* Add example code loading protein membrane

* Add box vector explanation

* Some smaller changes

* Make adaptive settings subheading

* Some more changes

* Add warning adaptive settings

* Update docs/guide/setup/defining_protocols.rst

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Addressing review comments

* some more updates

* Test out subheadings

* Restructure user guide

* merge conflicts

* Small fix

* some small updates

* addressing review comments

* Small fix

* address review comments

* small fix

* Add news entry

* Update docs/guide/setup/chemical_systems_and_thermodynamic_cycles.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* Update docs/guide/setup/defining_protocols.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* Update docs/guide/setup/chemical_systems_and_thermodynamic_cycles.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* Addres review comment

* Update docs/guide/setup/chemical_systems_and_thermodynamic_cycles.rst

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>

* Update docs/guide/setup/chemical_systems_and_thermodynamic_cycles.rst

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>

* Address review comment

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
2026-04-24 14:03:06 +02:00
Irfan Alibay
c81d27cf0d Add Analysis unit for Septop (#1937)
* Add an Analysis unit to SepTopProtocol.
* Update PDB writing via MDTraj in AFE and SepTop Protocols to account for box dimensions with mdtraj_from_openmm utility.
* Split up some SepTop tests into different files.
* Updated the CLI gathering to account for post openfe v1.11 Analysis units

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2026-04-24 10:00:06 +01:00
Irfan Alibay
7959cc6e74 Only warn if forces mismatch in hash check (#1914)
* Only warn if forces mismatch in hash check
2026-04-22 18:21:59 +01:00
Irfan Alibay
b501e2ed3c Add validate method for SepTop (#1946)
Add a validate method for SepTopProtocol.
2026-04-17 15:45:33 +01:00
Hannah Baumann
0af4cab4ed Add membrane support to OpenFE Protocols (#1561)
* Add membrane support to Hybrid Topology, AHFE, ABFE, SepTop and PlainMD Protocols.
* Update relevant system creation tooling

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
Co-authored-by: Josh Horton <joshua.horton@openforcefield.org>
2026-04-16 19:06:11 +01:00
Irfan Alibay
fab07ca639 fix prepare message for RFE (#1915)
* fix prepare log message for RFE

* fix prepare log message for AFE
2026-04-08 21:04:15 +01:00
Alyssa Travitz
adb19162b5 Release v1.10.0 (#1902)
* Updated CHANGELOG for 1.10.10

* clean up links

* consistent formatting

* add link to new docs
2026-03-30 16:07:38 -07:00
Irfan Alibay
a15edcc441 Modify quickrun to allow resuming (#1848)
* Modify quickrun to allow resuming

* fix the gather tests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add check for protocol_dag.json

* add basic test

* clearer language, hopefully

* store protocol dag using transformation key

* another tmpdir -> tmp_path fix

* add error handling check

* fix naming in test

* add news item

* use assert_click_success

* add test for interrupted job

* remove checkpoint when a job has completed successfully

* add handling for checkpoint error handling without --resume

* clean up logic

* check for warning

* add docs

* make a cache dir

* use clickexception

* update error message

* update kwarg

* keep everything in the quickrun cache

* clearer message

* it's ProtocolDAG not protocolDAG

* bump CI

* bump CI

* include output json in caching hash (#1890)

* first pass at adding caching with output json

* add (hopefully) helpful execution information

* add resume command

* fix testing path

* check that output file isn't created early

* clean up tests

* line break

* fix some comments to say cache instead of checkpoint

* fix typo in news item

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <alyssa.travitz@omsf.io>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-03-26 16:37:25 +00:00
Alyssa Travitz
c5a27ae226 update abfe test data (#1862)
* update abfe test data

* fixing regression test data

* add tests for prior behavior

* Minor fix to support ABFE gathering with openfe v1.9+ (#1876)

* Minor fix to try to unblock v1.10

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comment

* More exposition

* update expected results

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <alyssa.travitz@omsf.io>

* add news item

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-19 21:41:10 +00:00
Irfan Alibay
ee5a558fbc Add resuming support in AFE Protocols (#1808)
* Add resuming support to multistate AFE Protocols

---------

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
2026-03-17 12:41:34 +00:00
Alyssa Travitz
591c9b70fc deprecate perses functionality (#1857)
* add tests that should fail

* add deprecation warnings

* news item

* raises-> warns fix

* Update news/deprecate_perses.rst

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

* add issues link

---------

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
2026-02-25 18:40:34 +00:00
Alyssa Travitz
90764128f6 Updated CHANGELOG for 1.9.1 (#1850) 2026-02-16 08:29:38 -08:00
Irfan Alibay
53d3dad90f Safely close reporter and clear GPU contexts to avoid UnboundLocalErrors (#1846)
* Safely close reporter and clear GPU contexts to avoid UnboundLocalErrors

Added try/except block to safely close things in case there's an unbound variable.

* small fix

small fix

* Also improve deletion for the hybridtop protocol

Added error handling for reporter closure and context clearing.

* Add news item

* Update news/issue-1845.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

---------

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-02-16 08:14:16 -08:00
Alyssa Travitz
ad07917131 Release/v1.9.0 (#1835)
* Updated CHANGELOG for 1.9.0

* add links to changelog

* fix ci path

* Apply suggestions from code review

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Updated CHANGELOG for 1.9.0

* update changelog

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2026-02-11 10:21:55 -08:00
Alyssa Travitz
64ff6fd70a add --download-only option to openfe test (#1814)
* add boilerplate

* define pooch cache at top level

* try downloading one file

* put pooch cache in utils

* use dict

* add all cli data

* keep registry data all in one place

* move downloader to openfe from openfecli

* add both registries to test

* rename for clarity

* better docstring
2026-02-11 08:41:00 -08:00
Alyssa Travitz
8577e43bdb changelog updates for 1.8.1 (#1832)
* update install instructions (#1744)

* update manifest to include all .gz files (#1746)

* update manifest to include all .gz files

* add min openmmforcefields pin

* bump cuda version to 11.8 (#1749)

* fix deprecation warning on view_components_3d (#1750)

* expose KartografAtomMapper alongside other AtomMappers (#1751)

* fix psutils import (#1779)

* fix psutils import

* swap import order

* [pre-commit.ci] pre-commit autoupdate (#1778)

updates:
- [github.com/tox-dev/pyproject-fmt: v2.8.0 → v2.11.1](https://github.com/tox-dev/pyproject-fmt/compare/v2.8.0...v2.11.1)
- [github.com/astral-sh/ruff-pre-commit: v0.13.3 → v0.14.10](https://github.com/astral-sh/ruff-pre-commit/compare/v0.13.3...v0.14.10)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Disable NAGL as a partial charge backend when OEToolkit is installed but not chosen as the registry backend. (#1762)

* NAGL can no longer be used with oechem installed if you are using the rdkit backend.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* rename openfecli fixture to avoid duplication with openfe fixture (#1755)

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* openfe gather: add progress bar for loading JSONs (#1786)

* all the profiling

* make progress bar pretty

* revert typing thing

* news

* all the profiling

* make progress bar pretty

* revert typing thing

* news

* update expected outputs

* update expected outputs

* add dill mock to fix openfe docs build (#1792)

* Fix issue 1795 (#1796)

* Update method name in CLI YAML documentation

* Fix command option case in CLI YAML guide

* manually add absolute settings news item to changelog (#1821)

* manually add absolute settings news item to changelog

* add link

* Fixes docstring to clarify argument does not have a default (#1819)

* Fixes docstring to clarify argument does not have a default

* Modernize typing

* fix ligand network cropping bug (#1822)

* fix ligand network cropping bug

* move to upstream func

* whitespace

* fix pydantic deprecation of copy method

* fix pydantic deprecation of dict method - septop (#1831)

* Updated CHANGELOG for 1.8.1

* fix changelog links

* add openeye w/ python 3.13 test to CI (#1745)

* add openeye w/ python 3.13 test to CI

* only run openeye on unbuntu w/ python 3.13

* add explicit openeye no

* bump python version for conda cron (#1748)

* remove mypy rdkit pin (#1753)

* remove mypy rdkit pin

* try more explicit import

* Revert "try more explicit import"

This reverts commit 00cc2a3729.

* disallow attr-defined error code

* try globally disabling attr-defined

* try specific override

* per-line ignores

* Make the multistate hybrid topology samplers not require the HybridTopologyFactory (#1768)

* make hybrid samplers not rely on htf but instead on the system & positions.

* Migrate validation to Protocol._validate in HybridTopologyProtocol (#1740)

* Migrate & add validation to Protocol._validate for hybrid topology Protocol

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>

* Move rfe protocol (#1769)

Move RFE protocol files around

* HybridTop Unit methods (#1770)

* Break down the Hybrid Top protocol unit into various methods.

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* Have two separate system generators for state A & B in hybrid protocol (#1772)

Make it so that the states A and B are generated using two different SystemGenerator objects, allowing for partial charge transformations.

* HybridTop structural analysis via API rather than CLI (#1771)

* change structural analysis from using CLI to using API

* making some language clearer on github-facing things (#1758)

* making some language clearer on github-facing things

* :

* add pre-commit link

* clean up

* Moving AFE Protocols around a bit (#1775)

* move the protocols results to a single file and deduplicate
* rename base units file
* move units out of method files
* move a few things in init

* Create setup, run, and analysis units for HybridTop Protocol (#1773)

* Turn Hybrid Topology protocol into 3 units.

---------

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* update docs for multiple protocol units (#1793)

* Update docstring for hybridtop classes (#1794)

* Update docstring for classes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Small improvement in RelativeHybridTopologyProtocol docstring (#1797)

Updated class docstring to clarify the use of Hybrid Topology scheme.

* turn off zenodo retry (#1802)

* turn off zenodo retry

* remove retry_if_failed arg

* only run CI on macos python 3.12 (#1803)

* Turn AFE protocols into multiple units (#1776)

* Split the AFE protocol units into setup, simulation, and analysis.

* move to src layout (#1805)

* Move openfe project layout to `src`.

* Temporarily build pooch from main w/ hotfix (#1806)

* build with pooch@main to see if hotfix works

* add link

* make CLI starting guide easier to find from the landing page (#1787)

* make CLI starting guide easier to find from the landing page

* Python API -> API Docs

* bump ci

* bump example notebooks pin to 2026.01.26

* change a word

* clarifying language

* Update pyproject.toml (#1813)

* Update pyproject.toml

* update classifiers

* refactor: clean up test data handling (#1815)

* import pooch_cache from conftest

* remove unused files from pooch cache

* move zenodo cache to conftest

* remove duplicate code

* min pin pooch to fix data fetching (#1820)

* fix ligand network cropping bug (#1822)

* fix ligand network cropping bug

* move to upstream func

* whitespace

* fix api break check path (#1825)

* fix pydantic deprecation of copy method (#1829)

* fix scope mismatch with zenodo data (#1828)

* fix scope mismatch with zenodo data

* fix session scope

---------

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
2026-02-05 08:54:59 -08:00
Alyssa Travitz
a4292b3e16 fix ligand network cropping bug (#1822)
* fix ligand network cropping bug

* move to upstream func

* whitespace
2026-02-03 07:52:34 -08:00
Alyssa Travitz
1f28ee131b manually add absolute settings news item to changelog (#1821)
* manually add absolute settings news item to changelog

* add link
2026-02-02 09:12:28 -08:00
Irfan Alibay
27c0d79cd1 Turn AFE protocols into multiple units (#1776)
* Split the AFE protocol units into setup, simulation, and analysis.
2026-01-22 13:38:57 +00:00
Alyssa Travitz
907cefd24f openfe gather: add progress bar for loading JSONs (#1786)
* all the profiling

* make progress bar pretty

* revert typing thing

* news

* all the profiling

* make progress bar pretty

* revert typing thing

* news

* update expected outputs

* update expected outputs
2026-01-09 15:01:30 -08:00
Irfan Alibay
aeabebf8b3 Have two separate system generators for state A & B in hybrid protocol (#1772)
Make it so that the states A and B are generated using two different SystemGenerator objects, allowing for partial charge transformations.
2026-01-08 23:55:19 +00:00
Irfan Alibay
3c59eae026 Disable NAGL as a partial charge backend when OEToolkit is installed but not chosen as the registry backend. (#1762)
* NAGL can no longer be used with oechem installed if you are using the rdkit backend.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-01-07 00:21:09 +00:00
Irfan Alibay
fd8101b305 Migrate validation to Protocol._validate in HybridTopologyProtocol (#1740)
* Migrate & add validation to Protocol._validate for hybrid topology Protocol

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
2026-01-06 15:02:33 +00:00
Alyssa Travitz
e64964daab release/1.8.0 (#1734)
* Updated CHANGELOG for 1.8.0

* format changelog

* Update docs/CHANGELOG.rst

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

---------

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
2025-12-08 11:17:28 -08:00
Irfan Alibay
c534c75205 Add AbsoluteFactory options to AlchemicalSettings (#1742)
* Add absolute alchemical settings

* Expose settings in AFE protocols

* expose settings in septop

* Fix up settings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add some tests

* Add septop tests for sterics force settings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add news item

* add an extra parameterize option

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-08 07:17:36 -08:00
Alyssa Travitz
2c8feff5a8 feat: experimental openfe gather-septop & openfe gather-abfe support (#1710)
* feat: support `openfe gather` for septop (#1638)

* copy septop analysis notebook over

* add todos

* add plan and test

* format

* add failing tests

* comment out secondary tests

* add cli tmp

* clean up imports

* fix type hints in gather.py

* test passes for gather raw

* test passes for ddg

* tests pass for dg

* pull more error handling into septop

* condense code a bit

* MBAR uncertainty

* remove planning stub

* Revert "MBAR uncertainty"

This reverts commit bf32aa3c6e.

* format

* test with tolerances

* precommit format

* remove accidentally committed file

* Apply suggestions from code review

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* feat: add abfe gathering support first draft (#1686)

* add abfe MVP with tests

* Apply suggestions from code review

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* fix incorrect var name

* fix abfe legs extraction

* fix merge bug

* remove unused import

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* gather: fix septop rounding (#1696)

* only apply precision rounding at the end

* clean up code

* gather: update names parsing (septop and abfe) (#1698)

* update abfe names parsing

* update septop names parsing

* add todo

* get names from alchemical_components

* remove todo

* gather: refactor/unify rounding behavior (#1697)

* format septop outputs with format_df_with_precision

* only apply precision rounding at the end

* update gather abfe formatting to use format_df_with_precision

* remove unused import

* switch back to checking final outputs for abfes

* clean up code

* add rounding for dg mle

* simplify code

* gather: unify code structure between rbfe, septop, & abfe (#1700)

* format septop outputs with format_df_with_precision

* only apply precision rounding at the end

* update gather abfe formatting to use format_df_with_precision

* remove unused import

* switch back to checking final outputs for abfes

* clean up code

* add rounding for dg mle

* simplify code

* make gather_septop.py code more similar to gather.py

* make gather_abfe.py code more similar to gather.py

* remove unused function

* add stdout message for experimental gathering support (#1703)

* add warnings for experimental gathering

* use click to make output look nicer, not a true warning

* add warning text

* make yellow

* add tests

* remove unused code

* add news item

* speed up names gathering

* names should always return str

* add single repeat tests for abfe and septop

* remove unused imports

* make `gather septop/abfe` output headers accurately reflect error type (#1712)

* gather septop/abfe output headers accurately reflect error type

* split into func

* label all uncertainty columns more specifically

* add docstring

* update test data

* update error calculation

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2025-12-04 07:34:20 -08:00
Mike Henry
f491184b58 Disable JAX acceleration by default (#1694)
* Disable JAX acceleration by default

* ruff fmt

* add logging info

* fix url

* fix list

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add example of error message

* added note about disabling jax acel by default

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-02 21:12:24 +00:00
Alyssa Travitz
44a3f7df3b updating install recommendations to prioritize miniconda and conda-lock (#1692)
* updating install recommendations to prioritize miniconda and conda-lock

* fix formatting

* Update docs/installation.rst

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

* recommend openfe test

* remove miniforge

* update language and clean up install instructions

* add link

* adding news item

* add back miniforge instructions at the end

* make testing its own section

* clearer language and  formatting

* why is rst like this

* why is rst like this??

* one sentence per line!

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>

---------

Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
2025-12-01 10:24:55 -08:00
Alyssa Travitz
8ab0f8668d pull names directly from ligandmapping (#1702)
* pull names directly from ligandmapping

* update news entry
2025-12-01 18:01:33 +00:00
Josh Horton
35a999907e Add CMAPTorsionForce support (#1695)
Adds support for CMAPTorsionForce in relative hybrid topology simulations.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2025-12-01 14:19:54 +00:00
Alyssa Travitz
f710d3c1e9 Feat/improve names gathering (#1691)
* first pass at querying names from gufe objects

* code clean up

* adding (bloated) test, needs trimming still

* fix unit_results error handling

* updating test data

* Apply suggestion from @jthorton

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>

* use ChemicalSystem

* add news item

---------

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
2025-11-22 00:01:49 +00:00
Mike Henry
b0789ff0ae Add logging control (#1585)
* do we test this at all?

* start of logging improvements

* first pass at logging, worried about performance

* setup a base class + add type hints

* add placeholder url ref

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update to new logging control

* Fix imports

* remove bit left over from being able to delete these log controlers

* looks like ... is used more than pass

* formatting fix

* Grab new format rule from main

* run ruff check --fix on conflicting files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added tests

* see if this fixes the doc build

* add back debugging code

* update openmm doc url

* add note about jax warning

* bump

* Remove debugging code to see if that fixes doc build

* ruff format

* Add url

* switch to using module instead of class w/ static methods

* Update docs/guide/troubleshooting.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* ruff fixes

* Ruff fix

* Added news entry

* Refactor to move things to private namespace

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2025-11-21 07:30:53 -08:00
Irfan Alibay
84e090bfbe Prepare for release v1.7 (#1601)
* Updated CHANGELOG for 1.7.0

---------

Co-authored-by: Alyssa Travitz <alyssa.travitz@omsf.io>
2025-10-21 17:52:37 +01:00
Irfan Alibay
66d14f61bc ABFE protocol (#1045)
Add an Absolute Binding Free Energy Protocol to openfe.

Key features & limitations:
* Automatic Boresch restraint assignment.
* Does not handle net charge corrections yet.

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: hannahbaumann <hbaumann@uci.edu>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2025-10-21 11:45:37 +01:00
Alyssa Travitz
141960944b deprecate openfe utils 3dviz in favor of gufe method (#1592)
* deprecate openfe utils 3dviz in favor of gufe method

* add news item

* update news

* fix deprecation warning capture

* update guide

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2025-10-20 23:56:23 +00:00
Josh Horton
774c42ed48 Fast/ adaptive settings (#1523)
* add adaptive settings method

* remove env file change

* expose the adaptive settings via the CLI

* fix indent, stop using frozen copy

* pr feedback

* typo

* gj pycharm

* update tests

* update base settings

* fix tests, add option to supply input settings

* fix tests, remove redundant septop settings changes

* Update openfe/protocols/openmm_rfe/equil_rfe_methods.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* fix nb tests, add news

* Update news/rbfe_settings_update.rst

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Apply suggestion from @IAlibay

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Apply suggestion from @IAlibay

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2025-10-20 11:32:16 -07:00
Irfan Alibay
7f93af79ec Make CUDA the default compute platform (#1576)
* Make CUDA the default compute platform
2025-10-20 14:10:34 +01:00
Irfan Alibay
a2f08ac3d3 Fix validation in AHFE Protocol (#1572)
* AHFE protocol: add net charge check and reformat to use validate
2025-10-14 17:45:58 +00:00
Alyssa Travitz
b9f7593b2d migrate to pydantic v2 (#1535) 2025-10-10 23:02:57 +00:00
Josh Horton
aeb26c8a30 Merge branch 'main' into default_atom_mapper 2025-10-08 09:41:41 +01:00
Josh Horton
0e496ef280 Merge remote-tracking branch 'origin/constraint_key_error' into constraint_key_error 2025-10-07 13:47:44 +01:00