Week 01 Lecture: Welcome to ML4MD

Welcome to Machine Learning for Molecular Dynamics!

Course details and instructors

This is a graduate special topics course in the Biochemistry & Molecular Dynamics department at Michigan State University (BMB 961 Sec 003). This is being offered for the first time in the Spring 2022 semester.

The main instructors for this course are:

This course will also feature lectures by:

Why Molecular Dynamics?

  • Atomic-scale models of molecular systems are indispensible tools for drug discovery, molecular engineering, catalysis and beyond!

  • Recent progress both experimentally (Cryo-EM) and computationally (AlphaFold) has dramatically improved our knowledge of biomolecular structures

  • But structures are only single snapshots!

  • Molecular dynamics uses physics to bring these structures to life:

    • Mechanisms

    • Rates

    • Free energies

Why Machine Learning for Molecular Dynamics?

  • Machine learning has revolutionized one area of computation after another (image recognition, language processing)

  • ML can be used to learn about molecular systems in a number of ways:

    • Protein structure prediction

    • Chemical property prediction

    • Identification of collective motions in biomolecular systems

    • Predictions of energies and forces

Course grade breakdown

The course grade will be calculated based on the following assessments:

  • Participation, attendance and in-class activities (50%)

  • Independent study proposal (10%)

  • Independent study project (40%)

Rubric for the independent study project is forthcoming and will be posted to the website.

Course website

If you are looking at this notebook you likely have already found the course website: https://adicksonlab.github.io/ml4md-jb. This is a jupyter book, which is a collection of ipython notebooks and markdown files that are rendered into a website.

If you are interested in the source code, it is hosted in a public Github repository here: https://github.com/ADicksonLab/ml4md-jb.

Jupyter Notebooks

Both the lectures and laboratories will be offered via Jupyter notebooks. This allows us to intersperse comments, links and documentation (in Markdown cells) with executable code written in Python. You can interact with these notebooks either:

  • by launching on your own machine (jupyter notebook)

  • by launching on Google Colab via the course website

Let’s use the following code cell to demonstrate both of these approaches.

This is a test of the notebook functionality and working with Google Colab. If you are viewing this on the course website, hover over the Launch button in the top right (looks like a rocket ship) and click “Colab” to launch the notebook in Google Colab.

Alternatively, download this notebook as an .ipynb file and then open it with Jupyter. Instructions for installing jupyter are found in the Software Setup Guide.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,1000)
y = np.sin(x)
plt.plot(x,y,label='sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('test.pdf')

Discussion on Slack

To allow us to communicate even outside of lectures and labratory periods, we are going to use Slack. If you haven’t already, join the Slack workspace with your MSU address using this link.

BMB Community Standards

This is also a good time to remind you of the BMB community standards. In all of our classroom communications it is important to:

  • Be fair and respectful to others

  • Be welcoming and inclusive of all people

A copy of these community standards is available in the course website under “Week 01”.

In-class Activity 1: Introductions

Post a message on the class Slack channel that includes the following:

  • Your name and preferred pronouns

  • Your home department

  • A one sentence description of your research area

  • One thing you look forward to learning in this course

In-class Activity 2: Visualize a protein with NGLview

Open this notebook either on your own machine or in Colab and execute the following cells.

Acknowledgements and props to the following resources:

# Uncomment the lines below to install packages to Colab!
# You can skip this step if you already installed them locally
## install the necessary libraries to this Colab instance
#!pip install mdtraj
#!pip install nglview
# import the packages we'll need
import mdtraj as mdj
import nglview as nv

# Create an mdtraj trajectory object using the files sEH_nowater.pdb and sEH_unbinding.dcd
# note that if you are on Colab you need to upload these files to the working directory
pdb = mdj.load_pdb('sEH_nowater.pdb')
traj = mdj.load_dcd('sEH_unbinding.dcd',top=pdb.top)

# Pass this trajectory to nglview
w = nv.NGLWidget(nv.MDTrajTrajectory(traj))
w

That’s all for Lecture 1.

See you on Thursday for the first Lab!