Introduction to Computational Models in Biology
MW 4:30-5:50 Room B027; of ICL lab, Communications Building.
Here, you will learn about models that arise in the life sciences and how they're analyzed using modern mathematical and computational techniques. We will cover statistical models, discrete- and continuous- time dynamical models, and stochastic models. Applications will sample a wide range of scales, from biomolecules to population dynamics, with an emphasis on common mathematical concepts and computational techniques. Throughout, our themes will include interpretation of existing data and predictions for new experiments.
MATLAB will be used for numerical computation, visualization, and data analysis -- and mathematical tools taught in parallel with their computational implementation. No prior programming experience is assumed.
Images: Terrence Sanger, Medical College of Georgia, Steve Coombes, Yulia Timofeeva.
|325 Lewis Hall|
|Office hours: Tu 2:00-2:50
Required text: "Dynamic Models in Biology,". by Stephen Ellner and John Guckenhiemer (called EG below). .
Optional reference: "Matlab: A Practical Introduction to Programming and Problem Solving," by Stormy Attaway is a very helpful programming guide and reference, for use as needed.
Syllabus and readings(1) Course overview, introduction to programming, and introduction to mathematical models in the life sciences.
- Modeling objectives: prediction and theory development
- Introduction to programming: vectors, matrices, loops, logic, plotting
- Exponential and chaotic population growth in a simple system
READINGS:(2) Matrix models -- discrete time, linear maps (2 weeks)
- EG Chapter 1
- Introduction to population biology
- Euler-Lotka formula and root-finding for age-class models: "Leslie Matrices"
- Matrix multiplication and eigenvalues in MATLAB
- The Perron-Frobenius Theorem, dominant eigenvalues and population growth
- Eigenvalue sensitivity formulas and applications in ecology
- EG Chapter 2
- Literature: crouse.pdf
- For those wanting a Linear Algebra tutorial / referesher: geometric introduction to linear algebra by Eero Simoncelli (SVD section optional)
- Introduction to electrical membranes and neurons
- Random variables and probability
- Channel statistics: the binomial distribution
- Transition probabilities and Markov chains
- Equilibrium states -- dominant eigenvalues and Perron-Frobenius return!
- Central limit theorem and deterministic limits
- Applications to ion channels and reverse-engineering molecular configurations
READINGS:(4) Continuous time models and biological networks (3 weeks)
- EG Chapter 3.1-3.3, EG Lab manual (section 11).
- Anderson and Stevens (1973)
- Ordinary differential equations and vector "arrow" fields -- visualizing flows in MATLAB
- Equilibria: Newton's method in MATLAB
- Stability and oscillations
- Numerical solution methods, MATLAB implementation
- Applications in gene networks, oscillators, and genetic toggle switches
- Stochastic differential equations and biological memory models
- EG Chapter 4, 5.1-5.4, 5.7, 6.1-6.3.
- Shen-Orr et al, network motifs 2002
- Alon, Nature Reviews genetics 2007
- Oh et al, Mesoscale brain connectome, Nature 2014
- Some "rough" supplemental (or review) notes on ODEs
- noteset 1 on ODEs
- noteset 2 on numerical methods for ODEs
- noteset 3 on stability and the Jacobian
Course structure and gradingCourse grades are composed of: Problem Sets 40%, Case study presentation 10%, Project presentation 10%, Project paper 40%.
Problem sets will be due on select Wednesdays (roughly every other week) at the start of class.
Important formatting instructions: in your writeup please present all material for a given problem together -- e.g. under "Problem II" you'd have any and all code that you used for that problem, a written answer (i.e., "the dominant eigenvalue is 0.921"), plots that explain and back up your findings and answers, and any analysis. Then we'd go to the next problem. (Not stapling all code for all problems together as an appendix at the end.) You may find the publish(code.m) command in MATLAB helpful. You can print out your codes and plots and intermingle this with handwritten answers and explanations, or, again, some have found the MATLAB "publish" function handy. Late policy: 50% credit if turned in late but within 2 days of deadline; not accepted otherwise.
Case study: Each group of students will give a brief in-class presentation of a paper that applies the modeling and computational techniques we have learned in the course. Paper suggestions, guidelines and grading criteria will be distributed. Presentation dates: Nov 18 and 23.
Project: These case studies will be developed into course projects, consisting of a brief presentation and paper writeup. Presentations Dec. 7 and 9. Papers due to Shea-Brown mailbox, Lewis Hall: MON. Dec. 14, 5 PM.
ComputingIn this course, we will make extensive use of the Matlab ( The MathWorks, Inc) programming language. As an OPTIONAL bonus, the textbook's website also provides many codes in the language R, which has closely related syntax and is used extensively in some computational biology communities.
I strongly recommend that you obtain a student copy of MATLAB for use on your own machine.
There is access to MATLAB at the ICL labs on campus.
Additionally, you can access MATLAB remotely by following the links to "terminal server" -- or follow this link to instructions for how to log in.
Two tips: on mac, you might need to select "millions of colors." AND, PLEASE BE CAREFUL: on any platform, make sure you know where you are saving your files before you logout -- if they are on a remote machine, you might not be able to access them easily or at all again. You can also email or "dropbox" or "google drive" the files to yourself before logout. Or, depending on platform/setup, you might need to check a box such as "disk drives" to gain direct access to local harddrive or flash drive.
Learning Python next!Python tutorial, courtesy of Higham and MacMillen:
- download higham_macmillen_python_tutorial.ipynb from the link "Codes and data for lectures and lab exercises" above
- go to cloud.sagemath.com and make a new account
- title the project "python tutorial," hit create project
- click on the project name
- click create or upload files
- drag higham_macmillen_python_tutorial.ipynb into the “drop files to upload” box
- click files at the top
- click on higham_macmillen_python_tutorial.ipynb
- This will open a “jupyter” ipython notebook. Work through it, clicking in each cell and then hitting shift-click (or cell —> run from top menu).