Home » Teaching » BCHB 524 - Fall 2019

Bioinformatics Computing (BCHB 524 - Fall 2019)

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:
Basic Science Building (BSB), Room 341
Monday 1:15 - 2:45pm.
Wednesday 1:15 - 2:45pm.

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

Course Software

We will be using a VirtualBox based virtual machine, running Linux (CentOS 7.6), 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 Anaconda 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

Bioinformatics Programming Challenge Sites

Syllabus

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