Syllabus for GEN220: High Throughput Biological Data Processing

Course Description

This course focuses on computational skills for processing data using programming language Python and UNIX environment. No prior programming experience is required, but some basic computer skills will be useful.

With the advancement of high throughput data generation methods, a major challenge that graduate students in life sciences have to face today is to analyze large amount of biological data. The objective of this course is to provide an opportunity for graduate students with no computer science background to learn the basic skills of handling high throughput biological data. It covers the Linux/Unix environment and the importance of the command line interface; the Python programming language; program design, implementation, and testing; BioPython; Strategies for analyzing genome resequencing, RNASeq, and microbiome sequencing data. Students build hands-on skills by analyzing real high throughput biological data through homework assignments and team projects.

Units: 3

Instructor: Jason Stajich (jason.stajich@ucr.edu)

Time and location: Tu 12-2PM / Thur 1-3PM 3365 Spieth Hall (Darwin Room)

Office Hours: Wed 9-10 and best by appointment.

https://biodataprog.github.io/GEN220_2026/

Prerequisites

  • Coursework in genetics or molecular biology or permission of instructor

Resources

None of these texts are required for completion of the course but they will provide a great deal of helpful background and examples that will improve your ability to master UNIX or Programming in Python.

  1. Bioinformatics Data Skills: Reproducible and Robust Research with Open Source Tools. Vince Buffalo. 2015 O’Reilly & Associates. Available from O’Reilly and Associates, Amazon Free to read on UCR network (or use VPN) - Safari link.

  2. Unix and Perl to the Rescue: A Primer. Keith Bradnam and Ian Korf. Unix and Perl Primer for Biologists

  3. Unix and Perl to the rescue! Bradnam and Korf. Amazon

  4. Rosalind - An online platform to learn bioinformatics and programming in Python.

  5. Software Carpentry - https://software-carpentry.org/ and Data Carpentry - http://www.datacarpentry.org/.

  6. Berk Ekmekci, Charles E. McAnany, Cameron Mura. An Introduction to Programming for Bioscientists: A Python-Based Primer. PLoS Comp Bio. DOI: 10.1371/journal.pcbi.1004867

  7. Ken Youens-Clark. Tiny Python Projects. https://www.manning.com/books/tiny-python-projects

  8. Pat Schloss’s Riffomonas Code Club has great videos and links to programming and microbiome analyses.

Grading

  • Homework assignments (7 in total, HW0-HW6): 50% of grade
  • Project: 50% of grade

Homework

  • Homework is due before class on the date listed in the syllabus or if amended when assignment is given.

  • There will be a programming assignment every two weeks during the first half of the course. Programming assignments must be prepared along with any necessary input files or documentation to demonstrate program usage.

  • Code should be runnable as turned in. You will deposit your code in your github repository or if not possible, by Canvas. You can make one private personal repository to deposit and should organize a folder for each homework assignment (e.g. hw1, hw2, hw3, hw4, hw5). There will be a link to create these through GitHub Classroom and posted in Canvas.

Technology Requirements

Because this course requires use of a computer, you will need the following:

Hardware

Access to a current Mac or PC (with a fast processor and speakers) Webcam and microphone (to participate in any video components, e.g. live sessions, remote proctoring, video presentations)

Operating systems

  • OSX is recommended with Xquartz installed for X11
    • iTerm is a useful terminal in addition to default Terminal.
  • Windows with MobaXterm
  • UNIX or Linux eg Ubuntu

Projects

  • Project Topics (PDF) will be discussed in October and teams will select a project idea to focus on. See also the report template and presentation info.

  • Project will be 2-3 individuals working together.

  • Key dates: abstract due Oct-29, halfway progress milestone Nov-17, presentations Dec-3, final report Dec-9.

  • A presentation will be made by each team - last day(s) of class.

  • A final report with the details will be turned in by the group.

  • The report needs to detail what each person’s contribution is to the project.

Schedule

Date Day Lecture Topic Notes
Sep-24 Th Course Intro / UNIX I: Logging into HPCC, command line basics; GitHub account and SSH keys Homework 0 assigned
Sep-29 Tu UNIX II: Files, data and running programs on the HPCC cluster (modules, srun; sbatch preview); Git and GitHub: clone, commit, push Homework 1 assigned
Oct-1 Th UNIX III: Shell programming - variables, loops and scripts (lab/reading: data processing with cut, sort, uniq, awk) Homework 0 Due
Oct-6 Tu Python I: Variables, running, cmdline, strings, math  
Oct-8 Th Python II - Logic, loops, lists, iterator; I/O reading/writing files Homework 1 Due; Homework 2 assigned
Oct-13 Tu Python III - Dictionaries and Functions  
Oct-15 Th Bioinformatics I - Sequence search: BLAST on the command line Homework 3 assigned
Oct-20 Tu Python IV - Modules, BioPython and Pandas Homework 2 Due
Oct-22 Th Python V - Regular Expressions. Class Project Info: Project Topics  
Oct-27 Tu Bioinformatics workshop - parsing BLAST and data tables in Python  
Oct-29 Th Running analyses on the cluster: SLURM job scripts and job arrays Class Project Outline/Abstract due (details)
Nov-3 Tu Bioinformatics II - Short read alignment and genomic ranges (BWA, samtools, bedtools) Homework 3 Due
Nov-5 Th Bioinformatics III - RNASeq analyses  
Nov-10 Tu Building websites with GitHub Pages, Markdown and HTML Homework 5 assigned
Nov-12 Th Bioinformatics IV - SNPs and variants Homework 4 Due
Nov-17 Tu Bioinformatics V - Protein domains and homology search (HMMER, Pfam) Class Project halfway milestone due (details)
Nov-19 Th Bioinformatics VI - Orthology and phylogenetics  
Nov-24 Tu Bioinformatics VII - Sequence evolution and statistics: Ka/Ks, simulation, shuffling and p-values Homework 5 (GitHub website) Due
Nov-26 Th ** NO CLASS ** - Thanksgiving  
Dec-1 Tu Genome and Statistical Data visualizations Extra Topics
Dec-3 Th Class Presentations  
Dec-9 Wed Final papers due  

*note these dates and topics may changes if illness or conflict arises. Class will also vote to emphasize special topics towards the end of quarter.