Skip to content

Conversation

@hannahbaumann
Copy link
Contributor

@hannahbaumann hannahbaumann commented Oct 9, 2025

Checklist

  • Added a news entry

Developers certificate of origin

@codecov
Copy link

codecov bot commented Oct 10, 2025

Codecov Report

❌ Patch coverage is 98.55491% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.23%. Comparing base (3d65447) to head (683b47d).

Files with missing lines Patch % Lines
openfe/protocols/openmm_md/plain_md_methods.py 80.00% 2 Missing ⚠️
openfe/protocols/openmm_utils/system_validation.py 81.81% 2 Missing ⚠️
...nfe/protocols/openmm_septop/equil_septop_method.py 93.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1561      +/-   ##
==========================================
- Coverage   95.39%   93.23%   -2.17%     
==========================================
  Files         189      189              
  Lines       16646    16922     +276     
==========================================
- Hits        15880    15777     -103     
- Misses        766     1145     +379     
Flag Coverage Δ
fast-tests 93.23% <98.55%> (?)
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.

@hannahbaumann
Copy link
Contributor Author

pre-commit.ci autofix

Comment on lines 970 to 975
mapper = openfe.setup.KartografAtomMapper()
scorer = openfe.lomap_scorers.default_lomap_score
network_planner = openfe.ligand_network_planning.generate_minimal_spanning_network
ligand_network = network_planner(ligands=ligands, mappers=[mapper], scorer=scorer)
# get the first edge; it automatically displays in a Jupyter notebook
mapping = next(iter(ligand_network.edges))
Copy link
Collaborator

Choose a reason for hiding this comment

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

Consider having the ligand mapping for this edge a fixture and hard coded as we don't want changes in the other tools to cause issues with this test?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changed this!

Comment on lines +1012 to +1019
assert isinstance(sampler, MultiStateSampler)
assert sampler.is_periodic
assert isinstance(sampler._thermodynamic_states[0].barostat, MonteCarloMembraneBarostat)
assert sampler._thermodynamic_states[1].pressure == 1 * omm_unit.bar

# Check we have the right number of atoms in the PDB
pdb = mdt.load_pdb("hybrid_system.pdb")
assert pdb.n_atoms == 4667
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we be checking the box vectors as well?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Checking the box vectors now!

assert pytest.approx(geom[0][0].phi_C0) == -0.745093 * offunit.radian


class TestA2AMembraneDryRun:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do the tests here make the test_dry_run_membrane_complex test redundant they seem to be testing similar things on the same system?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, forgot to remove it, did so now!

Copy link
Collaborator

@jthorton jthorton left a comment

Choose a reason for hiding this comment

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

This looks great @hannahbaumann great job! A few nits but nothing major!

# - Frequencey as defined in `thermo_settings`
# Reference:
# https://livecomsjournal.org/index.php/livecoms/article/view/v1i1e5966
if thermo_settings.membrane and not has_solvent:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this the only time the thermo_settings.membrane flag is used?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes! I think whether we need it or not may depend on if we have a ProteinMembraneComponent that really only does that, or if we want to have a more general ExplicitSoventComponent that can handle all kinds of things and then we need a way to say that this one has a membrane and needs the MonteCarloMembraneBarostat.

@hannahbaumann
Copy link
Contributor Author

pre-commit.ci autofix

@hannahbaumann
Copy link
Contributor Author

pre-commit.ci autofix

@github-actions
Copy link

No API break detected ✅

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