-
Notifications
You must be signed in to change notification settings - Fork 0
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
Benchmark systems list #52
Comments
Thanks I hadn't seen that before I responded on slack. From a quick scan, some of these are more feasible than other, but for the sake of time / avoiding too much text, I'm going to put all of those as "to be discussed mid-April" if that's ok? |
Apologies in advance for the briefness. What I'll do is try to provide quick answers to everything here, and then hopefully will document in the network generation scripts, but worse case scenario the rough answer will be here. System
Possible, will document in mnsol example script. You can just pass the custom OFFXML string (overly clarifying - I mean this: openforcefield/openff-toolkit#2021) as an input to the Note: you should avoid passing in a custom serialized file because it's hard to keep the file around on execution.
This is unfortunately a situation I didn't account for properly. Right now you can fully rely on library charges for the solvent but not the solute. The way to do this right now would be to load in the library charges into your OpenFF Molecule ahead of time and then pass that to the SmallMoleculeComponent.
Library charges on the solvent can be done by setting
That's the easiest case! Just add the charges to a OpenFF Molecule for both your solute and solvent and feed it to a SmallMoleculeComponent. For the solvent, the SmallMoleculeComponent is then fed to the ExtendedSolventComponent. You then need to set
Here the best would be to assign NAGL charges ahead of time to your Molecule and feed that in (that way you get good provenance). Otherwise you can use NAGL to add partial charges at runtime to uncharged Molecules using
I'm not sure. I've only ever encountered / tested ChargeIncrement in the context of a virtual site on a solvent molecule. At this point in time, I'm not sure. Could you provide more information on the use case maybe?
This is out of scope on the initial work plan delievered. Right now the answer is that it probably works (will maybe provide provisional OPC benchmarks later this week), but it would require me spending some time doing some alchemical system testing to check everything is as expected & works fine. Without that, I would strongly advise against fully relying on it in production. So possibly read it as "if you must run stuff this coming month, but I would urge reserving some of my time to verify the science". If you really want to try it, you can pass your favourite water model through as an OFFXML and set
Maybe I'm missing something here, but I guess just pass this to the OFFXML definition list?
Same answer as the virtual site solvent case above. Out of scope, and could be wrong, but if you must it may work.
Would need more work than water with virtual sites. So more out of scope.
Definitely out of scope.
Unclear on the details of what you mean here. Probably out of scope.
Definitely out of scope. Settings
There are two equilibrations, the alchemical and non-alchemical ones, and one alchemical production. These are controlled by Current defaults are:
You can control HMR with Current default is set at You can control the timestep using Retreival
The data is available somewhere but it's not hooked up to anything right now since it wasn't something that was asked for in the initial request. Adding this to the results objects from the non-alchemical simulation is feasible as a medium-low cost, but something to discuss later. When running manually / locally you'll find a log file named note: file retreival is not possible using alchemiscale.
The ProtocolResults object contains various things which you can get, see here: https://pontibus.readthedocs.io/en/latest/api/protocols/generated/pontibus.protocols.solvation.ASFEProtocolResult.html#pontibus.protocols.solvation.ASFEProtocolResult These include; MBAR overlap, REPEX matrix, forward and reverse convergence, the free energy estimates, the MBAR errors, and the standard deviation.
Over alchemiscale it will not be possible to get the trajectory. This is a limitation in alchemiscale itself. When running locally / via traditional HPC, you will get an XTC for the equilibration and a netcdf for the alchemical production. XTC files are standard and can be read with MDAnalysis. There is tooling in OpenFE for reading the netcdf file (we have a custom MDAnalysis reader etc...), if it's critical, someone in the team can signpost / help. However, given that this wasn't in the approved plan or the initial request, I would prefer it if it was something that would be left for follow-up in April. It would be possible to add better programmatic access to these via the ProtocolResults objects, that could be something for a v0.0.2.
As above with the trajectory. You can get that from the trajectory or we could add it as an additional artifact, but not currently available in v0.0.1 since it wasn't requested. |
Thanks for the super thorough reply, @IAlibay! Just a quick non-comprehensive response while I digest:
Great, sounds like as long as we can load in charges onto the OpenFF molecule then that will get respected? Is the way to do that via the
Just to make sure I have the correct way around:
This was definitely a stretch case, but one currently supported use-case would be if we re-fit BCCs and assigned charges using the AmberTools AM1 and applied our own BCCs after the fact. This isn't currently a need, I just wondered how much the SMIRNOFF spec would be implemented in case we did want to explore.
Would this be the same string that's passed into the OpenFF toolkit? More specifically, should this be the name of a published NAGL model in
Thanks! No not missing anything, I just wanted to check in case water was still treated specially and needed a released force field.
Here I mean if we tuned the strength of 1-4 interactions in the SMIRNOFF force field, specifically setting the 1-4 scaling coefficient from 0.5 (vdW) or 0.83 (electrostatics) to another fine-tuned value. This is definitely not an urgent use case but another question that explores how much the SMIRNOFF spec is implemented (Interchange for example shouldn't have an issue creating an OpenMM system with this), or if there's any hard-coding we need to be keeping an eye on. |
Yeah it's just the standard The caveat here is that if the partial charges are allmost all equal to zero they will get ignored.
Yeah it's not the most intuitive keyword (would welcome suggestions for changing). If it's true, the partial charges in the OpenFF Molecule will be passed on Note that if True and the Molecule does not have partial charges, then partial charges will be assigned at runtime (defaults to AmberTools + AM1BCC). It does NOT fallback to the ToolkitAM1BCC handler (we explicitly disallow that).
It's exactly the same thing you would pass to
I'm not sure. I think I have follow-up questions on that one. So the best I can say is it might be possible, would need a lot of testing though. 100% not possible with different mixing rules as-is. |
Following on from the meeting and notes, here's a list of systems we'd be interested in benchmarking. Please let me know if I can clarify anything. I've tried to be as comprehensive as possible in case any of them require specific tweaks, so some of them (e.g. the charge ones) are very similar to each other and may wind up being the same use case.
I also added some non-essential nice-to-have systems marked with [?] that seem like related examples to me, but lie outside the scope of what has been discussed for pontibus 0.0.1. Please don't treat these as examples that must be addressed, but more me wondering if they are currently feasible in pontibus.
System
Settings
Retrieval
I realised while writing this up I don't have a great idea of what is retrievable, but the following could be useful:
The text was updated successfully, but these errors were encountered: