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 contribute to the design of drugs, proteins, or perhaps even cells?

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.

Instructor: Ron Dror

TA: Ben Parks

TA: Hikaru Hotta

TA: Ayushi Tandel

TA: Jacklyn Luu

Office Hours:

Please use Queuestatus to sign up for a spot in office hours.

Our default Zoom link for all TA and instructor office hours will be listed here in Ed Discussions.

Remote and in-person office hours and relevant course dates are noted in the Google Calendar below.

Contact:

Please use Ed Discussions for questions related to lectures and assignments.

If you have issues that cannot be resolved on Ed Discussions or are private issues not relevant to the rest of the class, please contact us at cs279staff@cs.stanford.edu.

Class: Tuesdays and Thursdays, 3:15 PM - 4:35 PM in Shriram 104.

Announcements: All announcements will be made on Ed Discussions.

Materials: There is no required textbook. We will suggest a variety of optional reading material throughout the course.

Handouts

Lectures

Some topics may be covered a bit earlier or later than listed, due to circumstances beyond the instructor’s control. Missing some lectures is fine. If you need to miss a lecture, we highly recommend reading through the annotated lecture slides and coming to OH for any questions you many have. Additionally, students can email the course staff for access to individual recorded lectures from last year; however, course content from last year's class will not exactly match this year's course material.

Assignments

Submission: Assignment 1-3 should be submitted to Gradescope. Final project and writeup should be submitted to Canvas.

Exam

An exam is scheduled to take place on Friday, December 10, 2021 at 3:30 PM, located in 320-105.

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.

Click here for last year's (Fall 2020) website and content.