Skip to content

Move rfe protocol#1769

Merged
IAlibay merged 39 commits intomainfrom
move-rfe-protocol
Jan 7, 2026
Merged

Move rfe protocol#1769
IAlibay merged 39 commits intomainfrom
move-rfe-protocol

Conversation

@IAlibay
Copy link
Member

@IAlibay IAlibay commented Jan 3, 2026

Blocked by #1740 and #1768

Towards protocol continuations - moves some files around to make things easier to work it.

IMPORTANT: This is not a finalized layout for all the files, so please don't lose time bikeshedding here - we can reformat everything later (especially as we move towards a 2.0).

Checklist

  • All new code is appropriately documented (user-facing code must have complete docstrings).
  • [N/A] Added a news entry, or the changes are not user-facing.
  • Ran pre-commit by making a comment with pre-commit.ci autofix before requesting review.

Manual Tests: these are slow so don't need to be run every commit, only before merging and when relevant changes are made (generally at reviewer-discretion).

Developers certificate of origin

@IAlibay
Copy link
Member Author

IAlibay commented Jan 3, 2026

pre-commit.ci autofix

@IAlibay
Copy link
Member Author

IAlibay commented Jan 6, 2026

pre-commit.ci autofix

@IAlibay
Copy link
Member Author

IAlibay commented Jan 6, 2026

pre-commit.ci autofix

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might be being a bit premature with this one - I haven't done this move with the AFE protocols. I was partly being motivated by the fact that eventually we might have "full cycle" protocols that do the whole RHFE/RBFE, they will mostly inherit the same base class and have lightweight changes to their validation & construction methods. In that case it makes sense to have them live in a separate file somewhere so it's easier to see the subclasses.

@IAlibay IAlibay marked this pull request as ready for review January 6, 2026 16:53
Copy link
Contributor

@hannahbaumann hannahbaumann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @IAlibay lgtm! Just two comments. Do we have a document somewhere where we're listing all the ideas for changes for the 2.0 or is that too premature?


Acknowledgements
----------------
These ProtocolUnits are based on, and leverage components originating from
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether the file name could also be hybridtop_protocol_units.py to be more similar to the other files?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a pretty good idea - I've added it to #1785. I might circle back and make the change once we're done with all the other PRs for the hybridtop protocol (changing this file name specifically will cause some headaches 😓 ).

IAlibay and others added 2 commits January 7, 2026 12:31
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
@github-actions
Copy link

github-actions bot commented Jan 7, 2026

No API break detected ✅

@codecov
Copy link

codecov bot commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 91.14833% with 37 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.21%. Comparing base (990b77b) to head (77acfbe).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
openfe/protocols/openmm_rfe/hybridtop_units.py 85.20% 25 Missing ⚠️
...protocols/openmm_rfe/hybridtop_protocol_results.py 85.91% 10 Missing ⚠️
openfe/protocols/openmm_rfe/hybridtop_protocols.py 98.82% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1769      +/-   ##
==========================================
- Coverage   95.40%   93.21%   -2.20%     
==========================================
  Files         190      193       +3     
  Lines       16818    16838      +20     
==========================================
- Hits        16046    15695     -351     
- Misses        772     1143     +371     
Flag Coverage Δ
fast-tests 93.21% <91.14%> (?)
slow-tests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@IAlibay IAlibay merged commit acd6d58 into main Jan 7, 2026
11 of 12 checks passed
@IAlibay IAlibay deleted the move-rfe-protocol branch January 7, 2026 13:15
atravitz pushed a commit that referenced this pull request Feb 5, 2026
Move RFE protocol files around
atravitz added a commit that referenced this pull request Feb 5, 2026
* 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](tox-dev/pyproject-fmt@v2.8.0...v2.11.1)
- [github.com/astral-sh/ruff-pre-commit: v0.13.3 → v0.14.10](astral-sh/ruff-pre-commit@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 00cc2a3.

* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants