Bioinformatics Programming I

Welcome to the home page for Bioinformatics Programming I, course catalog numbers BINF 6111 and ITCS 8111. Prof. Ann Loraine ( is your instructor. For more information about Dr. Loraine's background and research interests, visit the Loraine Lab Web site.

Ehsan Tabari ( is the Teaching Assistant for the class.

For information on class policies, grading, etc., please consult the syllabus. For information on dates and final exam periods, visit the UNCC academic calendar.

Class Meeting times: Class meets Wednesday and Friday, 9:30-10:45 pm, in the Bioinformatics building first floor computer lab.

Office Hours and TA Help session

Dr. Loraine is available on campus to talk one-on-one with students before class in her office (BINF, room 267). You are also welcome to make a phone appointment if you can't make that time.

Ehsan Tabari is available for help sessions on an as-needed basis, hours and dates to be arranged.

Python links and resources

Class Schedule

Please note that topics and assignments listed for individual dates may change. Please check back before each class period for updates.

Week 1 Aug 25-27

Class 1: Class Intro.
Assignment: Emacs Lab [1]
Assignment: First Day of Class Survey.
Reference: Emacs Command Summary

Class 2 Using Unix.
Due: Emacs lab.
Due: First Day of Class Survey.
Notes: Gene models and the bed format.
Assignment: Unix lab [2]

Week 2 Sept 1 - Sep 3

Reading: Chapters 1-3, Python Programming by John Zelle and Chapters 2 & 3, Dive into Python by Mark Pilgrim.

Class 1: Unix Review, Core data types, functions in python.
Due: Unix lab [2]
Assignment: Numbers, strings [3]

Class 2: Unix - shell and environment variables, Core data types, functions in python.
Sample Dot-Bash-Profile: sample-dot-bash-profile.txt

Week 3 Sep 8 - Sep 9

Class 1: Lists, dictionaries.
Assignment: Lists & dictionaries [4]
For assignment:
For assignment: gene2pubmed.gz
Due: Numbers, strings [3]

Class 2: Flow Control: Conditionals, loops.
Before-class reading: Python Tutorial, Section 4.

Week 4 Sep 15 - Sep 17

Class 1: Putting it all together: In-class Programming Assignment [5]
Due: Lists & dictionaries [4]

Class 2: Introduction to Version control. Using subversion
Assignment: Subversion lab [6]
Before-class reading: Chapters One through Three in: Version Control with Subversion

Week 5 Sep 22 - Sep 24

Reading: Object Oriented Programming in Learning to Program by Alan Gauld.

Class 1: Object-oriented programming - Encapsulation and Data Hiding
Assignment: OOP [7]
Due: Subversion Lab [6]
Due: In-class Programming Assignment (check in via subversion) [5]
Notes: Sequence coordinates

Class 2: OOP - Inheritance, UML

Week 6 Sep 29 - Oct 1

Class 1: Errors and exceptions
Before-Class Reading: Errors and Exceptions Tutorial

Class 2: OOP - Patterns in Software
Assignment: Inheritance - Project One
Due: OOP [7] -- turn it in via subversion

Week 7 Oct 6 - Oct 8

Class 1: Project One Discussion, Documentation, Regular Expressions
Assignment: Regular Expressions [8]
Before-class reading: Regular Expression HOWTO
Background (for the homework): AGI gene codes

Class 2: IGB lab, Regular expressions, con't
Tutorial: IGB lab

Week 8 Oct 13 - Oct 15

Class 1: Unit testing.
Before-Class Reading: Dive Into Python: Unit Testing
Due: Regular Expressions [8]

Class 2: Unit testing, con't

Week 9 Oct 20 - Oct 22

Class 1: Intro to Algorithms
Due: Project One.

Class 2: Intro to Algorithms; Project One code review
Assignment: Project One revision/code review - Part One [9]

Week 10 - Oct 27 - Oct 29

Class 1: Named arguments and OOP - Project One code review, con't
Due: Project One revision/code review - Part One [9]
Assignment: Project One revision - Part Two [10]

Class 2: Revising Project One, Partner evaluations

Week 11 Nov 3 - Nov 5

Class 1: In-class programming; Subversion refresher
Due: Project One revision - Part Two [10] (Thursday, 8 pm)

Class 2: Code Review - Which is better? Finding NMD targets
Assignment: NMD targets [11]

Week 12 Nov 10 - Nov 12

Class 1: RNA-Seq, HW11 setup
SAM/BAM: Screencasts
Tutorial: IGB lab

Class 2: Visualizing RNA-Seq data, Option parsing
Reading: Check out binf_prog/class/src/

Week 13 Nov 17 - Nov 19

Class 1: Statistical programming with R
Notes: EEJ distance diagram
Assignment: Intro to R [12]

Class 2: Statistical programming with R - class notes
Assignment: Project Two
Due: NMD targets [11]
Notes: Thomas Girke's R workshop
Reference: Dalgaard's Introductory Statistics with R, 2nd edition
Video: R on Windows (basic)
Video: Reading Excel spreadsheets
Video: Using R to do a related t-test
Video: Using R to perform simple linear regression
Rpy:Tool-building in Bioinformatics: Rpy
Reference: First Steps in R by Florian Markowetz, et al.

Week 14 Nov 24 - Nov 26 - No class (Thanksgiving holiday)

Week 15 Dec 1 - Dec 3

Class 1: samtools and SAM, Project Two
Reading: Binary search Can a binary search make your program faster?
Reading: SAM Format specification
Link: data files for project two Link: - compiled on MacOSX

Class 2: Project Two help sessions
Due: Intro to R

Week 16 Dec 8 (Dec 8 is the last day of class)

Class 1: Review, Project Two help sessions

Project Two - due by 5 pm, Thursday Dec 16