openforcefield / openff-benchmark

Comparison benchmarks between public force fields and Open Force Field Initiative force fields
MIT License
11 stars 2 forks source link

[WIP] Detect proton transfer and add error handling logic to QM export #65

Closed j-wags closed 3 years ago

j-wags commented 3 years ago

Description

Questions

Status

j-wags commented 3 years ago

Ahhh, I completely missed the scope of the different execution/export pathways. I probably should have glanced closer at the architecture before jumping into this PR.

@dotsdl Lets see if we can chat tomorrow on the questions above. I could see a few paths through these decisions.

dotsdl commented 3 years ago

@j-wags thank you again for starting this off!

I've finished my refactor, and added tests to hit all three export pathways optimize {export, execute-from-server, execute} for the proton transfer failure mode.

As for error_mols usage, we have a couple options. We could have molecules that fail to execute for optimize {execute-from-server, execute} or fail to export for all three pathways

  1. deposit all outputs in <spec_name>/error_mols; we do not write an SDF file
  2. deposit all outputs in <spec_name>/; we do not write an SDF file

(1) is what we implement in this PR. (2) is how we have operated so far for compute. Some thoughts:

I am fine with either approach. What do you prefer?

j-wags commented 3 years ago

Reviewing now. I agree with your decision in the last post -- I think it's a much better UX for the errors to live in their own directory. That way, the user gets a clear view into the program's intention when they were getting written out.

j-wags commented 3 years ago

Well, I can't explicitly "approve" this PR because I'm an author, but I've:

and this seems to be good to me.

I approve this merge.

There are a few situation where we might have additional benefit from outputting SDFs to error_mols/ where the connectivity had rearranged, but the benefit is marginal, and it shouldn't hold up this merge. If @dotsdl thinks this is important, we can open an issue to add it later.

Nice work @dotsdl. Reading over this PR, I apologize for not providing more context for my changes, and making you incur the overhead of starting with my diffs without context. This looks quite nice in the end :-)

(Let me know if you can't click merge due to permissions and I'm happy to do it)

j-wags commented 3 years ago

In fact, to resolve ambiguity, I'll just go ahead and merge directly 👍

dotsdl commented 3 years ago

Thank you @j-wags! Much appreciated!