CS279: Structure and Organization of Biomolecules and Cells
Course Information
Description:
This course will focus on computational techniques used to study the structure and dynamics of
biomolecules, cells, and everything in between. For example, what is the structure of proteins, DNA,
and RNA? How do their motions contribute to their function? How do they bind to other molecules?
How are molecules distributed and compartmentalized within a cell, and how do they move around?
How might one modify the behavior of these systems using drugs or other therapeutics? How can structural information and associated computational methods contribute to the design of drugs, vaccines, proteins, or other important molecules?
Computation can contribute to addressing such questions in at least two distinct ways. First, computational analysis is required to extract useful information from experimental measurements. Second, one can use computational techniques to predict structures, dynamics, and important biochemical properties.
The course will cover (1) atomic-level molecular modeling methods for proteins and other biomolecules, including structure prediction, molecular dynamics simulation, docking, and protein design, (2) computational methods involved in solving molecular structures by x-ray crystallography and cryo-electron microscopy, and (3) computational methods for studying spatial organization of cells, including computational analysis of optical microscopy images and video, and simulations at the cellular scale. The course will cover both foundational material and cutting-edge research in each of these areas, including recent advances in machine learning for structural biology.
Coursework:
Students will be expected to complete three assignments, each of which will involve a combination of theoretical questions and computer work. Additionally, students will be expected to complete a project. The project will involve about as much work as an assignment, but it will be more open-ended and will allow students to delve into a topic of their choosing in more depth. Finally, students will be expected to complete an exam at the end of the quarter. More details regarding content of the exam will be released toward the second half of the quarter.
Prerequisites:
Elementary programming background (at the level of CS 106A) and introductory course in biology.
Class: Tuesdays and Thursdays, 3:00 PM - 4:20 PM in Packard 101.
Materials:
There is no required textbook. We will suggest a variety of optional reading material throughout the course.
Live Streams and Recordings:
All lectures will be recorded this year and will be available to enrolled students on Canvas (linked here). After navigating to the CS279 Course Page on Canvas, click on the Panopto Course Videos tab on the left side of the screen. The live lecture will be available to view on Canvas in real-time.
Lectures will also publish under this tab thirty minutes after class ends. We expect real-time attendance (either in-person or virtually) from students who are able to do so; please note our participation policy.
All TA-led tutorials will be recorded (attendance is not required) and posted to Canvas (in the Kickstarts and Tutorials folder in the Panopto Course Videos tab).
Instructor: Ron Dror
- Professor Dror's Office Hours: Tues. & Thurs. 4:20 - 4:45 PM, outside Packard 101 (i.e., right after each class, outside the classroom). If you are participating in lecture remotely, you can join these office hours through the zoom room located at bit.ly/Ron-OH-2024.
A TA will be monitoring this zoom and will be able to add you to a queue so Professor Dror can answer your questions.
Contact and Questions:
Please use Ed Discussion for questions related to assignments, lectures,
and course logistics. If you have issues that cannot be resolved on Ed, please contact us at cs279-aut2425-staff@lists.stanford.edu. For
instructions on how to get set up on Ed, please see the Getting Set Up handout.
TA: Luci Bresette
TA: Carrie Chen
TA: Ari Glenn
TA: Chiho Im
TA: Masha Karelina
TA: Hannah Park
TA: Ishaan Singh
TA: Briana Sobecks
Office Hours:
- Some office hours will be held in-person and others will be held virtually over zoom. The same zoom link will be used for all virtual office hours.
- Queuestatus will be used to manage the queue for both virtual and in-person office hours. Please see the Getting Set Up handout for further instructions on QueueStatus.
- The weekly office hour schedule can be viewed through this Google Spreadsheet link. The in-person office hours will indicate the location and the virtual office hours will show the same zoom link as described above. We will hold office hours beginning Week 2 (i.e., as of September 30).
Announcements:
All announcements will be made on Ed Discussion. For instructions on how to get set up on Ed, please see the Getting Set Up handout.
Handouts
Lectures
Some topics may be covered a bit earlier or later than listed, due to circumstances beyond the instructor’s control. Slides and optional reading will be posted here for each lecture by the start of the given lecture. Annotated slides will be uploaded here shortly after each lecture.
- Introduction (Sept. 24)
[slides]
[annotated slides]
- Biomolecular structure, including protein structure (Sept. 26 and Oct. 1)
[slides]
[annotated slides]
Optional Reading:
- Michael Levitt's Molecular Architecture Lecture from former course SB228
[slides]
- Thoughts on how to think (and talk) about RNA structure
[Public]
[Stanford Only]
- [optional] Python and Terminal tutorial (Sept. 27 at 10am, over Zoom)
[slides]
[recording] (available on Canvas)
- [optional] Assignment 1 kickstart/PyMOL tutorial (Oct. 2 at 9am, over Zoom)
[recording] (available on Canvas)
- Energy functions & their relationship to molecular conformation (Oct. 1 and 8)
[slides]
[annotated slides]
Optional Reading:
- Biomolecular dynamics with machine-learned quantum-mechanical force fields trained on diverse chemical fragments
[Public]
[Stanford Only]
- ANI-1: An Extensible Neural Network Potential with DFT Accuracy at Force Field Computational Cost
[Public]
[Stanford Only]
- TorchANI: A Free and Open Source PyTorch-Based Deep Learning Implementation of the ANI Neural Network Potentials
[Public]
[Stanford Only]
- Oct. 3 - no class
- Molecular dynamics simulation (Oct. 8 and 10)
[slides]
[annotated slides]
Optional Reading:
- Predicting structures of proteins and other biomolecules, including machine learning methods (Oct. 10, 15, 17, and 29)
[slides]
[annotated slides]
Optional Reading:
- [optional] Assignment 2 kickstart/code tutorial (Session 1) (Oct. 18 at 9am, over Zoom)
[recording] (available on Canvas)
- [optional] Assignment 2 kickstart/code tutorial (Session 2) (Oct. 21 at 2pm, over
Zoom)
[recording] (available on Canvas)
- Oct. 22 & Oct. 24 - no class
- Protein design (Oct. 29 and 31)
[slides]
[annotated slides]
Optional Reading:
- Fourier transforms and convolution (asynchronous)
[2023 slides]
[2023 recording]
Optional Reading:
- Image analysis (asynchronous)
[2023 slides]
[2023 recording]
- Microscopy (Oct. 31)
[slides]
[annotated slides]
Optional Reading:
- [optional] Assignment 3 kickstart/code tutorial (Session 1) (Nov. 4 at 9am, over Zoom)
[recording] (available on Canvas)
- Nov. 5 - Democracy Day, no class
- [optional] Assignment 3 kickstart/code tutorial (Session 2) (Nov. 7 at 9am, over Zoom)
[recording] (available on Canvas)
- Diffusion and cellular-level simulation (Nov. 7)
[slides]
[annotated slides]
Optional Reading:
- Project topics (Nov. 12)
[slides]
- Ligand docking and virtual screening (Nov. 14 and 19)
[slides]
[annotated slides]
Optional Reading:
- [optional] Project kickstart (Nov. 21 at 8am, over Zoom)
- X-ray crystallography (Nov. 19 and 21) [slides]
[notes]
Optional Reading:
- Cryo-electron microscopy (Nov. 21 and Dec. 3)
- Review (Dec. 3 and Dec. 5)
Assignments
Please note that the following dates are approximate. When an assignment is released, the PDF and starter code will be available to download here.
An optional LaTeX template will also be provided specifically for students who wish to typeset their solutions in LaTeX, but you are not expected or required to do so.
- Assignment 1 – Biomolecular Structure and Visualization
[handout]
[starter code]
[latex template (optional)]
Out: Thursday, October 3, 2024
Due: Thursday, October 17, 2024 at 1:00 PM
- Assignment 2 – Atomic-Level Molecular Modeling
[handout]
[starter code]
[latex template (optional)]
[challenge question]
Out: Thursday, October 17, 2024
Due: Thursday, October 31, 2024 at 1:00 PM
- Assignment 3 – Cellular Structure and Dynamics
[handout]
[starter code]
[latex template (optional)]
[challenge question]
Out: Friday, November 1, 2024
Due: Friday, November 15, 2024 at 1:00 PM
- Project
[Project Instructions]
[Sample Projects from Previous Years (only accessible to enrolled students)]
Out: Tuesday, November 12, 2024
Due: Friday, December 6, 2024 at 11:59 PM
Submission:
All assignments and the project writeup should be submitted to Gradescope. If you are not already added to Gradescope,
see instructions for accessing Gradescope in the Getting Set Up handout.
Exam
The final exam will be on Thursday, December 12, 2024 from 12:15-3:15pm. Location is TBD.
Python Resources
In this class, the programming assignments will be in Python. If you have prior experience with Python, great! If you don't, no worries! All we expect is familiarity with basic programming. That said, if you've never worked with Python before, it may be helpful to look at some of the following resources to help you get up to speed.
- This class's "Python and Terminal Tutorial" tutorial will give a brief introduction to Python programming.
- Codecademy is a site that does a good job of introducing the basics of Python, organized by topic. If you're just getting started with Python or if you want to brush up on specific issues, this may be helpful.
- Check out CME 193: Introduction to Scientific Python! It's a 1-unit course that runs for eight weeks. It is recommended for students who want to use Python in math, science, or engineering courses and for students who want to learn the basics of Python programming.
Click here for last year's (Fall 2023) website and content.