Home » Teaching » BINF 524 - Fall 2020

Bioinformatics Computing (BINF 524 - Fall 2020)

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

Time

Lectures:
Monday 1:15 - 2:45pm.
Wednesday 1:15 - 2:45pm.

Lab:
Friday 10:00am - 12:00pm.

Virtual Instruction Details

  • Lectures will be conducted synchronously via Zoom and recorded for asynchronous viewing.
  • Students are not required to join the synchronous lectures, especially if time-zones or other logistical obstacles make this difficult, but attendance is recommended.
  • Students are generally expected to leave their cameras on to promote active participation and engagement.
  • Students are encouraged to speak up during lectures and ask questions verbally or in the chat.
  • The lab session will also be conducted synchronously in Zoom. Each student will be assigned to a breakout room and share their screen there. I will join each breakout room on request via the chat or in rotation.
  • Zoom meeting links will be password protected.

Course Software

We will be using a VirtualBox based virtual machine, running Linux (CentOS 7.8), as our course programming environment. The course software (Google Drive, Edwards Lab) 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.

Downloads

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/26/2020
1:15 - 2:45
ZoomIntroduction to Python I
Installation, Syntax, Numbers
Administrivia, Lecture 1: Slides, Recording (mp4)
Fri 8/28/2020
10:00 - 12:00
ZoomIntroduction to Python II
Virtual Box, Numbers, Strings, DNA
Lecture 2: Slides, Recording (mp4)
Mon 8/31/2020
1:15 - 2:45
ZoomIntroduction to Python III
Using Functions and Methods, New Functions, Control Flow
Lecture 3: Slides, Recording (mp4)
Wed 9/2/2020
1:15 - 2:45
ZoomIntroduction to Python IV
Conditional Execution, Loops
Lecture 4: Slides, Recording (mp4)
Fri 9/4/2020
10:00 - 12:00
ZoomLab
Mon 9/7/2020
1:15 - 2:45
ZoomIntroduction to Python V
DNA as a string
Lecture 5: Slides, Recording (mp4)
Wed 9/9/2020
1:15 - 2:45
ZoomIntroduction to Python VI
Program I/O
Lecture 6: Slides, Recording (mp4)
Fri 9/11/2020
10:00 - 12:00
ZoomLab
Mon 9/14/2020
1:15 - 2:45
ZoomPython Data Structures: Lists
Lists.
Lecture 7: Slides, Recording (mp4)
Wed 9/16/2020
1:15 - 2:45
ZoomAdvanced Python Data Structures
Dictionaries, Sets, Files. Reading sequences, parsing codon tables, and DNA translation.
Lecture 8: Slides, Recording (mp4)
Fri 9/18/2020
10:00 - 12:00
ZoomLab
Mon 9/21/2020
1:15 - 2:45
ZoomBasic Python Review
Lots of examples
Lecture 9: Slides, Recording (mp4)
Wed 9/23/2020
1:15 - 2:45
ZoomAdvanced Python Idioms
Iteration and iterables, comprehension, functional programming.
Lecture 10: Slides, Recording (mp4)
Fri 9/25/2020
10:00 - 12:00
ZoomLab
Mon 9/28/2020
1:15 - 2:45
ZoomPython Modules and Basic File Parsing.
sys, os, os.path; compression; URLS; and CSV.
Lecture 11: Slides, Recording (mp4)
Wed 9/30/2020
1:15 - 2:45
ZoomSequence File Parsing using Biopython.
Bio.SeqIO
Lecture 12: Slides, Recording (mp4)
Fri 10/2/2020
10:00 - 12:00
ZoomLab
Mon 10/5/2020
1:15 - 2:45
ZoomNext Gen. Sequencing
PySAM
Lecture 13: Slides, Recording (mp4)
Wed 10/7/2020
1:15 - 2:45
ZoomProtein Structure
Bio.PDB
Lecture 14: Slides, Recording (mp4)
Fri 10/9/2020
10:00 - 12:00
ZoomLab
Mon 10/12/2020
1:15 - 2:45
ZoomXML
ElementTree (xml.etree)
Lecture 15: Slides, Recording (mp4)
Wed 10/14/2020
1:15 - 2:45
ZoomAdvanced Python Concepts
Modules.
Lecture 16: Slides, Recording (mp4)
Fri 10/16/2020
10:00 - 12:00
ZoomLab
Mon 10/19/2020
1:15 - 2:45
ZoomAdvanced Python Concepts
Exceptions.
Lecture 17: Slides, Recording (mp4)
Wed 10/21/2020
1:15 - 2:45
ZoomAdvanced Python Concepts
Object Oriented Programming.
Lecture 18: Slides, Recording (mp4)
Fri 10/23/2020
10:00 - 12:00
ZoomLab
Mon 10/26/2020
1:15 - 2:45
ZoomAdvanced Python Concepts
Object Oriented Programming and Inheritance.
Lecture 19: Slides, Recording (mp4)
Wed 10/28/2020
1:15 - 2:45
ZoomProject DescriptionLecture 20: Slides, Recording (mp4)
Fri 10/30/2020
10:00 - 12:00
ZoomLab
Mon 11/2/2020
1:15 - 2:45
ZoomUsing Web-Services
NCBI's E-Utils and online Blast.
Lecture 21: Slides, Recording (mp4)
Wed 11/4/2020
1:15 - 2:45
ZoomUsing Local Tools
Blast.
Lecture 22: Slides, Recording (mp4)
Fri 11/6/2020
10:00 - 12:00
ZoomLab
Mon 11/9/2020
1:15 - 2:45
ZoomRelational Databases
Basic Concepts.
Lecture 23: Slides, Recording (mp4)
Wed 11/11/2020
1:15 - 2:45
ZoomRelational Databases
Object Relational Mappers, SQLObject I.
Lecture 24: Slides, Recording (mp4)
Fri 11/13/2020
10:00 - 12:00
ZoomLab
Mon 11/16/2020
1:15 - 2:45
ZoomRelational Databases
Object Relational Mappers, SQLObject II.
Lecture 25: Slides, Recording (mp4)
Wed 11/18/2020
1:15 - 2:45
ZoomGraphics and Plots
matplotlib.
Lecture 26: Slides, Recording (mp4)
Fri 11/20/2020
10:00 - 12:00
ZoomLab
Mon 11/23/2020
Thanksgiving Recess
No class
Wed 11/25/2020
Thanksgiving Recess
No class
Fri 11/27/2020
Thanksgiving Recess
No class
Mon 11/30/2020
1:15 - 2:45
ZoomWeb-applications
TurboGears.
Lecture 27: Slides, Recording (mp4)
Wed 12/2/2020
1:15 - 2:45
ZoomWeb-applications
TurboGears.
Lecture 28: Slides, Recording (mp4)
Fri 12/4/2020
10:00 - 12:00
ZoomProject
Mon 12/7/2020
1:15 - 2:45
ZoomProject
Fri 12/11/2020
10:00 - 12:00
ZoomProject
Fri 12/18/2020
ZoomProject Presentations
Project due.