Welcome to DIY Transcriptomics

A virtual asynchronous 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 online curriculum is paired with an in-person course that 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

Module 1 • 2hrs

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

Module 2 • 2hrs

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, then each student will set-up their own laptop to be a powerful, stand-alone bioinformatics workstation.

Ultra-fast read mapping with Kallisto

Module 3 • 2hrs

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

Module 4 • 2hrs

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

Module 5 • 2hrs

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

Module 6 • 2hrs

We'll begin this class by filtering and normalizing 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

Module 7 • 2hrs

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

Module 8 • 2hrs

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).

Differential gene expression

Module 9 • 2hrs

The ultimate goal of most transcriptional profiling experiments is to identify differentially expressed genes or transcripts. In this class, we'll dig into differential expression using the popular and venerable Limma package in R, while continuing to explore options for producing compelling plots from your differential expression results. Finally, we'll discuss a workflow for going beyond DGE analysis to look at differentail transcript (isoform) usage (DTU).

Module identification

Module 10 • 2hrs

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

Module 11 • 2hrs

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.

Documenting your analyses with Rmarkdown

Module 12 • 2hrs

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

Module 13 • 2hrs

Reproducing an analysis requires more than just code. You need the original raw data, access to the appropriate programming languages, and application specific packages (and often specific versions of these packages). This poses a major impediment to reproducibility, even for researchers with a background in bioinformatics. To address this challenge, you'll learn how to 'containerize' your data, scripts and software, making it easy to share and rerun an entire analysis with the push of a button.