Course Number and Title: CS 640 Bioinformatics
Location: Harney Science Center 235 Kudlick Classroom
Schedule: M,W 4:45-6:25pm

Instructor: Patricia Francis-Lyon
Email: pfrancislyon (at) cs (dot) usfca (dot) edu
Phone: (415) 422-2810
Office: Cowell 203
Office Hours in Cowell 203 M 2-4pm, 6:30-8:30pm; W 2-4pm, 6:30-7:15pm; Also by appointment
Online Office Hours Sat 11am-1pm on Zoom
Class email list: go to, list is: CS 640 Bioinformatics
If not already subscribed, go to (click on Browse all, then click on CS 640, then Apply for membership)

You may download python 2 to your own computer:    for mac or windows download the correct installer (Probably 64 bit)

Teaching Assistant for Biotech:Chaman Preet Kaur
Email: ckaur3(at) dons (dot) usfca (dot) edu
Discussion Sections location and hours: W 6:30-7:30pm in LS 209,
                      Th 7:30-8:30 pm on Zoom
Office Hours location and hours: F 5:30-7:30pm on Zoom
Intro CS Tutor Center Hours (for Biotech students) in HR 530

Course Goals and Objectives
This course will introduce you to the field of bioinformatics. Assuming expertise in either Biology or Computer Science but not both, this course will bring you up to speed so you can do research involving proteins, DNA, and RNA. You will learn the principles underlying analysis of genomic and proteomic data and apply them in writing efficient scripts to analyze data from cancer research, high throughput sequencing and other domains. You will gain practical experience in the use of bioinformatics tools and algorithms and will utilize APIs for scientific programming and data visualization.

This is a lab-based and projects-based class. After an introduction to the field and the tools of the field in the first half of the class, students will choose a project of their interest to implement.

Topics and Assignments

Course Objectives

  1. Explain the role of DNA and proteins in human disease and therapies.
  2. Analyze biological data using tools such as Weka, the R programming language and Python.
  3. Appraise, select and utilize relevant data from databases such as Genbank, the Protein Data Bank, the Cancer Atlas and the Gene Expression Omnibus to solve a given problem.
  4. Apply bioinformatics tools such as BLAST and multiple sequence alignment to work with data encoding genes, proteins, DNA, and RNA.
  5. Solve problems independently utilizing documentation and code from APIs such as Numpy, Scipy, Scikit-learn and the Bioconductor suite of tools in R.
  6. Utilize machine learning algorithms such as neural networks and support vector machines for scientific programming or data analysis.

List of Topics

Assignments and Assessments
A quiz or a quick pair reports will occur at the start of most classes during the first half of the semester, less frequently in the second half.
Lab-based assignments will be due about once per week during the first half of the semester, less frequently in the second half.
Students will present a bioinformatics research paper on a topic of their choosing.
Students will undertake a bioinformatics project and present it in class and at CS Night.
All students are expected to participate in class discussions, including presentations by fellow students.
An in-class midterm will be administered. A make-up exam will be given only in the case of a medical emergency documented by a doctor's note.


Mapping to Letter Grade
100 - 93.0 - A
92.9 - 90.0 - A-
89.9 - 87.0 - B+
86.9 - 83.0 - B
82.9 - 80.0 - B-
79.9 - 77.0 - C+
76.9 - 73.0 - C
72.9 - 70.0 - C-
69.9 - 67.0 - D+
66.9 - 63.0 - D
62.9 - 60.0 - D-
59.9 - 0 - F

Bioinformatics Textbooks (No required textbooks):
Understanding Bioinformatics by Zvelebil and Baum, 2008
Bioinformatics and Functional Genomics by Jonathan Pevsner, 2009 (new edition Oct 2015)
Introduction to Bioinformatics 4thEd by Lesk, 2014
Discovering Genomics, Proteomics, and Bioinformatics by Campbell et al, 2002
We will also be reading journal articles and utilizing other freely available online sources.

Free Online text for learning Programming (Biotech students):
How to Think Like a Computer Scientist: Learning with Python
by Jeffrey Elkner, Allen B. Downey, and Chris Meyers (a free online text)

Academic Honesty We will adhere to the University's Student Academic Honesty Policy
In this course you must do your own work on exams and homework, unless explicitly specified otherwise.
Any substantial contribution from another person or an online source must be cited to avoid plagiarism.
Code-walkthroughs are an accepted practice in computer science, and every student can expect to engage in review of their own code.
Doctoring test cases to make it look as if your program works correctly is cheating. Test cases must be actual copy-pastes of the results of your run.