Skip to content

Fix 1-4 interpolation for core-dummy interactions#1856

Open
jthorton wants to merge 7 commits intomainfrom
interpolation_fix
Open

Fix 1-4 interpolation for core-dummy interactions#1856
jthorton wants to merge 7 commits intomainfrom
interpolation_fix

Conversation

@jthorton
Copy link
Copy Markdown
Collaborator

@jthorton jthorton commented Feb 23, 2026

This fixes the treatment of 1-4 interactions between core and dummy atoms and extensive tests to the hybrid topology factory to ensure they are handled correctly.

Checklist

  • All new code is appropriately documented (user-facing code must have complete docstrings).
  • Added a news entry, or the changes are not user-facing.
  • Ran pre-commit: you can run pre-commit locally or comment on this PR with pre-commit.ci autofix.

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

@jthorton
Copy link
Copy Markdown
Collaborator Author

pre-commit.ci autofix

@jthorton
Copy link
Copy Markdown
Collaborator Author

The 4 tests introduced to show that 1-4 interactions between the core-dummy atoms has failed as expected https://github.com/OpenFreeEnergy/openfe/actions/runs/22312817357/job/64549319567?pr=1856#step:11:6546. Now turning on the setting by default which should fix the tests.

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.10%. Comparing base (b501e2e) to head (ec79934).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1856      +/-   ##
==========================================
- Coverage   94.69%   91.10%   -3.60%     
==========================================
  Files         210      210              
  Lines       18808    19740     +932     
==========================================
+ Hits        17811    17984     +173     
- Misses        997     1756     +759     
Flag Coverage Δ
fast-tests 91.10% <100.00%> (?)
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.

@jthorton jthorton mentioned this pull request Feb 25, 2026
7 tasks
@hannahbaumann hannahbaumann self-assigned this Feb 26, 2026
@atravitz atravitz added this to the 1.11.0 milestone Apr 9, 2026
@IAlibay IAlibay self-assigned this Apr 21, 2026
@github-actions
Copy link
Copy Markdown

No API break detected ✅

Copy link
Copy Markdown
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 @jthorton , lgtm! Thank you for adding all those thorough tests, I tried to go through all of them, but since it's so many I may have missed something, so it will be great to have another set of eyes on this!

from the type in one ligand to the type in the other ligands, while unmapped
atoms are switched on or off, depending on which ligand they belong to.
separately (see :ref:`Creating atom mappings <Creating Atom Mappings>`). During the alchemical transformation, mapped atoms are interpolated
from their type in ligand at state A to the type in the other ligand at state B, while unmapped
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not sure if this makes it better, but sentence sounds a bit awkward.

Suggested change
from their type in ligand at state A to the type in the other ligand at state B, while unmapped
from their type in the ligand at state A to the type in the other ligand at state B, while unmapped

atoms are switched on or off, depending on which ligand they belong to.
separately (see :ref:`Creating atom mappings <Creating Atom Mappings>`). During the alchemical transformation, mapped atoms are interpolated
from their type in ligand at state A to the type in the other ligand at state B, while unmapped
atoms (also known as dummy atoms) are switched inserted or uncoupled, depending on which ligand they belong to. By default all nonbonded interactions between the
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
atoms (also known as dummy atoms) are switched inserted or uncoupled, depending on which ligand they belong to. By default all nonbonded interactions between the
atoms (also known as dummy atoms) are switched, inserted or uncoupled, depending on which ligand they belong to. By default all nonbonded interactions between the

Copy link
Copy Markdown
Member

@IAlibay IAlibay left a comment

Choose a reason for hiding this comment

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

Just realising it's on the 1.11 milestone - going to put a block until the results come through. It's possible we won't be able to include it in this release (purely a "too many things to do before the free energy workshop")

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.

4 participants