Coder Social home page Coder Social logo

openmm_workshop_july2023's Introduction

GH Actions Status Conda Anaconda Cloud Badge

OpenMM: A High Performance Molecular Dynamics Library

Introduction

OpenMM is a toolkit for molecular simulation. It can be used either as a stand-alone application for running simulations, or as a library you call from your own code. It provides a combination of extreme flexibility (through custom forces and integrators), openness, and high performance (especially on recent GPUs) that make it truly unique among simulation codes.

Getting Help

Need Help? Check out the documentation and discussion forums.

openmm_workshop_july2023's People

Contributors

jmichel80 avatar sef43 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

openmm_workshop_july2023's Issues

section2/ US

make settings to compile uwham may not be guaranteed to work on all environments. we could document this to allow users to move on if they run into difficulties

nglview does not work in Colab

The nglview package does not work when running the notebooks in Colab. It would be great to have it working so people can quickly visualize the molecules/trajectories directly in the jupyter notebook.

Improve prerequisites

We should improve the prerequisites for this workshop material. This workshop is not intended to be an introduction to MD/Python/Jupyter. We should provide links to good suggested material on the following topics:

  • Intro to Python
  • How to use Jupyter Notebooks
  • Introduction to molecular simulation/molecular dynamics

The CCPBioSim training materials could be appropriate for example: https://www.ccpbiosim.ac.uk/training/other-tutorials/python-for-biomolecular-modelling (Must be logged into a ccpbiosim account to view this)

tutorial 3: hybrid ML/MM trajectory visualisation artefacts

The current notebook produces a trajectory with alanine dipeptide split across PBCs. This is confusing when attempting to compare with a visualisation of a gas phase ML simulation of alanine dipeptide.
Ideally we would center alanine dipeptide in the box so that there is no time for it to drift across boundaries, or use some traj processing before visualisation.

image

Is it possible to modify the calls to modeller to achieve this behaviour? Alternatively can we provide a solvated topology via e.g. BioSimSpace ?

The table of contents links are broken

Clicking on a link in the table of content of the notebooks (one example below)

image

Does not lead to the relevant section of the notebook.

image

The links are also inactive in colab.

Restarting from checkpoint and appending StateReporter to a file results in multiple entries for the same time step.

Posting this here because it came up yesterday and I forgot to mention it, but it might be something for the main OpennMM repo.

One of the keen eyed at the workshop yesterday managed to work out that because the checkpoint file is written out every 1000 steps, there is time when a simulation finished on something that is not a multiple of 1000 - e.g. 1500.

Then restarting the simulation from the checkpoint file from step 1000 resulted in the log file having double entries.

When plotting the data, this results in two data points at that time step, although admittedly, the y values are basically identical.

I imagine it becomes more and more obvious when the disparity between the checkpoint file and the log file is greater than 10 fold and on how many steps it has to go back.

In the example below I could have got points all the way to 14900 and still restarted at 14000. Imagine if we had written a checkpoint every 10000 steps for example.

Very quick example:

 13900,-146856.87880890456,305.87961649181017,91.87334675537606
 14000,-146838.48677000694,302.0436151483807,91.85773612934197
 14100,-146570.08052000694,302.9515737651756,91.85773612934197
----------- Simulation ended, and restarted from 14000 -------------
 14100,-146569.67427000694,302.94798025386604,91.85773612934197
 14200,-146859.15565928526,305.1387575727,91.68905971263145
 14300,-147399.1003796428,305.3627325364048,91.29362283195196
 14400,-147585.3503796428,301.270411426622,91.29362283195196
 14500,-146945.1628796428,298.35001246529237,91.29362283195196

I guess a fix would be for OpenMM at somepoint in the reporter setup to check the current timestep vs the latest reported step and delete lines from the log file?

exercise 1/protein-ligand complex

In section_1/protein_ligand_complex.ipynb
Exercise 2. Download the "traj.pdb" file and visualize it.

  • Provide instructions on how to do that in colab (user must click on Files icon on left hand side of UI)

  • Add a screenshot of what a visualisation of traj.pdb in VMD should look like. Mention PBC visualisation artefacts.
    e.g.
    image

Exercise 4. Download "bss_traj.pdb" and compare it to "traj.pdb" from method 1. What are the differences?

Is the intention to visualise both trajectories to comment on the size of the water boxes and the placement of the protein ? It's unclear how users should inspect the files (a text editor would be misleading).

Improve readability of custom force expressions

In the US tutorial

code like this

custom_nb_force = mm.CustomNonbondedForce('4*epsilon*((sigma/r)^12-(sigma/r)^6); sigma=0.5*(sigma1+sigma2); epsilon=sqrt(epsilon1*epsilon2)')

would be more readable if the string passed to the constructor is constructed step by step. e.g.

custom_lj = '4*epsilon*((sigma/r)^12-(sigma/r)^6);'
custom_lj += 'sigma=0.5*(sigma1+sigma2);'
custom_lj += 'epsilon=sqrt(epsilon1*epsilon2)'
custom_nb_force = mm.CustomNonbondedForce(custom_lj)

section_3/machine_learning_potentials.ipynb

In section_3/machine_learning_potentials.ipynb

Exporting a PyTorch model for use in OpenMM

  • Is it possible to add instructions to generate output at the end of the section to help the users understand what was done? maybe print properties of the torch_force ?

In the section
Simulation of alanine dipeptide with ANI-2x using OpenMM-Torch

  • can the simulation of the pure ANI-2x system save a trajectory. Then ask users to visualise the trajectory.

In the section

Mixed system

  • clarify that this approach only works for whole ML molecule(s)

  • prompt the users to download the trajectory mixed_traj.pdb for visualisation.

= Exercises need to be introduced

= stretch goal) Is it possible to ask users to compare trajectories of a low quality MACE model vs a high quality model ? Assuming this translates into visible differences in simulated conformations of the dipeptide.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.