All files in this repository are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Contributions are welcome, see CONTRIBUTING.md for more details.
This tutorial shows how to use and install different software packages, which have their own conditions of use.
This tutorial was written for the course Molecular Simulations of Biological Systems (MSBS), an introductory elective course for students of the M.Sc. program Biochemistry and Biotechnology at Ghent University. The main goal of the course is to enable these students (who have a limited background in statistical mechanics) to run sensible molecular dynamics simulations and to interpret the results correctly. This tutorial assumes the students have a basic knowledge of Python.
All materials are strongly inspired by several online resources (tutorials, documentation and examples) of the OpenMM, Python, NumPy, Matplotlib and other projects. The main references are:
- OpenMM website: http://openmm.org/
- OpenMM Users Guide: http://docs.openmm.org/latest/userguide/index.html
- Python website: https://www.python.org/
- Python tutorial: https://docs.python.org/3/tutorial/index.html
- NumPy website: https://numpy.org/
- NumPy Users Guide: https://docs.scipy.org/doc/numpy/user/index.html
- MatPlotLib website: https://matplotlib.org/
- nglview: http://nglviewer.org/nglview/latest/
- MDTraj: http://mdtraj.org/
Even though these resources contain all the background and details to learn OpenMM and related tools, the amount of information is simply overwhelming. The aim of this course is to provide a gentle introduction to many of the topics in the above references.
Practically all simulations in this tutorial are carried out with OpenMM, which is described extensively here. In short, OpenMM is a modern open-source biomolecular simulation toolkit: it supports many popular biomolecular force fields (AMBER, CHARMM, AMOEBA), it supports GPU-accelerated calculations, and it can carry out many types of advanced molecular dynamics simulations.
To access and customize all these features, and to write reproducible simulation protocols, OpenMM simulations are implemented by writing Python scripts. Hence, to install OpenMM, you need (to create) a Python environment and install OpenMM as a Python package. (The C++ interface is not covered in this tutorial.)
For this tutorial, two environments can be used to perform simulations, each having their strengths and weaknesses:
- If you are affiliated to a Flemish research institution, it is recommended to run the notebooks on the Tier-2 VSC cluster of Ghent University, as explained below. We also provide alternative instructions for any other HPC, which should only be followed when you don't have VSC access.
- Those who cannot access any HPC (VSC or otherwise), can (try to) install OpenMM on their laptop.
Strengths:
- You have access to significant computational power, including GPUs.
- For VSC users, no software, other than a web browser, is needed on your own laptop.
- For VSC users, the installation is relatively simple.
- It is possible to have calculations running while your laptop is switched off.
Weaknesses:
- For non-VSC users, the installation can be tricky.
- Interactive session have a pre-defined (by you) duration. The session ends without warning, at which point you may lose some of your work.
- You must remain connected to the Internet for interactive Jupyter notebooks.
- This feature is relatively new and may still have some hidden flaws.
Setup for VSC users: setup_vsc.md.
General setup for other HPCs: setup_hpc.md.
Strengths:
- Calculations require no network. (Installation does.)
- Output files are stored locally. (They are easy to access, but it may also become a problem when they fill up your hard drive.)
Weaknesses:
- The installation requires a significant amount of work.
- It is currently not working on Windows.
- Your laptop could overheat when running longer simulations.
- Your laptop must remain powered on during calculations. (Keep it plugged into a power socket, because intensive calculations drain the battery very quickly.)
Setup: setup_laptop.md.
The tutorial consists of the following sections, to be followed more or less in order:
1. First steps:
2. Different ways of simulating analine dipeptide:
3. Run demanding OpenMM notebooks as a non-interactive job:
4. A short protein MD simulation:
5. Analysis of MD trajectories:
- 05_analysis/01_internal_coordinates_averages.ipynb
- 05_analysis/02_physicochemical_properties.ipynb
- 05_analysis/03_alignment_principal_component_analysis.ipynb
6. Visualization
7. Ligands (This part is still under development and does not work at the moment.)