Programming

Tutorials

We will have several computational tutorials throughout the course. These will be done using Jupyter notebooks through Google Colab, so you will need to sign into a Google Account to create new notebooks. If you would like to set up Python on your own computers, follow Tutorial 0a below. As the course progresses, we will post the discussed or related notebooks below. For some of the computational excercises, we will start with a template notebook, stored in our Github repository at our Tutorial Templates Repository. You can upload the template from the Github repo straight into Google Colab by copying the link to the repository. Note: In some browsers (Firefox primarily), the end of each sentence is clipped off, making it difficult to read. If this is occurring, please try using another browser (Chrome, Safari, etc).

  • Tutorial 0a Setting up Python | This tutorial will walk you through how to install a Python 3.8 scientific computing environment. Note: We will be using Google Colaboratory for this course, so it is not necessary to install Python for this course.

  • Using the Jupyter notebook | This tutorial will teach you how to write code and text in Jupyter notebooks for homework submissions.

  • A Primer on Python Syntax | This tutorial will walk you through the basics of programming in Python.

Day 1 (April 20th):

Forward Euler to integrate bacterial growth | Notebook
Measuring bacterial growth from images | Notebook

Day 2 (April 21st): Stochastic simulation of mRNA production | Jane’s version, only production
| As we did it in class

Day 3 (April 22nd): Day 1 of LacI gene expression project | LacI Day 1

Day 4 (April 23rd) Full LacI project

Tutorial templates

Use these links to access a template file in which some of the code has been filled in for you, and save a copy of the notebook to your drive.
LacI project template

Kinetic proofreading template

External resources

Below is a list of useful online resources for learning the Python programming language and principles of programming in general.