Skip to content
Various teaching material
HTML Jupyter Notebook R JavaScript TeX CSS
Branch: master
Clone or download

Latest commit

Latest commit 343c72b Feb 13, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
_2016-10-rbioc-prot-Stellenbosch Add '_2016-10-rbioc-prot-Stellenbosch/' from commit '65986c6cda444635… Jan 12, 2017
_Biostat-578 Add github-tutorial, biomolvis and bioc-ms-prot Feb 6, 2019
_IntroMachineLearningWithR Add '_IntroMachineLearningWithR/' from commit 'c7546f9ebfd972a004875f… Oct 18, 2017
_Quantitative-Proteomics-and-Data-Analysis Merge commit '7f8dbeacbcc748b7d92295f1b1abd3466d30d204' Apr 5, 2016
_QuickPackage Merge commit 'a352ac0e823a6ca6d2c41adabafeea7af1696918' Jan 3, 2014
_R-bmark-prof-optim Merge commit '05259d806dcf02b1ff79f7732a4b17540daee0a1' Feb 24, 2016
_R-debugging-and-robust-programming rm empty dir Jan 12, 2017
_R-debugging Merge commit '5507cf58cb0da9d175db858683146bc2b14880b8' Apr 4, 2017
_R-functional-programming Merge commit '5677aa80db6a280fbabc235e67f7aa51d3d4d2f0' Nov 1, 2014
_R-parallel Merge commit 'f83667f3ef62ca3f82a7f2ef58b05db497da4b75' Feb 24, 2016
_R-programming Merge commit '987e5b59028d31d1ede6b8c57f3c05a033f3f2de' Jan 3, 2014
_R-vectorisation Merge commit 'bda8b03e0732cd937e81ebadba7592f82dc59c8e' Nov 1, 2014
_RBasics Merge commit 'd1627bb22cf96e0260d2f64ae0990a82f0715789' Jun 23, 2014
_RIntro add fig Jan 12, 2017
_RPackageDevelopment Merge commit '412909dee074dbf84d5cc5d4464af14f136f18e4' Apr 4, 2017
_S4-tutorial Merge commit '211e0b35b0f0036c41094dc2a539a2e1d7e31140' Jun 23, 2013
_advr1 Merge commit 'fbeae75fcd1ba85460025a9fdf8dadb9a0d14a35' Sep 30, 2016
_basicr Add '_basicr/' from commit 'c7bfa9a00729abee93de52ca0ab4b9f95ef398d6' Sep 23, 2013
_github_tutorial Merge commit 'f9c9338ccd582403bd11978aa014eca07f74cbd5' Feb 23, 2018
_minimal_make Merge commit '2a43bc9c3e8e078c21ebfcd24b50bdc49e810630' Feb 23, 2018
_open-rr-bioinfo-best-practice Add '_open-rr-bioinfo-best-practice/' from commit '87ea322ba9b7d2c229… Mar 28, 2016
_rbc Add '_rbc/' from commit '5e9d292d0840fbfc1cc36f9e9349b2a731609a75' Jan 11, 2014
_roo Merge commit '4a1f635d354e3ae73db4d8aa8ee08aa3bb4b2c76' Apr 11, 2016
_sequences Merge commit 'a9c7dce1214721fcbb1474e24f08e0da168cbdf1' Feb 24, 2016
_spr Merge commit 'b9713ed64b7b5be696c2e78f473ddbdbb8000b5d' May 28, 2013
_statistics-primer Add '_statistics-primer/' from commit '9aacf535fd2b18d9fb68d4b9eabd36… Mar 28, 2016
_visualisation add WSBIM1322 Feb 12, 2020
_config.yml Set theme jekyll-theme-minimal Jan 12, 2017


This repository is an aggregator for various R, make and git/github teaching material. Most of the courses are taught at the University of Cambridge, UK, and some have been adapted and exported outside. We would also like to acknowledge contributions from Aleksandra Pawlik, Software Sustainability Institute, Raphael Gottardo, Fred Hutchinson Cancer Research Center and Karl Broman, University of Wisconsin-Madison.

Each material subdirectory has its own repository; TeachingMaterial aggregates a snapshot as a central entry point. Aggregation is done using git-subtree (see the administration page for details). The local copies linking to external repositories are prefixed with an underscore.

Unless otherwise stated, all material is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. This means you are free to copy, distribute and transmit the work, adapt it to your needs as long as you cite its origin and, if you do redistribute it, do so under the same license.

See also the TeachingMaterial wiki for meta-information about the repository and general R installation material and links.

If you like this material and/or this initiative, do not hesitate to let us know by starring the repo, tweeting about it and sharing it with your colleagues.


Mass spectrometry and proteomics using R/Bioconductor

  • Description: In this course, we will use R/Bioconductor packages to explore, process, visualise and understand mass spectrometry-based proteomics data, starting with raw data, and proceeding with identification and quantitation data, discussing some of their peculiarities compared to sequencing data along the way. The workflow is aimed at a beginner to intermediate level, such as, for example, seasoned R users who want to get started with mass spectrometry and proteomics, or proteomics practitioners who want to familiarise themselves with R and Bioconductor infrastructure.
  • Direct link:
  • Author: Laurent Gatto
  • Original repository:
  • More details: README

Visualising biomolecular data

  • Description: This Visualisation of biomolecular data course is aimed at people who are already familiar with the R language and syntax, and who would like to get a hands-on introduction to visualisation, with a focus on biomolecular data in general, and proteomics in particular. This course is meant to be mostly hands-on, with an intuitive understanding of the underlying techniques.
  • Direct link:
  • Author: Laurent Gatto
  • Original repository:

A gentle introduction to git and Github

Introduction to bioinformatics and data science

  • Description: The WSBIM1207 course is an introduction to bioinformatics (and data science) for biology and biomedical students. It introduces bioinformatics methodology and technologies without relying on any prerequisites. The aim of this course is for students to be in a position to understand important notions of bioinformatics and tackle simple bioinformatics-related problems in R, in particular to develope simple R analysis scripts and reproducible analysis reports to interogate, visualise and understand data in a tidy tabular format.
  • Direct link:
  • Author: Laurent Gatto


  • Description: The WSBIM1322 course is teaches the basics of statistical data analysis applied to high throughput biology. It is aimed at biology and biomedical students that are already familiar with the R langauge (see the pre-requisits section below). The students will familiarise themselves with statitical learning concepts such as unsupervised and supervised learning, hypothesis testing, and extend their understanding and practive in R data structures and programming and the Bioconductor project.
  • Direct link:
  • Author: Laurent Gatto

Advanced R programming

  • Description: A two-day course taught on the 3-4 April 2017, teaching advanced techniques in writing reliable, robust code in R.
  • Author: Laurent Gatto, and Robert Stojnic.
  • Original repository:
  • Content: The material provides the opportunity to gain experience and understanding of object-oriented programming, packaging your code for distribution, advanced approaches for data visualisation, unit testing, and debugging.

R debugging and robust programming

  • Description: A 2-day workshop taught on the 25-26 February 2016 at the EMBL, Heidelberg. The course aims at teaching participants debugging techniques and good practice in writing reliable, robust code.
  • Author: Laurent Gatto, based on previous content by Laurent Gatto and Robert Stojnic, and Advanced R, by Hadley Wickham.
  • Original repository:
  • Content: Part I: Coding style(s), Interactive use and programming, Environments, Tidy data, Computing on the language. Part II: Functions, Robust programming with functions, Scoping, Closures, High-level functions, Vectorisation. Part III: Defensive programming, Debbugging: techniques and tools, Condition handling: try/tryCatch, Unit testing. Part IV: Benchmarking, Profiling, Optimisation, Memory, Rcpp.
  • More details:







R package development

Benchmarking, profiling and optimisation




R functional programming

R vectorisation

R debugging

R parallel

R object oriented programming

  • Description: Covers S3, S4 and S4 Reference Classes OO programming using DNA/RNA sequence data manipulation as a working example.
  • Author: Laurent Gatto and Robert Stojnić
  • Original repository:
  • More details: README
  • Download the pdf

One day course on R OO programming and package development

  • Description: A short 1-day course about R object-oriented programming, package development and various other topics (C interface, unit testing, debugging). See also other more recent and detailed lessons about these topic on this page.
  • Author: Laurent Gatto and Robert Stojnić
  • Original repository:
  • More details: README
  • Download the pdf

Short S4 tutorial

R programming tutorial

  • Description: A tutorial on R programming of intermediate level, focusing on some aspects of functional programming, profiling, testing, debugging and parallelisation. Used as more advanced R programming lecture during the CSAMA workshop.
  • Author: Laurent Gatto
  • Original repository:
  • More details: README
  • Download the pdf

R and C/C++



  • Description: Educational package used in R to illustrate OO programming and package development
  • Author: Laurent Gatto and Robert Stojnić
  • Original repository:
  • More details: DESCRIPTION
  • Installation from CRAN: install.packages("sequences")
  • Installation from github (requires R and C/C++ building tools):

Best practices in bioinformatics research: open source software and reproducibility

  • Description: A short course for a Bioinformatics minor at the University of Cambridge. What is open science (data, source/code, access), and how can we enable it? What is reproducible research, and why do we need it and how can we implement it? The objective is to familiarise students with concepts and tools of open science and reproducible research.
  • Author: Laurent Gatto
  • Original repository:

Beginner's statistics in R

  • Description: A 2.5 days introductionary course focusing on R and basics statistics for proteomics scientists. The R intruduction material is based on the Data Carpentry R analysis lesson and leads to the introduction and application of basic uni-variate statistics using proteomics data. The course was developed and taught as part of the May Institute, at the Northeastern University, Boston, MA in May 2017.
  • Authors: Laurent Gatto and Meena Choi, with material from the Data Carpentry R lesson.
  • Original repository:

Statistics primer

  • Description: A short course for a Bioinformatics minor at the University of Cambridge. Introducing basic concepts in statistics: experimental design, randomisation, technical and biological variation, power analysis, hypothesis testing, confidence interval, what is a p-value, false discovery rate, multiple testing adjustment, dangers of uninformed statistical practice. The objective is familiarise students with basic statistical concepts and initiate them to statistical thinking. They should be able to critically assess an experimental design and the reporting of a simple statistical analysis.
  • Author: Laurent Gatto
  • Original repository:
  • Slides on experimental desing, significance testing, and practical.

Inspection, visualisation and analysis of quantitative proteomics data

R and Bioconductor for Mass Spectrometry and Proteomics data analysis

An Introduction to Machine Learning with R

  • Description: This introductory workshop on machine learning with R is aimed at participants who are not experts in machine learning (introductory material will be presented as part of the course), but have some familiarity with scripting in general and R in particular. The workshop will offer a hands-on overview of typical machine learning applications in R, including unsupervised (clustering, such as hierarchical and k-means clustering, and dimensionality reduction, such as principal component analysis) and supervised (classification and regression, such as K-nearest neighbour and linear regression) methods. We will also address questions such as model selection using cross-validation.
  • Author: Laurent Gatto
  • Original repository:
  • Direct access to the material: bookdown formatted


We try to only aggregate material that is openly available, generally under Creative Commons Attribution license, which gives you the right to share and adapt the material as long as you credit to original author(s). Please refer to the orignal repository for details.

You can’t perform that action at this time.