Instructor(s) name(s) and contact information

Workshop Description

In single-cell RNA-sequencing (scRNA-seq), gene expression is assessed at the level of single cells. In dynamic biological systems, it may not be appropriate to assign cells to discrete groups, but rather a continuum of cell states may be observed, e.g. the differentiation of a stem cell population into mature cell types. This is often represented as a trajectory in a reduced dimension of the scRNA-seq dataset.

Many methods have been suggested for trajectory inference. However, in this setting, it is often unclear how one should handle multiple biological groups or conditions, e.g. constructing and comparing the differentiation trajectory of a wild type versus a knock-out stem cell population.

In this workshop, we will explore methods for comparing multiple conditions in a trajectory inference analysis. We will expand on our recent package condiments and present the workflow on two examples.

  • We will first present a single-lineage trajectory dataset with two conditions which we call TGFB, and conduct a full workflow analysis on that dataset, from integration to differential expression. You can find the compiled version of that vignette here.

  • We will then analyze a more complex dataset, with three lineages and three conditions, which we name KRAS and explore how the first few steps of the workflow differ. You can find the compiled version of that vignette here.



  • Basic knowledge of R syntax
  • Familiarity with single-cell RNA-sequencing
  • Familiarity with the SingleCellExperiment class

Background reading:

  • The textbook “Orchestrating Single-Cell Analysis with Bioconductor” is a great reference for single-cell analysis using Bioconductor packages.
  • The first dataset used in this workshop was originally published in McFaline-Figueroa, et al. “A pooled single-cell genetic screen identifies regulatory checkpoints in the continuum of the epithelial-to-mesenchymal transition.”
  • The second dataset used in this workshop in Xue, et al. “Rapid non-uniform adaptation to conformation-specific KRAS(G12C) inhibition”
  • Slingshot paper
  • tradeSeq paper
  • condiments paper

Workshop Participation

The workshop will start with an introduction to the problem and the first dataset using presentation slides. Following this, we will have a lab session on the first dataset. Time permitting, we will then look at a second dataset.

R / Bioconductor packages used

Time outline

Activity Time
Introduction 10m
TGFB: Data Integration 5m
TGFB: Trajectory Inference and Differential Topology 10m
TGFB: Differential Progression 5m
TGFB: Differential Expression 10m
KRAS: Trajectory Inference and Differential Topology 10m
KRAS: Differential Progression and Differentiation 5m
Wrap-up and Conclusions 5m

Workshop goals and objectives

Participants will learn how to reason about trajectories in single-cell RNA-seq data and how they may be used for interpretation of complex scRNA-seq datasets. Participants can follow along in the following fashions:

  • Run the code online by going to orchestra and launching the workshop titled Trajectory inference across conditions: differential expression and differential progression
  • Clone the repository from github and run the code locally
  • USe docker and get the container hectorrdb/bioc2021trajectories:latest

Learning goals

  • Reason about dynamic biological systems.
  • Grasp the complexity of analyzing large scRNA-seq datasets with the goal of extracting relevant biological information.
  • Understand the concepts of differential progression and differential expression along a trajectory path.

Learning objectives

  • Learn how to analyze single-cell RNA-seq data using Bioconductor packages.
  • Import and explore large scRNA-seq datasets.
  • Understand the challenges of trajectory inference.
  • Compose analysis pipeline that allows interpretation of complex scRNA-seq datasets.
  • Assess the added complexity of handling multiple conditions in these dynamic systems and how it influences the analysis pipeline.
  • Discuss how the analysis pipeline can incorporate this change and evaluate it.

Final notes

A compiled version of the vignette is available on the workshop website.

If you have questions that you could not ask during the workshop, feel free to open an issue on the github repository here.

## R version 4.1.0 (2021-05-18)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.2 LTS
## Matrix products: default
## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=C             
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## loaded via a namespace (and not attached):
##  [1] rprojroot_2.0.2   digest_0.6.27     crayon_1.4.1      R6_2.5.0         
##  [5] magrittr_2.0.1    evaluate_0.14     stringi_1.6.2     rlang_0.4.11     
##  [9] cachem_1.0.5      fs_1.5.0          ragg_1.1.3        rmarkdown_2.9    
## [13] pkgdown_1.6.1     textshaping_0.3.5 desc_1.3.0        tools_4.1.0      
## [17] stringr_1.4.0     yaml_2.2.1        xfun_0.24         fastmap_1.1.0    
## [21] compiler_4.1.0    systemfonts_1.0.2 memoise_2.0.0     htmltools_0.5.1.1
## [25] knitr_1.33