Home » Teaching » BCHB 524 - 2016

Bioinformatics Computing (BCHB 524 - 2016)

This course provides a hands-on introduction to programming for bioinformatics using the scripting language Python. Students will build a portfolio of scripts that automate common bioinformatics tasks, from reading and writing common bioinformatics file formats and accessing data in relational databases and web-based repositories, interfacing with external tools such as blast, and building web-based resources for use by interactive users or as web-services. Students will be assigned weekly programming exercises and will complete a term project implementing a significant bioinformatics analysis. Grades will be assigned based on weekly programming exercises (60%) and the term project (40%).

Students enrolled in the five credit section are required to attend the lab session, which is optional for students enrolled in the three credit section.

Course Director

Nathan Edwards, PhD
nje5@georgetown.edu
(202) 687-7042
3300 Whitehaven St NW, Suite 1200

Time and Place

Lectures:
New Research Building, Room W402
Monday 1:15 - 2:45pm.
Wednesday 1:15 - 2:45pm.

Lab:
Harris Building (3300 Whitehaven St., NW)
Friday 10:00am - 12:00pm.

Course Software

We will be using a VirtualBox based virtual machine, running Linux (CentOS 5.11), as our course programming environment. The course software includes the VirtualBox installer for Windows and OS X and the virtual machine image. We will be using the Enthought EPD Free Python distribution, with a number of extra python packages and software programs pre-installed, including BioPython, PySAM, SQLObject,TurboGears, NCBI Blast, and PyMol.

Textbook

Textbook (not required) is Bassi, "Python for Bioinformatics."

Important Links

Python Programming Tutorials

Syllabus

Date Room Description Resources
Wed 8/31/2016
1:30 - 3:00
NRB W402Introduction to Python I
Installation, Syntax, Numbers
Administrivia, Lecture 1: Slides, Lecture (wmv)
Fri 9/2/2016
10:00 - 12:00
Harris 1300Introduction to Python II
Virtual Box, Numbers, Strings, DNA
Lecture 2: Slides, Lecture (wmv)
Mon 9/5/2016
Labor Day
No class. University holiday.
Wed 9/7/2016
1:15 - 2:45
NRB W402Introduction to Python III
Using Functions and Methods, New Functions, Control Flow
Lecture 3: Slides, Lecture (wmv)
Fri 9/9/2016
10:00 - 12:00
Harris 1300Lab
Mon 9/12/2016
1:15 - 2:45
NRB W402Introduction to Python IV
Conditional Execution, Loops
Lecture 4: Slides, Lecture (wmv)
Wed 9/14/2016
1:15 - 2:45
NRB W402Introduction to Python V
DNA as a string, Program I/O.
Lecture 5: Slides, Lecture (wmv)
Fri 9/16/2016
10:00 - 12:00
Harris 1300Lab
Mon 9/19/2016
1:15 - 2:45
NRB W402Python Data Structures: Lists
Lists.
Lecture 6: Slides, Lecture (wmv)
Wed 9/21/2016
1:15 - 2:45
NRB W402Advanced Python Data Structures
Dictionaries, Sets, Files. Reading sequences, parsing codon tables, and DNA translation.
Lecture 7: Slides, Lecture (wmv)
Fri 9/23/2016
10:00 - 12:00
Harris 1300Lab
Mon 9/26/2016
1:15 - 2:45
NRB W402Basic Python Review
Lots of examples
Lecture 8: Slides, Lecture (wmv)
Wed 9/28/2016
1:15 - 2:45
NRB W402Advanced Python Idioms
Iteration and iterables, comprehension, functional programming.
Lecture 9: Slides, Lecture (wmv)
Fri 9/30/2016
10:00 - 12:00
Harris 4200Lab
Mon 10/3/2016
1:15 - 2:45
NRB W402Python Modules and Basic File Parsing.
sys, os, os.path; compression; URLS; and CSV.
Lecture 10: Slides, Lecture (wmv)
Wed 10/5/2016
1:15 - 2:45
NRB W402Sequence File Parsing using Biopython.
Bio.SeqIO.
Lecture 11: Slides, Lecture (wmv)
Fri 10/7/2016
10:00 - 12:00
Harris 4200Lab
Mon 10/10/2016
Columbus Day
No class. University holiday.
Wed 10/12/2016
Next Gen. Sequencing Files
pysam. (Recorded Lecture)
Lecture 12: Slides, Lecture (wmv)
Fri 10/14/2016
Class canceled
No lab.
Mon 10/17/2016
1:15 - 2:45
NRB W402Protein Structure Parsing using Biopython.
Bio.PDB.
Lecture 13: Slides, Lecture (wmv)
Wed 10/19/2016
1:15 - 2:45
NRB W402XML
ElementTree (xml.etree)
Lecture 14: Slides, Lecture (wmv)
Fri 10/21/2016
10:00 - 12:00
Harris 1300Lab
Mon 10/24/2016
1:15 - 2:45
NRB W402Advanced Python Concepts
Modules.
Lecture 15: Slides, Lecture (wmv)
Wed 10/26/2016
1:15 - 2:45
NRB W402Advanced Python Concepts
Exceptions.
Lecture 16: Slides, Lecture (wmv)
Fri 10/28/2016
10:00 - 12:00
Harris 1300Lab
Mon 10/31/2016
1:15 - 2:45
NRB W402Advanced Python Concepts
Object Oriented Programming.
Lecture 17: Slides, Lecture (wmv)
Wed 11/2/2016
1:15 - 2:45
NRB W402Project/ReviewLecture 18: Slides, Lecture (wmv)
Fri 11/4/2016
10:00 - 12:00
Harris 1300Lab
Mon 11/7/2016
1:15 - 2:45
NRB W402Advanced Python Concepts
Object Oriented Programming and Inheritance.
Lecture 19: Slides, Lecture (wmv)
Wed 11/9/2016
1:15 - 2:45
NRB W402Using Web-Services
NCBI's E-Utils and online Blast.
Lecture 20: Slides, Lecture (wmv)
Fri 11/11/2016
10:00 - 12:00
Harris 1300Lab
Mon 11/14/2016
1:15 - 2:45
NRB W402Using Local Tools
Blast.
Lecture 21: Slides, Lecture (wmv)
Wed 11/16/2016
1:15 - 2:45
NRB W402Relational Databases
Basic Concepts.
Lecture 22: Slides, Lecture (wmv)
Fri 11/18/2016
10:00 - 12:00
Harris 1300Lab
Mon 11/21/2016
1:15 - 2:45
NRB W402Relational Databases
Object Relational Mappers, SQLObject I.
Lecture 23: Slides, Lecture (wmv)
Tues 11/22/2016
12:00 - 1:30
BSC 341Relational Databases
Object Relational Mappers, SQLObject II.
Lecture 24: Slides, Lecture (wmv)
Fri 11/25/2016
Thankgiving.
No class. University holiday.
Mon 11/28/2016
1:15 - 2:45
NRB W402Graphics and Plots
matplotlib.
Lecture 25: Slides, Lecture (wmv)
Wed 11/30/2016
1:15 - 2:45
NRB W402Web-applications
TurboGears.
Lecture 26: Slides, Lecture (wmv)
Fri 12/2/2016
10:00 - 12:00
Harris 1300Lab
Mon 12/5/2016
1:15 - 2:45
NRB W402Web-applications
TurboGears.
Lecture 27: Slides, Lecture (wmv)
Wed 12/7/2016
1:15 - 2:45
Harris 1202Project/Review
Fri 12/9/2016
10:00 - 12:00
Harris 1300Lab
Fri 12/16/2016
Harris 1300Project Presentations
Project due.