-
Notifications
You must be signed in to change notification settings - Fork 1
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
NEq cycling rebase #4
Conversation
Awesome @ijpulidos! Excited for this! |
Welcome to Codecov 🎉Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment. Thanks for integrating Codecov - We've got you covered ☂️ |
@dotsdl I think this one should be ready to go to start working on optimizing the DAG units and thinking about what components migrate to openmmtools that should be shared between different protocols. Those changes I think are more suited for future iterations/PRs. |
) | ||
####### END OF SETUP ######### |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically up to here can be moved to a separate unit for #3 and also to help thinking about the openmmtools API points that should be doing these things.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thank you for this!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ijpulidos looking great! Only one blocking question on hardcodes in HybridTopologyFactorModded
init. Otherwise mostly clarification questions.
concurrency: | ||
group: "${{ github.workflow }}-${{ github.ref }}" | ||
cancel-in-progress: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh cool, didn't know this was a thing now.
defaults: | ||
run: | ||
shell: bash -l {0} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This too!
.github/workflows/ci.yaml
Outdated
fail-fast: false | ||
matrix: | ||
os: ["ubuntu"] | ||
pydantic-version: [">1"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where does this actually get used below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shouldn't need this, you are correct.
# Perses depends (TODO: Remove once we don't depend on perses) | ||
- openmoltools | ||
- cloudpathlib | ||
- dask | ||
- openeye-toolkits | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love this!
@@ -2,26 +2,17 @@ name: feflow-test | |||
channels: | |||
- conda-forge | |||
- defaults | |||
- openeye # TODO: Remove once we don't depend on openeye |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙌
) | ||
####### END OF SETUP ######### |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thank you for this!
@@ -79,7 +79,7 @@ distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" | |||
method = "git" # <- The method name | |||
# Parameters to pass to the method: | |||
match = ["*"] | |||
default-tag = "1.0.0" | |||
default-tag = "0.1.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm actually not sure what this does? For alchemiscale
we have it set to "0.0.0"...
@@ -67,7 +67,7 @@ feflow = [ | |||
] | |||
|
|||
[tool.versioningit] | |||
default-version = "1+unknown" | |||
default-version = "0.1.0+unknown" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure what this does; we leave it as "1+unknown" in alchemiscale
. @mikemhenry?
feflow/utils/hybrid_topology.py
Outdated
use_dispersion_correction=False, | ||
softcore_alpha=0.5, | ||
softcore_LJ_v2=True, | ||
softcore_LJ_v2_alpha=0.85, | ||
interpolate_old_and_new_14s=False, | ||
flatten_torsions=False, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these intended to be hardcodes? The args in above will have no effect.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, if there is no change to the base __init__
, is it necessary to include it here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch! These should indeed be passed from the __init__
. And I just thought that even if the signature of the method is the same, I figured it would be convenient to have them explicitly as helping documentation.
# Lambda settings | ||
lambda_functions = DEFAULT_ALCHEMICAL_FUNCTIONS | ||
|
||
# alchemical settings | ||
softcore_LJ_v2 = True | ||
interpolate_old_and_new_14s = False | ||
alchemical_settings: AlchemicalSettings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There may be some settings, such as lambda_windows
, which don't actually apply here, I think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, definitely, there are settings in AlchemicalSettings
that do not apply to this protocol, but I think we would need to stick with these for now until we can come up with a base alchemical settings object that should cover the common settings for both protocols. Raised the issue in #6
This set of changes aim to rebase the
NonEquilibriumCyclingProtocol
to use the openfe objects in order to have a common code base for both protocols (openfe and neq cycling).A significant portion of the settings and code for creating the individual OpenMM topologies and systems should be able to be shared between both protocols, as well as the creation of the creation of the Hybrid Topology.
Resolves #1