openmm / openmm-cookbook

The OpenMM Cookbook and Tutorials
38 stars 10 forks source link

Coordinating OpenMM 8 tutorials #12

Open jchodera opened 2 years ago

jchodera commented 2 years ago

I am opening this thread to coordinate contributions to new tutorials for use in the OpenMM 8 paper.

I'll keep this list updated with the discussion below:

zhang-ivy commented 1 year ago

I will probably write a tutorial for writing a REST system or simulating a protein-protein complex with glycans

sukritsingh commented 1 year ago

I'm happy to contribute a notebook on doing enhanced sampling with OpenMM! I could provide examples of

  1. Setting up and running Metadynamics
  2. Writing a customIntegrator to do accelerated MD, Gaussian Accelerated MD, etc.
  3. Attaching a customCVForce as a harmonic potential for any kind of Umbrella sampling.

However, I recognize that OpenMM 8 is focused a lot on the ML and ML/MM features rather than running enhanced sampling methods. It is fairly easy to set up and run nowadays anyways so happy to help either way! @peastman do you have any thoughts on if this is a good idea? John mentioned to ask you.

peastman commented 1 year ago

That would be great! ML may be the trendy new feature, but enhanced sampling is still a really important tool that lots of people use. Besides, ML makes enhanced sampling even more important, since it's slower to begin with.

ijpulidos commented 1 year ago

@jchodera I know you have shared a code that computes hydration free energies using OpenMM, I could make that one a tutorial for OpenMM 8, does that sound okay?

jchodera commented 1 year ago

@ijpulidos: Yes! It would be great if you could use the hydration free energy phase calculation as the basis for a tutorial. There may be ways to further streamline this to eliminate the need for openmmtools as a dependency.

viktorbelay commented 1 year ago

I can contribute a tutorial for working with systems involving lipid bilayers/membranes. Some examples would be setting up a protein:membrane system in OpenMM, simulating systems set up in CHARMMGUI, and simulating transmembrane substrate permeation events.

jchodera commented 1 year ago

@viktorbelay: Illustrations using CHARMM-GUI would be awesome! I think we still may have some interoperability issues that could be streamlined there...

sef43 commented 1 year ago

Hi @ijpulidos @zhang-ivy @sukritsingh @dominicrufa @viktorbelay, I am doing some work to update the OpenMM cookbook and Tutorials, have you been able to make any progress with the tutorials @jchodera has mentioned in this thread?

If you have some work than is partially completed I can help you finish them/ do some of the touching up to get them into a tutorial notebook format!

zhang-ivy commented 1 year ago

My tutorial is not ready yet, but will aim to have a draft ready by next week!

yuanqing-wang commented 1 year ago

Same here!

zhang-ivy commented 1 year ago

@sef43 : I've opened a PR with my draft of a tutorial for building a REST system in OpenMM (also includes code on how to use OpenMMTools to run a REST simulation). Please let me know if you have any feedback.

yuanqing-wang commented 1 year ago

@sef43 Added a tutorial for modifying parameters in OpenMM System. This might be useful for building APIs for machine learning force fields. https://github.com/openmm/openmm-cookbook/pull/18

yuanqing-wang commented 1 year ago

@sef43 I plan to add another one later today illustrating that you can write your own MD functional forms (at least for the bonded part) and benchmark against OpenMM---this turns out to be an interesting challenge we face in machine learning force field construction, as seen in https://github.com/dominicrufa/jax-md and https://github.com/choderalab/espaloma

sukritsingh commented 1 year ago

@sef43 : I've opened a PR #19 that adds a rough initial notebook for adding Enhanced Sampling sample code as a cookbook! I'm happy to add a) SAMS from OpenMMTools and b) Document the exact boost/details of the underlying boost potentials more (I added an example of AMD). Any and all feedback welcome!

Apologies for the delay on this on my end. I was stuck in a grant-writing hole for a while.

sef43 commented 1 year ago

Hi, thanks for all your PRs, they are looking good! I have now merged #16 and cut a new release, they may now be some merge conflicts in your PRs, if you can take a look at the updated README: https://github.com/openmm/openmm-cookbook#adding-a-notebook there are now separate folders for cookbook recipes and tutorials. Where the difference is:

The way I think of it is that tutorials are educational tools. Their job is to help new users learn to use OpenMM. They should introduce and explain any important concepts for what they're doing. They may involve many steps. They often take you through a whole workflow. The cookbook is a reference. It contains small, self contained pieces of code for performing specific tasks. They can assume you already know what you want to do, and you're just trying to find out how to do it.

and that cookbook recipes need to have a short runtime to be able to run in the CI, tutorials can be much longer runtime and are not run in the CI.