Course Schedule

Below is a tentative schedule for the semester. Please check back regularly for updates and modifications.

Homework listed here is due at the start of class time on the indicated date. Complete the indicated units in Codecademy's Python 2 course, and read or at least skim the listed pages in the Pevsner text. Complete any piazza polls indicated for that date. These will count towards your class participation grade.

  • September 3: Course introduction. Sequence comparison: global and local pairwise alignment. Alignment scoring. Python and programming concepts
  • September 5: BLAST for sequence comparison and identification. Python: variables, types, introduction to functions
    • Additional reading: course syllabus
    • Codecademy: Python Syntax; Strings and Console Output.
    • Piazza poll questions.
    • Pevsner: pages 19-42 (sequence databases); pages 69-79 (pairwise alignment, up through Dayhoff Model Step 1)
  • September 10: Lab 1: BLAST off. Alignment, BLAST, variables, built-in functions.
    • Check your tufts.edu email for information about your CS department computer account. Follow the instructions to choose or reset your password if need be. Please be sure you know your user ID and password before lab.
    • Join the course in Gradescope using whatever email address you want and course entry code 92DJKE. Go to the "upload a test file" assignment, and upload a pdf of no more than a few pages, containing anything you don't mind the course staff seeing. The goal is just to ensure that you can upload files that we can read. (E.g., Flyers, articles, or assignments you have lying around as pdfs are fine.)
    • Read the page on general lab information on the course Labs page
    • Pevsner: 121-134 (running a BLAST search) and 145-154 (interpreting BLAST output)
  • September 12: Scoring matrices, advanced BLAST. Find-a-gene Project introduction. Conditionals and control flow. More on functions.
    • Codecademy: Date and Time; Conditionals and Control Flow
    • Pevsner: pages 155-159 (find-a-gene project); 167-179 (advanced BLAST).
  • September 17: Lab 2: BLASTing ahead. Choosing which BLAST and options to use, writing functions, if/elif/else
    • Codecademy: Pyg Latin
    • Piazza poll questions
  • September 19: Multiple sequence alignment. Functions and return values, parameters. Testing. Quiz 1.
    • Codecademy: Functions (just screens 1-6)
    • Pevsner: pages 205-222 (multiple sequence alignment)
  • September 24: Multiple sequence alignment. Introduce for loops; iterating over lists.
    • Due: Find-a-gene project, part 1.
  • September 26: Lab 3: Multiple sequence alignment, functions and control flow, arguments, lists.
    • Codecademy: Functions (just screens 7-19);
      Python Lists and Dictionaries (just screens 1-9)
    • piazza poll questions
  • October 1: Phylogenetics, relationship to MSA, molecular clocks and selection
    • Codecademy: Taking a Vacation
    • Pevsner: pages 245-295 (phylogeny; you can skip or skim the details of "stage 3 (substitution models)" and "stage 4 (algorithms)")
  • October 3: Loops, functions, file I/O. Pass-through scripts, accumulator functions.
    • Codecademy: Lists and Functions, File I/O. (Skip ahead; this is lesson 12.)
  • October 8: Phylogeny in MEGA. Project 1b overview. Quiz 2
  • October 10: Lab 4: Phylogenetics in MEGA; lists and loops.
    • piazza poll questions
  • October 15: NO CLASS (Tufts Monday)
  • October 17: systems thinking and functional interpretation.
    • Due: Find-a-gene project, part 2.
    • Pevsner: pages 528-529 (functional enrichment), 566-573 (Gene Ontology)
  • October 22: gene expression analysis, RNA seq, arrays
    • Pevsner: pages 450-469 (mRNA, microarrays and RNAseq), 511-519 (array data analysis), pages 482-495 (GEO2R),
  • October 24: Project 2 intro. Dicts, while loops. Quiz 3. (Solutions to programming questions on review sheet)
    • Codecademy: Lists and Dictionaries (screens 10-14); Loops (screens 1-5)
  • October 29: Lab 5: transcriptomics
    • Piazza poll questions
  • October 31: More complex coding; intro to sequence assembly
    • Codecademy: Student Becomes the Teacher
  • November 5: Lab 6: It's in the dictionary;
  • November 7 : sequence assembly, variation, dbSNP, clinVar. Quiz 4
    • Codecademy: Loops (screens 5-19)
    • Pevsner: pages 720-737 (sequencing)
  • November 8 at midnight:
    • Due: Gene Expression Project, Part 1
  • November 12: Lab 7 turning it around
  • November 14: Metagenomics, sequencing files. Probabilistic mapping.
    • Pevsner: pages 797-814 (microbiome)
    • Skim additional reading: Assignment of rRNA Sequences into the New Bacterial Taxonomy. Q. Wang, G. M. Garrity, J. M. Tiedje, J. R. Cole. Appl. Environ. Microbiol. 73(16):5261, 2007.
  • November 19: Lab 8: The zoo in you
    • Due: Gene Expression Project, Part 2
    • additional reading: Predictive functional profiling of microbial communities using 16s rRNA marker gene sequences. G. Morgan, et al. Nat. Biotech. 31(9):814-21, 2013.
  • November 21: More on conditional probability and read mapping; metagenomics project 3 intro. Quiz 5
  • November 26: Incidentalome ideas, randomness and simulation in code. More sophisticated coding, longer programs with structure. Jupyter notebooks
    • Codecademy: Battleship; Advanced Topics in Python (screens 1-11)
    • Additional reading: The Incidentalome: A Threat to Genomic Medicine. I. S. Kohane, D. R. Masys, R. B. Altman. JAMA 296(2):212-5, 2006.
  • November 28: NO CLASS (Thanksgiving)
  • December 3: Lab 9: The Incidentalome. Simulation.
    • Additional reading: The Incidentalome: A Threat to Genomic Medicine. I. S. Kohane, D. R. Masys, R. B. Altman. JAMA 296(2):212-5, 2006.
  • December 5: Systems thinking; problem assessment. Going forward.
    • Due: Project 3