Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the workflow pipeline #114

Merged
merged 148 commits into from
Sep 6, 2022
Merged

Conversation

xiki-tempula
Copy link
Collaborator

@xiki-tempula xiki-tempula commented Feb 28, 2021

I will try to Implement the workflow pipeline as is discussed in #111 .

I noticed that the subsampling part will be refactored with #98. Given I cannot leave this part blank, I have made a minimal implementation of the corresponding option and I'm happy to change it when #98 is merged.

All the information is logged using logging #34.

@xiki-tempula xiki-tempula marked this pull request as draft February 28, 2021 20:59
@codecov
Copy link

codecov bot commented Feb 28, 2021

Codecov Report

Merging #114 (ef4a8d7) into master (5828b40) will increase coverage by 0.01%.
The diff coverage is 98.39%.

@@            Coverage Diff             @@
##           master     #114      +/-   ##
==========================================
+ Coverage   98.14%   98.16%   +0.01%     
==========================================
  Files          24       25       +1     
  Lines        1351     1634     +283     
  Branches      295      348      +53     
==========================================
+ Hits         1326     1604     +278     
- Misses          5        7       +2     
- Partials       20       23       +3     
Impacted Files Coverage Δ
src/alchemlyb/workflows/abfe.py 98.21% <98.21%> (ø)
src/alchemlyb/convergence/convergence.py 100.00% <100.00%> (ø)
src/alchemlyb/estimators/__init__.py 100.00% <100.00%> (ø)
src/alchemlyb/estimators/mbar_.py 98.30% <100.00%> (+0.05%) ⬆️
src/alchemlyb/workflows/__init__.py 100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@xiki-tempula xiki-tempula marked this pull request as ready for review March 27, 2021 13:34
@xiki-tempula
Copy link
Collaborator Author

@orbeckst I think this PR is ready for review.
So I will sort the energy file according to the n_uk first and if n_uk is not present, it will fall back to sort via dhdl.
However, I don't have any test file for that and this part is not covered by test. Do you think I shall just omit this part for code coverage? Thank you.

@xiki-tempula xiki-tempula changed the title WIP: Implement the workflow pipeline Implement the workflow pipeline Mar 27, 2021
Copy link
Member

@orbeckst orbeckst left a comment

Choose a reason for hiding this comment

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

This is a lot of stuff and adds a whole new thing (workflows) to alchemlyb. It looks interesting but this is too much to review in one piece.

Could you please break up the PR into small, independent pieces, eg

  • visualization
  • separate_dhdl() functionality
  • workflow

This will make reviewing easier.

Introducing workflows is its own discussion, which will best be done on a dedicated PR. Maybe @dotsdl already has an opinion on this, too?

src/alchemlyb/constants.py Outdated Show resolved Hide resolved
docs/visualisation.rst Outdated Show resolved Hide resolved
docs/visualisation.rst Outdated Show resolved Hide resolved
src/alchemlyb/estimators/ti_.py Outdated Show resolved Hide resolved
@xiki-tempula
Copy link
Collaborator Author

xiki-tempula commented Mar 29, 2021

@orbeckst Thanks for the review. I have moved the separate dhdl and plot convergence to separate PRs #120 #121. The test will run as soon as those are merged.

Copy link
Member

@orbeckst orbeckst left a comment

Choose a reason for hiding this comment

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

I am ok with your approach to use AutoMBAR instead of MBAR, thanks to the documentation that you added and the use of methods. I had a bunch of doc changes that you can just accept. Please make sure that CHANGELOG records all behavior changes and additions. There were a few small things from my last review that weren't addressed so I pinged you on them again.

It's been a massive PR but it's really almost there. Sorry for my patchy availability to review.

docs/workflows/alchemlyb.workflows.ABFE.rst Outdated Show resolved Hide resolved
src/alchemlyb/convergence/convergence.py Show resolved Hide resolved
src/alchemlyb/convergence/convergence.py Outdated Show resolved Hide resolved
src/alchemlyb/convergence/convergence.py Show resolved Hide resolved
src/alchemlyb/convergence/convergence.py Show resolved Hide resolved
if self.ignore_warnings:
self.logger.warning(msg)
else:
raise ValueError(msg)
Copy link
Member

Choose a reason for hiding this comment

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

To be honest, as soon as I see "pragma: no cover" I know that eventually I'll see this pop up as not working as thought... can you at least manually trigger it and confirm that it does want it should be doing?

And it is important to keep the original exception.

Comment on lines 180 to 183
Plot the free energy change as a function of time in both directions,
with the specified number of points in the time plot. The number of time
points (an integer) must be provided. Specify as ``None`` will not do
the convergence analysis. Default: 10.
Copy link
Member

Choose a reason for hiding this comment

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

please address

src/alchemlyb/workflows/abfe.py Show resolved Hide resolved
src/alchemlyb/workflows/abfe.py Show resolved Hide resolved
src/alchemlyb/workflows/abfe.py Show resolved Hide resolved
@xiki-tempula
Copy link
Collaborator Author

@orbeckst Thanks for the review. I have

  • changed the change log
  • add the explanation to the convergence analysis
  • add tests to cover the extract dhdl and n_uk part

CHANGES Outdated Show resolved Hide resolved
Co-authored-by: Oliver Beckstein <[email protected]>
@orbeckst
Copy link
Member

orbeckst commented Sep 2, 2022

Looking really good, the only thing I'd like to change is the ValueError hiding exceptions from the I/O. Otherwise you convinced me to go with your approach or made all the changes.

Copy link
Member

@orbeckst orbeckst left a comment

Choose a reason for hiding this comment

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

I have oscillated back and forth on the exception handling and came down on your suggested solution but using OSError. I will make these changes and see if it works. I am not sure if you're actually testing the exception handling anywhere. (If yes, I'll see it soon... if no, could we add a test?)

src/alchemlyb/workflows/abfe.py Outdated Show resolved Hide resolved
src/alchemlyb/workflows/abfe.py Outdated Show resolved Hide resolved
@orbeckst orbeckst self-assigned this Sep 6, 2022
@orbeckst orbeckst merged commit 69dacd6 into alchemistry:master Sep 6, 2022
@orbeckst
Copy link
Member

orbeckst commented Sep 6, 2022

@xiki-tempula congratulations — after 1.5 years and almost 300 comments, your ABFE is finally in!!!! 🚀

@xiki-tempula xiki-tempula deleted the workf branch September 6, 2022 07:37
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.

3 participants