Skip to content

Dimensionality reduction


Download the presentation


This chapter uses the gbm dataset

Load the gbm dataset you have created yesterday:

gbm <- readRDS("gbm_day1.rds")

And load the following packages:


Once the data is normalized, scaled and variable features have been identified, we can start to reduce the dimensionality of the data. For the PCA, by default, only the previously determined variable features are used as input, but can be defined using features argument if you wish to specify a vector of genes. The PCA will only be run on the variable features, that you can check with VariableFeatures(gbm).

gbm <- Seurat::RunPCA(gbm)

To view the PCA plot:

Seurat::DimPlot(gbm, reduction = "pca")

We can colour the PCA plot according to any factor that is present in For example we can take the column Phase (i.e. predicted cell cycle phase):

Seurat::DimPlot(gbm, reduction = "pca", = "Phase")


Coming back to the cell cycle analysis, we can check the distribution of the different cell cycle phases over the PCA, and eventually regress it out using the ScaleData() function. But here, the PCA doesn’t seem to cluster according to the cell cycle phase.

We can generate heatmaps according to the correlations with the different dimensions of our PCA:

Seurat::DimHeatmap(gbm, dims = 1:12, cells = 500, balanced = TRUE)

The elblowplot can help you in determining how many PCs to use for downstream analysis such as UMAP:

Seurat::ElbowPlot(gbm, ndims = 40)

The elblow plot ranks principle components based on the percentage of variance explained by each one. Where we observe an “elblow” or flattening curve, the majority of true signal is captured by this number of PCs, eg around 25 PCs for the gbm dataset.

Including too many PCs usually does not affect much the result, while including too few PCs can affect the results very much.

UMAP: The goal of these algorithms is to learn the underlying manifold of the data in order to place similar cells together in low-dimensional space.

gbm <- Seurat::RunUMAP(gbm, dims = 1:25)

To view the UMAP plot:

Seurat::DimPlot(gbm, reduction = "umap")

Cells can be coloured according to cell cycle phase. Is there a group of cells than contains a high proportion of cells in G2/M phase?

Seurat::DimPlot(gbm, reduction = "umap", = "Phase")

Exercise: Try to change:

A. The number of neighbors used for the calculation of the UMAP. Which is the parameter to change and how did it affect the output. What is the default ? In which situation would you lower/increase this ?

B. The number of dims to extremes dims = 1:5 or dims = 1:50 how did it affect the output ? In your opinion better few PCAs too much or too few ? Why does dims = 1:100 not work ? When would more precision be needed ?


Answer A

gbm <- Seurat::RunUMAP(gbm, dims = 1:25,n.neighbors = 50)

It can be of interest to change the number of neighbors if one has subset the data (for instance in the situation where you would only consider the t-cells inyour data set), then maybe the number of neighbors in a cluster would anyway be most of the time lower than 30 then 30 is too much. In the other extreme where your dataset is extremely big an increase in the number of neighbors can be considered.

Answer B

gbm <- Seurat::RunUMAP(gbm, dims = 1:5)

gbm <- Seurat::RunUMAP(gbm, dims = 1:50) 
Taking dims = 1:100 does not work as in the step RunPCA by default only 50pcs are calculated, so the maximum that we can consider in further steps are 50, if more precision makes sense, for instance, if the genes that is of interest for your study is not present when the RunPCA was calculated, then an increase in the number of components calculated at start might be interesting tobe considered. Taking too few PCs we have a « blob » everything looks connected. Too many PCs tends to separate everything. Personally it is more interesting for me too have maybe 2 clusters separated of epithelial cells that I then group for further downstream analysis rather than having very distinct cells being clustered together. So I would rather take the « elbow » of the elbow plota bit further to the right.