-
Notifications
You must be signed in to change notification settings - Fork 90
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
Add "toolkit showcase" example #763
Conversation
|
We seem to be missing the |
Notes from today's meeting:
|
This comment has been minimized.
This comment has been minimized.
Using ommff simplifies the showcase substantially without loss of function. With this commit, we also use the constrained Parsley force field, reducing hidden magic and increasing relevance. Prose and descriptions are not yet updated. GROMACS now only requires `-maxwarn 1`, which is due to a known openFF toolkit bug.
Implemented the switch to The resulting workflow is much simpler, and the OpenMM side of it doesn't need to touch ParmEd. I also got the GROMACS bit working without the extra warnings, and the whole thing now uses the standard Parsley 1.3.0 force field (rather than the constrained one). Tomorrow I'll move the descriptions and prose around to update them for the new workflow and then we should be good to review. |
…openff-toolkit into toolkit-showcase
@j-wags Ready for review! Switching to openmmforcefields really dramatically cuts down on fluff. The example now only uses ParmEd for visualization and conversion to GROMACS, everything else is done pretty much in OpenMM. I do think it'd be cool if But I think I've done everything we planned 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.
Re-add openmmforcefields to environment --> Could add openff-toolkit-examples to binder reqs.
Try replacing openff_topology_to_openmm
with offtop.to_openmm()
(this worked during our call)
In the omm_forcefield.createSystem
step, let's either:
- add a warning box, stating that normally a SMIRNOFF FF contains information about the cutoff+constraints that should be used.
- Load the
openff-1.3.0
forcefield explicitly and referenceparsley['Electrostatics'].cutoff
(note though that this won't work for theopenmm.app.PME
or the hbond constraints)
We can keep from double-calling omm_forcefield.createSystem
if we use a PDB file to go to NGLView right after we parameterize the complex:
from simtk.openmm.app import PDBFile
PDBFile.writeFile(modeller.topology, modeller.getPositions(), open('complex.pdb', 'w'))
view = nglview.show_file('complex.pdb')
Then the second createSystem and the ParmEd stuff can all go into the GROMACS section.
ParmEd can't handle constraints from openmmforcefields
should become
ParmEd's GROMACS exporter can't handle constraints from openmm
The Toolkit will always support all the functional forms in both the SMIRNOFF spec
should become
The Toolkit will strive to support all the functional forms in both the SMIRNOFF spec
Load the ligand molecule and the Parsley force field
could become
Teach OpenMM about the ligand molecule and the Parsley force field
Point the links to other examples to the folder containing the example notebook.
Pending the changes above, I approve this merge! Since I'm technically the author you'll need to self-approve and then merge, but you can let me know if there's trouble and I'll force it though.
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've implemented all the changes Jeff listed in his review, and I also changed the visualization steps to directly convert OpenMM Topology
objects to MDTraj ones, which means we don't have to write PDB files to disk for them. I also wrote a readme for the example.
This is an example I've been meaning to add for a long time -- It's the notebook I go through at talks, which mainly features a way to go from a prepared ligand and protein all the way to a solvated simulation with ions. Several blocks in this notebook show how to do useful steps that haven't been documented anywhere else.