-
Notifications
You must be signed in to change notification settings - Fork 9
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
Use new QCFractal #280
Use new QCFractal #280
Conversation
7edc72b
to
bcaa6a0
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
d795a80
to
5f60029
Compare
5f60029
to
3611f36
Compare
for more information, see https://pre-commit.ci
Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com>
This reverts commit b77f4af.
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.
An update since this is taking a little while: I did a once-over on the code and it looked fine. However I ran the quick-start calc 4 times using the old and new stack and am seeing consistent differences in the resulting parameters. So this post is just an update and I'm still looking into this.
Here's where I've run them: 2024_03_25_quickstart_test.zip
Here's my analysis result (copied from the notebook in that zip):
from openff.toolkit import ForceField
import glob
folders = sorted(glob.glob("./*data*"))
ffs = dict()
for folder in folders:
ffs[folder] = ForceField(f"{folder}/acetaminophen.offxml")
import numpy as np
from openff.units import unit
from matplotlib import pyplot
diffs = np.zeros((len(folders), len(folders))) * unit.kilocalorie_per_mole
for idx1, (folder1, ff1) in enumerate(ffs.items()):
for idx2, (folder2, ff2) in enumerate(ffs.items()):
tot_diff = 0
for param1 in ff1["ProperTorsions"][-6:]:
param2 = ff2["ProperTorsions"][param1.smirks]
for k1, k2 in zip(param1.k, param2.k):
tot_diff += abs(k1 - k2)
#print(tot_diff)
diffs[idx1, idx2] = tot_diff
pyplot.imshow(diffs)
pyplot.xticks(range(len(folders)), labels=folders, rotation=75)
pyplot.yticks(range(len(folders)), labels=folders)
pyplot.colorbar()
![Screenshot 2024-03-26 at 12 45 33 PM](https://private-user-images.githubusercontent.com/16329175/317016856-45127f7e-ccb3-4aac-82af-cd7df39abb0b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU2NTQ2NDIsIm5iZiI6MTcyNTY1NDM0MiwicGF0aCI6Ii8xNjMyOTE3NS8zMTcwMTY4NTYtNDUxMjdmN2UtY2NiMy00YWFjLTgyYWYtY2Q3ZGYzOWFiYjBiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA2VDIwMjU0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjZjJjMjNkNzIwMmUzNDJkMTQ2YzEyZjEyNzJhZjYzN2E0MGE1MmU4N2M2Njk0MTdlNzVjYTMyMjk2NDk5Y2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.tF4XckGULOVL3L_xg7Hnx9ykq9AOTz6twCbRnTJLltw)
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 going to see if I can get codecov happy again before I approve.
@@ -118,9 +127,9 @@ def from_remote_records(cls, qc_records): | |||
assert len(record_types) == 1, "records must be the same type" | |||
|
|||
conversion_functions = { | |||
ResultRecord: cls._result_record_to_atomic_result, | |||
BaseRecord: cls._result_record_to_atomic_result, # maybe should be SinglepointRecord? |
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 blocking) Good question. BespokeFit should only really be dealing with torsiondrives and optimizations so I don't know when a bug here would reach a user. But let's leave the comment for help in future debugging.
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.
The corresponding method is not implemented, so the user will have a hard time hitting a but at all
@j-wags thanks for doing that careful testing it seems like nothing is broken when running the full workflow! What does the Edit: |
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.
Codecov looks good. Merging!
Oh, and @jthorton (sorry to miss your comment, the page didn't cleanly refresh when I opened this today) - We see a little bit of the variation between the I don't think this is a showstopper for release since some variability was always there. It would be better if this wasn't the case, but since this PR has been open 7 months now, I'd prefer to handle the variability problem in a separate issue/PR. |
@jthorton - Since you're currently listed as owner for BespokeFit, and since your previous comments mentioned other questions - Would you prefer those be addressed before a new release is cut? My team is over budget for BespokeFit effort this month (and behind on other goals) so we can't put in significant time until later in April. So either:
|
Hey @j-wags I think we should be fine to cut a release now as this update should not change the fitting outcomes and we can look into the differences in April, I'll be able to help with this but not take it on solo. Your graphs above got me thinking about the possible fitting regression reported in #304 which is proving hard to track down which is the main thing I want to keep looking into. |
No description provided.