Skip to content

Implement the workflow pipeline - #114

Merged
orbeckst merged 148 commits into
alchemistry:masterfrom
xiki-tempula:workf
Sep 6, 2022
Merged

Implement the workflow pipeline#114
orbeckst merged 148 commits into
alchemistry:masterfrom
xiki-tempula:workf

Conversation

@xiki-tempula

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

Copy link
Copy Markdown
Collaborator

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

codecov Bot commented Feb 28, 2021

Copy link
Copy Markdown

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
Copy Markdown
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

@orbeckst orbeckst 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.

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?

Comment thread src/alchemlyb/constants.py Outdated
Comment thread docs/visualisation.rst
Comment thread docs/visualisation.rst
Comment thread docs/visualisation/alchemlyb.visualisation.plot_convergence.rst
Comment thread docs/visualisation/alchemlyb.visualisation.plot_ti_dhdl.rst Outdated
Comment thread src/alchemlyb/estimators/ti_.py
@xiki-tempula

xiki-tempula commented Mar 29, 2021

Copy link
Copy Markdown
Collaborator Author

@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.

@orbeckst orbeckst 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.

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.

Comment thread docs/workflows/alchemlyb.workflows.ABFE.rst Outdated
Comment thread src/alchemlyb/convergence/convergence.py
Comment thread src/alchemlyb/convergence/convergence.py Outdated
Comment thread src/alchemlyb/convergence/convergence.py
Comment thread src/alchemlyb/convergence/convergence.py
Comment thread src/alchemlyb/workflows/abfe.py Outdated
if self.ignore_warnings:
self.logger.warning(msg)
else:
raise ValueError(msg)

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.

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 thread src/alchemlyb/workflows/abfe.py Outdated
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
Copy Markdown
Member

Choose a reason for hiding this comment

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

please address

Comment thread src/alchemlyb/workflows/abfe.py
Comment thread src/alchemlyb/workflows/abfe.py
Comment thread src/alchemlyb/workflows/abfe.py
xiki-tempula and others added 9 commits September 2, 2022 18:41
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
@xiki-tempula

Copy link
Copy Markdown
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

Comment thread CHANGES Outdated
Co-authored-by: Oliver Beckstein <orbeckst@gmail.com>
@orbeckst

orbeckst commented Sep 2, 2022

Copy link
Copy Markdown
Member

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.

@orbeckst orbeckst 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.

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?)

Comment thread src/alchemlyb/workflows/abfe.py Outdated
Comment thread src/alchemlyb/workflows/abfe.py Outdated
@orbeckst orbeckst self-assigned this Sep 6, 2022
@orbeckst
orbeckst merged commit 69dacd6 into alchemistry:master Sep 6, 2022
@orbeckst

orbeckst commented Sep 6, 2022

Copy link
Copy Markdown
Member

@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