Week 01 Lecture: Welcome to ML4MD
Contents
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:
Alex Dickson (alexrd@msu.edu)
Michael Feig (feig@msu.edu)
This course will also feature lectures by:
Jose Mendoza (jmendoza@egr.msu.edu)
Samik Bose (bosesami@msu.edu)
Giacomo Janson (giacomo.janson@gmail.com)
and others to be named!
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
Interesting reading material:
Recommended background for this course¶
Math (calculus, differential equations, chain rule differentiation)
Biochemistry (amino acid structure, protein secondary structure)
Chemistry (basic organic chemistry, reaction rates, free energies)
Physics (Newton’s laws, Hamiltonian mechanics)
Computer programming (Python, numpy, matplotlib)
We will do our best to provide relevant background resources over the course of the semester. If you have any questions or concerns about any of these points let us know and we will try to help!
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:
mdtraj (https://www.mdtraj.org/)
NGLview (http://nglviewer.org/)
# 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!