Skip to content

Cookbook on exploring common RBFE protocol settings - #344

Merged
jthorton merged 25 commits into
mainfrom
hytop_settings
Nov 9, 2026
Merged

jthorton merged 25 commits into
mainfrom
hytop_settings

Conversation

@jthorton

Copy link
Copy Markdown
Contributor

Docs in response to OpenFreeEnergy/openfe#2278 this cookbook just explores the common settings users might want to change in the RBFE protocol.

Questions

  • Is this quite simple format okay to start with?
  • Are there any other settings we should add in this first pass?

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@github-actions

Copy link
Copy Markdown

Colab 👈 Launch a Colab session on branch hytop_settings

@IAlibay
IAlibay self-requested a review October 22, 2026 14:08
@@ -0,0 +1,305 @@
{

@IAlibay IAlibay Oct 23, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

  1. [nit] maybe we can put the line about "Choose and Configure a Protocol" inside one of those info boxes?
  2. [nit] How about a table for the parameters list?
  3. Thinking about thw iderr range of settings, maybe this should be "settings which impact sampling / performance", and then we could have "settings which affect the termodynamic state" and "settings that affect the model".

Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Addressed all of these, for point 3 the main contents are now under the heading Sampling and performance settings with the idea of adding the other sections later, let me know what you think.

@@ -0,0 +1,305 @@
{

@IAlibay IAlibay Oct 23, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

"..., you may also need to consider increasing the number of lambda windows see the next section for more information." This sentence probably needs breaking into two sentences.

"Consider increasing the simulation length after running the simulation when:" Might be good to mention here that they'd have to run a new simulation (i.e. we can't extend at this time).

"Increasing the simulation length is not always the best solution...." This sentence is vague and maybe a bit a confusing. Technicaly you can just run a very long simulation to improve overlap - it might be good to say something like "increasing the number of windows can sometimes be more useful in increasing overlap". I.e. a combination of both would help, but think about lambda windows first.


Reply via ReviewNB

@hannahbaumann hannahbaumann Oct 23, 2026 •

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.

  • "A large number of samples are..": Maybe briefly mention where the user could find this information.
  • Do you have a citation for the kbT cutoff?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@IAlibay agreed, changed.

@hannahbaumann I think this might be best saved for the shared health check cookbook which could have a similar format and we can link to it there?

Added the citation for the kbT cutoff but maybe this would also be best put in the health check cookbook when describing what each diagnostic is showing?

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.

For me this sentence still needs breaking up, but maybe I'm looking at a wrong commit?

you may also need to consider increasing the number of lambda windows see the next section for more information

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1 the two sentences with that statement could use breaking up into two sentences.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks broken up and shortened.

@IAlibay IAlibay left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this quite simple format okay to start with?

I think there's a lot of things here that could be generalized. As a first pass this is ok, but in follow-up work, it might be good to make this more abstract and make it cover multiple protocols.

Are there any other settings we should add in this first pass?

I left a comment above. I think it would be good to cover the broad "themes" of settings we have. E.g. things that control your model, things that control the thermodynamics, things that control sampling/convergence.

@@ -0,0 +1,305 @@
{

@hannahbaumann hannahbaumann Oct 23, 2026 •

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.

  • Would we want a separate cookbook for SepTop/ABFE settings or could it make sense to showcase some difference here (mostly thinking of the lambda schedule).
  • Should we also highlight and explain adaptive_settings in this cookbook or should that be done elsewhere? (maybe wrt what happens to the user updated settings after calling adaptive_settings, meaning it wouldn't be changed back to default settings); maybe also mention them in the section that talks about net charge changes?

Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I have tried to include the SepTop and ABFE settings changes as well as there is a lot of overlap let me know what you think; maybe the format could be cleaned up as its quite verbose right now, but I wanted each section to have a consistent flow.

_adaptive_settings is an awkward one as its related and is probably worth introducing the beginning after inspecting the defaults but maybe we should consider making it public first?

@@ -0,0 +1,834 @@
{

@jthorton jthorton Oct 26, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Do we want to advertise the private function, its helpful to validate the new schedule but its private and could change in future and break. Maybe this validation could be moved back onto the settings object so we can call model_validate ?


Reply via ReviewNB

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Moving it back to model_validate sounds good - I wouldn't encourage exposing this private method. I would encourage adding a section at the end of the tutorial that calls validate as an example of "this is how you check that all your settings work well".

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Changed to use the validate method, but this does require a system so its a little more complicated so having this in model_validate might be a good usability improvement.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Opened an issue to come back to this OpenFreeEnergy/openfe#2342

@@ -0,0 +1,1180 @@
{

@IAlibay IAlibay Oct 28, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thoughts about putting the default settings before getting into this sub-header?

There we could mention how default_settings is a common method across all Protocols.


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added a bit to explain its common to all protocols but kept it under this heading as it might be easier to find when skimming the page?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It's not that it's common to all Protocols, but that the default settings have nothing specific to do to "sampling and performance settings". If you don't want to move out of this settings section, is there anything you could say on how it applies to other sections?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ah, I misunderstood; I have now moved the default settings part to the first section of the notebook.

@@ -0,0 +1,1180 @@
{

@IAlibay IAlibay Oct 28, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Would be good to make a statement about how generalized this is, i.e. that it applies to all multistate Protocols (e.g. HybridTop, SepTop, ABFE and AHFE).


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added something on this.

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.

The formula below for SepTop and ABFE is slightly different since you're also accounting for the end state equilibration, maybe mention that?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

How about saying it's the "alchemical simulation cost"? And then mention that equilibration has its own cost (and then refer below)?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Changed to alchemical and added a note pointing to the other formula.

@atravitz atravitz self-assigned this Nov 2, 2026
@@ -0,0 +1,1180 @@
{

@hannahbaumann hannahbaumann Nov 3, 2026 •

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.

For a complete explanation of each setting and how to customize the object see Choose and Configure a Protocol.

That cookbook actually doesn't seem to have much additional detail, except the constructing settings manually, do we still want to keep that cookbook?


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

True but it does show off changing all of the settings and explains what they mean with comments so I think its the best we have for now?

@@ -0,0 +1,759 @@
{

@hannahbaumann hannahbaumann Nov 3, 2026 •

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.

These settings provide a good starting point to investigate the affect of additional sampling on the transformation under study however, but will also increase the computational cost of the simulation.

This sentence is a bit long and hard to understand, maybe rephrase or break it up into two?


Reply via ReviewNB

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Reduced and simplified.

@IAlibay IAlibay left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Couple of small things, but approving early!

@atravitz atravitz left a comment

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.

I did a quick read through and think it looks great overall. Some of it might be creeping into User Guide territory, so if we want to add any more detail we could consider splitting it.

@hannahbaumann hannahbaumann left a comment

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.

Thanks @jthorton , lgtm!

@jthorton
jthorton enabled auto-merge November 9, 2026 12:54
@jthorton
jthorton merged commit f944a2b into main Nov 9, 2026
4 checks passed
@jthorton
jthorton deleted the hytop_settings branch November 9, 2026 13:12
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