Welcome to DIY Transcriptomics

A full course covering best practices for RNAseq data analysis, with a primary focus on empowering students to be independent in the use of lightweight and open-source software and the R/bioconductor environment. This course is currently offered as CAMB714 at the University of Pennsylvania's School of Veterinary Medicine.

Pre-course preparation

review prior to course start

Although there are no formal prerequisties for the course and no official course text book, there are a few important housekeeping things you'll need to take care of before the first class.

Intro to RNAseq technology and data

Lecture 1 • 2019.08.28 • Levin 111 (SAIL classroom)• 3-5pm

After a brief overview of the course, we'll spend the opening lecture talking about Illumina's 'Sequencing by Synthesis' technology, and walk through the steps involved in planning for a transcriptomics experiment.

Setting up your software environment

Lecture 2 • 2019.09.04 • Levin 111 (SAIL classroom) • 3-5pm

In the first half of this lecture we'll discuss the open-source, cross-platform R/bioconductor software and environment that will be used throughout the course, and each student will set-up their own laptop to be a powerful, stand-alone bioinformatics workstation.

Ultra-fast read mapping with Kallisto

Lecture 3 • 2019.09.11 • Levin 111 (SAIL classroom) • 3-5pm

In this class we'll finally get down to the business of using Kallisto for memory-efficient mapping of your raw reads. You'll carry out this mapping in class, right on your laptop, while we discuss what's happening under the hood. During this process, we'll touch on a range of topics, from reference files, to command line basics, and using shell scripts for automation and reproducibility.

Understanding RNAseq count data

Lecture 4 • 2019.09.18 • Levin 111 (SAIL classroom) • 3-5pm

Now that we've aligned our reads, it's time to discuss units for measuring gene expression. We'll discuss differences between RPKM and TPM, and how these units relate to basic properties of your reference file and data. We'll also discuss normalization within and between samples. To conclude this class, we'll fire up RStudio and take a look at our first script.

Starting your R workflow

Lecture 5 • 2019.09.25 • Levin 111 (SAIL classroom) • 3-5pm

We'll begin this class by reviewing how to access R packages and help documentation, as well as understanding the basic structure of an R script and RStudio project. We'll then access annotation data before reading our Kallisto results into R.

Wrangling gene expression data

Lecture 6 • 2019.10.02 • Levin 111 (SAIL classroom) • 3-5pm

We'll begin this class by filtering and normalzing our data, all while using the ggplot2 graphing package to visualize the impact these changes have our data. You'll also be introduced to Hadley Wickham's philosophy of 'tidy data' by using the dplyr package, expanding your understanding of tools within the Tidyverse.

Data exploration

Lecture 7 • 2019.10.09 • Levin 111 (SAIL classroom) • 3-5pm

In this class you'll learn about a variety of approaches exploring your data. You'll use multivariate statistical approaches such as Principal Component Analysis (PCA) to understand sources of variance in our data, while continuing to build your plotting skills by using ggplot2 to graph the results of PCA analyses. You'll also learn how to use the dplyr package to take control over our gene expression dataframes, allowing us to change, sort, filter, arrange and summarize large data sets quickly and easily using simple commands in R. We’ll discuss common missteps and how to identify sources of bias in transcriptional data sets.

Accessing public data

Lecture 8 • 2019.10.16 • Levin 111 (SAIL classroom) • 3-5pm

In this class we’ll discuss how you can use R/Bioconductor to tap into vast amounts of RNAseq data available through the Sequence Read Archive (SRA) and Gene Expression Omnibus (GEO).

Hackdash I

Lecture 9 • 2019.10.23 • Levin 111 (SAIL classroom) • 3-5pm

You may have heard of a Hackathon before - an event that typically lasts several days and brings together people for a collaborative challenge in computer programming. Well, we don't quite have time for a full Hackathon, so we'll do a mad dash to the finish line instead. This 2hr in-class assignment will test your ability to use recent class material and code to solve a problem in a real RNAseq dataset.

Differential gene expression

Lecture 10 • 2019.10.30 • Levin 111 (SAIL classroom) • 3-5pm

The ultimate goal of most transcriptional profiling experiments is to identify differentailly expressed genes or transcripts. In this class, we'll dig into differential expression using the popular and venerable Limma package in R. Finally, we'll continue to explore options for producing compelling plots from your differential expression results.

Module identification

Lecture 11 • 2019.11.06 • Levin 111 (SAIL classroom) • 3-5pm

Coordinately expressed genes, or modules, often contain a more coherent functional signature. We'll discuss strategies for clustering expression data to identify these modules, setting the stage for downstream function enrichment analysis to be covered in the next class.

Functional enrichment analysis

Lecture 12 • 2019.11.13 • Levin 111 (SAIL classroom) • 3-5pm

Now that you've identified differentially expressed genes, what do they mean and how do you begin to elucidate the biological pathways governed by these genes? To address this question, in this class you'll learn how to carry out functional enichment analyses using Gene Ontology and Gene Set Enrichment methods. You'll also explore different options for how to present your functional enrichment results.

Hackdash II

Lecture 13 • 2019.11.20 • Levin 111 (SAIL classroom) • 3-5pm

In this second and final Hackdash, expect your most challening problem – one that will incorporate both differential gene expression analysis and downstream functional enrichment analysis.

Documenting your analyses with Rmarkdown

Lecture 14 • 2019.12.04 • Levin 111 (SAIL classroom) • 3-5pm

In order to make your analysis pipeline transparent, in this class you'll use Rmarkdown and Knitr to wrap up all your code and outputs together in a dynamic document that can be placed in your lab notebook or published as a supplementary file in your manuscript.

Making your analysis portable and reproducible with Docker

Lecture 15 • 2019.12.11 • Levin 111 (SAIL classroom) • 3-5pm

Distilling genomic data to create clear and compelling figures is a major challenge, but is essential for publication and grants. In this lecture you'll learn about the basic building blocks of an gene expression figure and how the plots you've produced thus far form the basis for telling a story with your data. You'll also learn about best practices for graphic design and typography for making figures that are not only clear, but also look great.

Final exam

Lecture 16 • 2019.12.18 • Levin 111 (SAIL classroom) • 3-5pm

During this in-class exam, I'll test your knowledge using a fun but challenging Jeopardy style Q&A (and we'll eat pizza!).