Genome 373: Genomic Informatics

   Elhanan Borenstein, elbo [ a t ]
   Douglas Fowler, dfowler [ a t ]

Teaching Assistant:
   Matthew Snyder, mwsnyder [ a t ]

Schedule: MWF, 10:30-11:20, Hitchcock 220.


This course is intended to introduce students to the breadth of problems and methods in computational analysis of genomes, arguably the single most important new area in biological research. The specific subjects will include large-scale comparative genome structure, sequence alignment and search methods, gene prediction, evolutionary relationships among genes, and next-generation sequencing. The course will include one mid-term exam and a final exam. Other graded assignments will be problem sets, due most weeks. Some problems will include computer programming and most will involve extensive use of web resources for data set mining.


» Midterm: Monday, May 4, 2014. *** Note, you are allowed to bring a two-sided cheat sheet ***

» The class has filled up and we have a wait-list. If you are on the wait-list, we suggest that you come to the first day of class. Although we are not planning on expanding the class past the current count, based on our past experience there are often several individuals who drop, such that we may be able to accomodate a subset (or, ideally, all) of the wait list.


Problem sets are posted online each Wednesday and are due the following Wednesday by 5PM. Homework is a mix of written problems and programming.
Grades: 50% home assignments, 20% midterm, 30% final exam.

Test/Demo Files

The following files may be used in some of the in-class exercises and demos or in the home assignments.


Lectures and Resources:
(Note: Links to resources will become live as the course progresses)

WeekDatesTopicsLecturesQuiz section
1 (Fowler)Mar. 30, Apr. 1, 3 Welcome; syllabus; Intro to bioinformatics; Intro to Python; Python programming: script, print, variables, strings, lists, tuples, files; Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
2 (Borenstein)Apr. 6, 8, 10 Sequence alignment; Dynamic programming; Global alignment; Local alignment; Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
3 (Borenstein)Apr. 13, 15, 17 Score matrices; Trees; Distance trees; UPGMA; NJ; Parsimony (small and large); Lecture 1a, Lecture 1b, Lecture 2, Lecture 3 [pdf], [ppt]
4 (Borenstein)Apr. 20, 22, 24 Search heuristics; Microarray clustering algorithms; Hierarchical clustering; K-mean clustering; Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
5 (Borenstein)Apr. 27, 29, May 1 GO annotation; Enrichment analysis; GSEA; Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
6 (Borenstein)May 4, 6, 8 Midterm; Biological networks; Dijkstra's algorithm; Intro to molecular evolution; Lecture 1, Lecture 2 [pdf], [ppt]
7 (Fowler)May 11, 13, 15 Hidden Markov models Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
8 (Fowler)May 18, 20, 22 Machine learning Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
9 (Fowler)May 25, 27, 29 High-throughput sequencing and contemporary sequence alignment Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]
10 (Fowler)Jun 1, 3, 5 Genome assembly and wrap up Lecture 1, Lecture 2, Lecture 3 [pdf], [ppt]


Electronic access to journals is generally free from on-campus computers. For off-campus access, follow the "[offcampus]" links or look at the library "proxy server" instructions.

  1. Noble, WS, "A quick guide to organizing computational biology projects." PLoS Comput. Biol. 5 (2009) e1000424. Pmid: 19649301 [Offcampus]
  2. Dudley, JT and Butte, AJ, "A quick guide for developing effective bioinformatics programming skills." PLoS Comput. Biol. 5 (2009) e1000589. Pmid: 20041221 [Offcampus]
  3. How dictionaries work (aka hash tables or hash maps)
  4. Subramanian et al., "Gene set enrichment analysis: A knowledge-based approach for interpreting genome-wide expression profiles"PNAS 102(43) (2005)

Python Resources:

Regular Expressions
"RegExPal" (For Javascript rather than Python, but similar and quite handy. Try it!)
Python Books
Python for Software Design: How to Think Like a Computer Scientist by Allen B. Downey. (Includes early drafts of our text book; cheaper than the published version, but less polished...)
Learning Python by Mark Lutz. O'Reilly (Very comprehensive. Much is accessible to beginners.)

Bioinformatics Books

» Biological sequence analysis: probabilistic models of proteins and nucleic acids, R. Durbin, S. Eddy, A. Krogh, and G. Mitchison, Cambridge. (Excellent reference, classics)
» Inferring Phylogenies, Joseph Felsenstein, Sinauer, 2004. (Excellent reference on this topic.)
» Introduction to Computational Genomics: A Case Studies Approach, Cristianini, Nello & Hahn, Matthew, Cambridge, 2007.
» An Introduction to Bioinformatics Algorithms, Neil C. Jones & Pavel A. Pevzner, 2004.
» Bioinformatics: Sequence and Genome Analysis, David W. Mount, Cold Spring Harbor Laboratory Press.
» Python for Bioinformatics, Sebastian Bassi, CRC Press, 2010. (A little too advanced as a progamming book for beginners, but fine now that you're experienced.)
» Python for Bioinformatics, Jason Kinser, Jones and Bartlett, 2009. (Ditto.)

Elhanan Borenstein
Department of Genome Sciences
University of Washington
Jim Thomas
Departments of Genome Sciences
University of Washington