Skip to content

membrane CLI support#1896

Merged
atravitz merged 34 commits intomainfrom
membrane_cli_prototype
Apr 27, 2026
Merged

membrane CLI support#1896
atravitz merged 34 commits intomainfrom
membrane_cli_prototype

Conversation

@atravitz
Copy link
Copy Markdown
Contributor

@atravitz atravitz commented Mar 24, 2026

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

@atravitz atravitz force-pushed the membrane_cli_prototype branch from 3303023 to 59b7c48 Compare April 8, 2026 22:23
Base automatically changed from membrane_prototype to main April 16, 2026 18:06
@atravitz atravitz force-pushed the membrane_cli_prototype branch 2 times, most recently from 5e87d6a to 96ed3d8 Compare April 16, 2026 22:05
@atravitz atravitz changed the title [WIP] membrane CLI prototype [WIP] membrane CLI support Apr 16, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.08%. Comparing base (be6cd88) to head (b2d68a4).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1896      +/-   ##
==========================================
- Coverage   94.62%   90.08%   -4.54%     
==========================================
  Files         215      216       +1     
  Lines       19266    19545     +279     
==========================================
- Hits        18230    17607     -623     
- Misses       1036     1938     +902     
Flag Coverage Δ
fast-tests 90.08% <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.

@atravitz atravitz force-pushed the membrane_cli_prototype branch 2 times, most recently from a725cce to fc98c2b Compare April 20, 2026 21:57
@atravitz atravitz changed the title [WIP] membrane CLI support membrane CLI support Apr 21, 2026
@atravitz atravitz force-pushed the membrane_cli_prototype branch from e92d58b to 339ef68 Compare April 22, 2026 22:47
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 @atravitz ! I added some comments regarding validation and error handling.
One thing that's currently missing is that the network planner always adds a SolventComponent to the ChemicalSystem, however the membrane case does not support a SolventComponent in the complex.
Once you add the protocol.validate to the network planner, this would also raise an Error.

Comment thread src/openfecli/commands/plan_rbfe_network.py Outdated
Comment thread src/openfecli/parameters/protein.py Outdated
Comment thread src/openfecli/commands/plan_rbfe_network.py Outdated
@hannahbaumann hannahbaumann self-assigned this Apr 23, 2026
@atravitz atravitz force-pushed the membrane_cli_prototype branch from 42a42bb to 038177b Compare April 23, 2026 23:51
@atravitz atravitz marked this pull request as ready for review April 24, 2026 00:07
Comment thread docs/mambaf9t4jj8g5ei
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 @atravitz , this looks great! Left some small comments, the only important one is the catching of the actual error which would be very helpful to users I think.

Comment thread src/openfecli/commands/plan_rbfe_network.py Outdated
Comment thread src/openfecli/tests/commands/test_plan_rbfe_network.py Outdated
Comment thread src/openfecli/parameters/protein.py Outdated
Comment thread src/openfecli/parameters/protein.py
Comment thread src/openfecli/tests/parameters/test_protein.py Outdated
@atravitz atravitz force-pushed the membrane_cli_prototype branch from 47a2a03 to f3d155d Compare April 24, 2026 13:59
@atravitz atravitz added this to the 1.11.0 milestone Apr 24, 2026
Comment thread src/openfecli/parameters/protein.py Outdated
Comment thread src/openfecli/commands/plan_rbfe_network.py Outdated
@mikemhenry
Copy link
Copy Markdown
Contributor

We can wait for the dust to settle but I think we should also include a news item here so it shows up in the change log

atravitz and others added 5 commits April 24, 2026 12:14
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
@atravitz atravitz force-pushed the membrane_cli_prototype branch from 68769ea to 2c878d1 Compare April 24, 2026 22:51
@atravitz atravitz force-pushed the membrane_cli_prototype branch from 29dd520 to ae79288 Compare April 24, 2026 23:22
@atravitz atravitz requested a review from hannahbaumann April 24, 2026 23:25
@mikemhenry
Copy link
Copy Markdown
Contributor

Maybe add a link in the news item to the membrane prep tutorial?

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 @atravitz , this looks good!
The only thing I just realized is that if the user provides a fully solvated protein-membrane system using the --protein flag, it will create the transformations without an error. This is also not handled in the API, but I wonder if it's even more dangerous on the CLI level. One could e.g. also add a density check on the ProteinComponent and if it's above a threshold, but not a SolvatePDBComponent, at least add a warning? Though people probably don't look at warnings since there are so many. This is probably something that should be handled elsewhere but still wanted to raise it here. Do you have any thoughts @IAlibay ?

Comment thread src/openfecli/tests/commands/test_plan_rbfe_network.py Outdated
@IAlibay
Copy link
Copy Markdown
Member

IAlibay commented Apr 27, 2026

The only thing I just realized is that if the user provides a fully solvated protein-membrane system using the --protein flag, it will create the transformations without an error. This is also not handled in the API, but I wonder if it's even more dangerous on the CLI level. One could e.g. also add a density check on the ProteinComponent and if it's above a threshold, but not a SolvatePDBComponent, at least add a warning? Though people probably don't look at warnings since there are so many. This is probably something that should be handled elsewhere but still wanted to raise it here. Do you have any thoughts @IAlibay ?

Couple of takes here (already communicated in earlier meeting, just writing it down here):

  • It's probably ok to go with this release without that check.
  • Adding some check for the component that sees if you have both box vectors and high density would be good. My initial take is that a warning would be better, but I do agree that we just have too many warnings. We could either: 1) give validate an optional "error on warning" that is used by more sensitive tooling like the CLI, or 2) just go with the error and see how many folks it affects.

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.

Approving this PR to not be blocking the release. I think only the doc string needs an update but since it's in the test it's also not that important.

@atravitz atravitz linked an issue Apr 27, 2026 that may be closed by this pull request
@github-actions
Copy link
Copy Markdown

No API break detected ✅

@atravitz
Copy link
Copy Markdown
Contributor Author

thanks @hannahbaumann! You make a good point, so I opened an issue here to improve validation.

@atravitz atravitz enabled auto-merge (squash) April 27, 2026 15:56
@atravitz atravitz disabled auto-merge April 27, 2026 16:05
@atravitz atravitz merged commit 8d229cf into main Apr 27, 2026
9 checks passed
@atravitz atravitz deleted the membrane_cli_prototype branch April 27, 2026 16:05
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.

update CLI docs to include membrane option

4 participants