Skip to content
 
 

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZebraQ

Introduction to R / Python and bulk RNA-seq data analysis with DESeq2

An introductory course for beginners in programming and RNA-seq data analysis, built for biotechnology students with little or no bioinformatics background.

The course is available in two parallel tracks: R and Python. They cover the same material, use the same datasets, and reach the same biological conclusions. Which one is taught depends on the cohort; pick whichever suits you.

For more advanced users we recommend the DESeq2 vignette.


Course structure

Part 1 — programming and data handling

Topic
S1 Data structures and basic operations
S2 Importing and exporting data
S3 Summary statistics and data visualisation

Part 2 — RNA-seq analysis

Topic
S4 Differential expression analysis
S5 Exploring and visualising RNA-seq results
S6 Bonus: hands-on with a public dataset (GSE106118)

🐍 Python track

Runs in Google Colab with nothing to install - click a badge and start.

Lesson Notebook Open
S1 Python data structures Colab
S2 Importing and exporting data Colab
S3 Exploratory data analysis Colab
S4 Differential expression with PyDESeq2 Colab
S5 Visualising RNA-seq results Colab
S6 Bonus — GSE106118 Colab

Every notebook is self-contained: it fetches its own data and does not require you to have run any earlier lesson.

Setup instructions for running locally: setup/python/README.md.


📊 R track

R markdown sources and rendered HTML are in lessons-r/.

Lesson Source Rendered
S1 S1_R_Data_Structures.Rmd html
S2 S2_Import_Export_Data_in_R.Rmd html
S3 S3_Exploratory_Data_Analysis.Rmd html
S4 S4_DESeq_analysis.Rmd html
S5 S5_DESeq_visualization.Rmd html
S6 S6_Bonus.Rmd html

Required R packages: setup/Installation_and_setup.Rmd.


Do the two tracks give the same answer?

Close enough to teach either, and the difference is worth understanding.

DESeq2 (R) and PyDESeq2 (Python) are independent implementations of the same method, so they are not bit-identical. Running both on this course's zebrafish dataset (13,755 genes after filtering):

Comparison Result
Genes tested 13,755 in both
log2 fold change, Spearman correlation 1.000000
Agreement on the significant set Jaccard 0.996

S4 of the Python track reproduces this comparison live, so students can see it rather than take it on trust.


Dataset

Disclaimer: the data used in this course is for educational purposes only.

data/ is shared by both tracks:

File Contents
chd_genes.annotations.tsv 276 genes associated with congenital heart disease, with gnomAD constraint metrics (also provided as .csv and .xlsx)
salmon.merged.gene_counts.filtered.tsv Gene counts from RNA-seq of wild-type and mutant zebrafish (Danio rerio) hearts at 48 hpf. Dataset is incomplete and results are therefore uninterpretable
samplesheet.tsv Sample metadata for the zebrafish experiment (3 WT, 3 MT)
GSE106118_HE10W.tsv.gz Public human fetal heart expression data used in the S6 bonus lesson

Materials

Supporting slides: slides/Practical_Section_II.pdf


References

  1. R for Data Science
  2. Python Data Science Handbook
  3. DESeq2
  4. PyDESeq2

Maintainer

Enrique Audain (enrique.audain@uni-oldenburg.de)

Have fun!

Volcano plot of differentially expressed genes in mutant vs wild-type zebrafish hearts

About

Introduction to R and bulk-RNAseq data analysis using DESeq2

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages