Course website single cell transcriptomics

August 7, 2026 · View on GitHub

build workflow License: CC BY-SA 4.0

This website is hosted at: https://bioinfocz.github.io/Course-on-scRNA-seq-data-analysis/

Original SIB course is at: https://sib-swiss.github.io/single-cell-training/

Course website single cell transcriptomics

Single-cell RNA sequencing (scRNA-seq) allows researchers to study gene expression at the level of individual cells. This approach can, for example, help to identify different cell populations in a complex sample and describe their expression patterns. To generate and analyse scRNA-seq data, several methods are available, all with their strengths and weaknesses depending on the researchers’ needs. This 3-day course will cover the main technologies as well as the main aspects to consider while designing an scRNA-seq experiment. In particular, it will combine the theoretical background of analytical methods with hands-on data analysis sessions focused on data generated by droplet-based platforms.

By the end of the course, participants will possess the following abilities:

  • Distinguish advantages and pitfalls of scRNA-seq.
  • Design their own scRNA-seq experiment, using common technologies like 10× Genomics.
  • Apply quality control (QC) measures and utilise analysis tools to preprocess scRNA-seq data.
  • Apply normalisation, scaling, dimensionality reduction, integration and clustering on scRNA-seq data using R.
  • Differentiate between cell annotation techniques to identify and characterise cell populations.
  • Use differential gene expression analysis methods on scRNA-seq data to gain biological insights.
  • Select enrichment analysis methods appropriate to the biological question and data.
  • Develop an scRNA-seq data analysis workflow from raw count matrix to differential gene expression with peer support and light guidance.

project logo

Course organizators and teachers

Course support team

Atributions

We would like to thank Elixir for all the support and provided computational funds, also we would like to thank Metacentrum organization. This course is largely based on material from the SIB sib-swiss.github.io/single-cell-r-training, which we gratefully acknowledge. Parts of the original SIB Course were inspired by the Broad Institute Single Cell Workshop, the CRUK CI Introduction to single-cell RNA-seq data analysis course and courses previously developed by Walid Gharib at SIB.

Original authors

How reuse this material

This website is generated with quarto. To re-build the website, download and install Rstudio and Quarto CLI. Also make sure you have installed the required packages. After that, clone this repository:

git clone https://github.com/bioinfocz/Course-on-scRNA-seq-data-analysis

or for original SIB version

git clone https://github.com/sib-swiss/single-cell-r-training.git

Using renv

This project uses renv to manage R dependencies. To restore the project's environment, run the following commands in R:

install.packages("renv")
renv::restore()

Render website

For most content edits, you don't need to render locally at all: pushing a change to a .qmd or .yml file to master automatically triggers a GitHub Actions workflow that renders the site and publishes it. See the "Course Repo Maintenance Guide" for details.

If you do want to render locally (e.g. to preview before pushing), open the project in Rstudio, and run in the terminal:

quarto render

Sites are rendered to the docs folder, which GitHub Pages serves directly (branch master, folder /docs).

Run with Docker

A Docker image with all the required software is available on Docker Hub, under our own namespace:

docker run \
--rm \
-p 8787:8787 \
-v $PWD:/home/rstudio \
pfeiferl/training-singlecell-rstudio:latest

You can also use the script Docker/run_locally.sh to run the container.

Note: this image is a fork/derivative of SIB's own sibswiss/training-singlecell-rstudio image, rebuilt under our own namespace so that our changes never affect SIB's shared, actively-used image. Do not push to the sibswiss namespace.

Update Docker image

As of the current Docker/Dockerfile, packages are installed via renv::restore() (using Docker/renv.lock) plus any explicit RUN Rscript -e 'install.packages("...")' lines added directly to the Dockerfile. Docker/install_packages.R is currently not invoked by the build — editing it alone has no effect on the built image. (Properly folding new packages into renv.lock via renv::snapshot(), so install_packages.R is meaningful again, is a pending improvement — see the maintenance guide.)

To add or update a package in the Docker image today:

  1. Add a line to Docker/Dockerfile, e.g. RUN Rscript -e 'install.packages("pkgname")' (specify a repos= argument if the package isn't on CRAN).
  2. Rebuild the Docker image (see below).

Using GitHub Actions

You can manually trigger a build of the Docker image by going to the Actions tab of this repository, selecting the "Manual build and push" workflow, and clicking "Run workflow".

Locally

Alternatively, you can rebuild the image locally:

cd Docker
docker build -t pfeiferl/training-singlecell-rstudio:latest .
docker push pfeiferl/training-singlecell-rstudio:latest