GS559: Introduction to Statistical and Computational Genomics (Winter 2011)

   Jim Thomas,
   Elhanan Borenstein,

Schedule: Tues. Thurs, 3:30-4:50, Hitchcock 220. First class Jan. 4, last class Mar. 10.



» The final exam will have two parts: The first will focus on the bioinformatics topics covered in class and the second on programming. You can use one cheat sheet for the first part. The second part will be open book (basically, any resource you want to use is ok). Both parts will comprise very simple and brief questions to account for the short time allowed for the exam.

» Problem Set 8 is posted.
» Problem Set 4 answers are posted.
» NOTE: Question 4 in Problem Set 7 is not a challenge question. It is worth 20 points (as is now indicated) which are part of the total 100 points.
» Problem Set 7 is posted.
» Problem Set 6 is posted.
» Per your requests, assignments are due by the start of the following Thursday class (rather than Tuesday class). It is still strongly recommended to start working on the problem sets as early as you can.
» You are welcome (and encouraged) to submit your assignments electronically (e.g., as a text or word document via email).
» Problem Set 5 is posted.
» Problem Set 4 Question 2 was not well-conceived, you can skip it.
» Problem Set 3 answers are posted. Suggestion - even if you think you got everything correct, read my answers carefully because I've added comments and other information that is helpful.
» Problem Set 4 is posted.


You are welcome to talk to classmates about principles for solving problems, but do NOT solve specific problems together. In many ways, the problem solving is where you will learn the most for this class, especially the programming. TIP: Google your programming problem. For example, "python string search" will get you relevant information on how to search a string pretty easily. Try it for those cryptic error messages, too.

All problem sets are due by the start of class on the date listed. Grades will come 80% from problem sets and 20% from one final exam. There will be no mid-term exams.

Test/Demo Files

The following files are used in some of the in-class exercises and demos.


small.fasta (these are text files despite the .fasta extension)

Lectures and Reading:

#DateLecture TopicProgramming TopicReading
101/04 Overview of course. Introduction to sequence comparison. BLAST, alignment scoringPDF,PP Introduction to Python. Interpreter, objects, types, variables, command linePDF,PP [1, 2]
201/06 Sequence alignment - dynamic programmingPDF,PP StringsPDF,PP
301/11 Sequence alignmentPDF,PP Numbers, lists, tuplesPDF,PP
401/13 Sequence alignment - protein score matricesPDF,PP File input-ouput, if-then-elsePDF,PP
501/18 Sequence alignment - signficance of similarity scoresPDF,PP For loopsPDF,PP
601/20 Signficance of similarity scores continuedPDF,PP While loops and review of programmingPDF,PP
701/25 Whole genome alignments, Sequence trees - introductionPDF,PP More on loops, Programming efficientlyPDF,PP
801/27 Sequence trees - distance treesPDF,PP Dictionaries (hash maps)PDF,PP [3]
902/01 ParsimonyPDF,PP FunctionsPDF,PP
1002/03 Small parsimonyPDF,PP Functions as arguments, sortingPDF,PP
1102/08 Gene ontology and functional enrichmentPDF,PP More on functions, modulesPDF,PP
1202/10 Gene set enrichment analysisPDF,PP RecursionPDF,PP [4]
1302/15 Gene expression: Clustring PDF,PP Regular expressionsPDF,PP
1402/17 Gene expression: K-mean clustring PDF,PP More regular expressionsPDF,PP
1502/22 Biological networks; Dijkstra algorithmPDF,PP Classes and objectsPDF,PP
1602/24 Degree distribution and network motifsPDF,PP More on classes and objectsPDF,PP
1703/01 Gene predictionPDF,PP ExceptionsPDF,PP
1803/03 Artificial neural networksPDF,PP More on classes, BiopythonPDF,PP
1903/08 ProjectPDF,PP
2003/10 Final Exam


padlock  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"PNAS102(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.)
Dive Into Python 3 by Mark Pilgrim. (Another online book. Based on Python 3, so some differences, and more advanced, but also free.)

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.)

James H. Thomas
Department of Genome Sciences
University of Washington
Elhanan Borenstein
Departments of Genome Sciences
University of Washington