本次教程學習使用
scater
包進行單細胞轉(zhuǎn)錄組數(shù)據(jù)降維與常用的一些可視化方法。
- plotExpression: plot cell expression levels for one or more genes;
- plotReducedDim: plot (and/or calculate) reduced dimension coordinates;
加載所需的R包和示例數(shù)據(jù)
library(scater)
data("sc_example_counts")
data("sc_example_cell_info")
# 構(gòu)建SingleCellExperiment對象
example_sce <- SingleCellExperiment(
assays = list(counts = sc_example_counts),
colData = sc_example_cell_info
)
# 進行數(shù)據(jù)歸一化
example_sce <- normalize(example_sce)
example_sce
## class: SingleCellExperiment
## dim: 2000 40
## metadata(1): log.exprs.offset
## assays(2): counts logcounts
## rownames(2000): Gene_0001 Gene_0002 ... Gene_1999 Gene_2000
## rowData names(0):
## colnames(40): Cell_001 Cell_002 ... Cell_039 Cell_040
## colData names(4): Cell Mutation_Status Cell_Cycle Treatment
## reducedDimNames(0):
## spikeNames(0):
基因表達量的可視化
在scater包中寺旺,我們使用plotExpression
函數(shù)對(特征)基因的表達量進行可視化展示。默認情況下换棚,它使用歸一化后的“l(fā)ogcounts”值進行可視化啡浊,我們也可以通過exprs_values參數(shù)對其進行更改。
plotExpression(example_sce, rownames(example_sce)[1:6],
x = "Mutation_Status", exprs_values = "logcounts")
設置x參數(shù)確定在x軸上顯示的協(xié)變量卿捎,它可以是列元數(shù)據(jù)中的字段森枪,也可以是某個基因的名稱视搏。對于分類協(xié)變量,將產(chǎn)生如上圖所示的分組小提琴圖县袱;而對于連續(xù)協(xié)變量浑娜,將在每個面板中生成散點圖,如下圖所示式散。
plotExpression(example_sce, rownames(example_sce)[1:6],
x = "Gene_0001")
當然筋遭,我們也可以通過colour_by,shape_by和size_by等參數(shù)調(diào)整點的顏色暴拄,形狀和大小漓滔。
plotExpression(example_sce, rownames(example_sce)[1:6],
colour_by = "Cell_Cycle", shape_by = "Mutation_Status",
size_by = "Gene_0002")
對于分類協(xié)變量x,我們還可以通過設置show_median = TRUE參數(shù)揍移,在小提琴圖上顯示每組表達水平的中位數(shù)。
plotExpression(example_sce, rownames(example_sce)[7:12],
x = "Mutation_Status", exprs_values = "counts",
colour = "Cell_Cycle", show_median = TRUE,
xlab = "Mutation Status", log = TRUE)
如果不設置x參數(shù)反肋,plotExpression函數(shù)將直接繪制一組所選基因的表達量的小提琴圖那伐。
plotExpression(example_sce, rownames(example_sce)[1:6])
數(shù)據(jù)的降維與可視化
scater包可以使用多種方法(PCA, tSNE, UMAP和diffussion maps)對單細胞轉(zhuǎn)錄組數(shù)據(jù)進行降維處理,降維后的結(jié)果存儲在reducedDims slot中,可以使用plotReducedDim
函數(shù)對降維后的結(jié)果進行可視化展示罕邀,并通過use_dimred參數(shù)設置降維的方法畅形。
使用PCA方法進行數(shù)據(jù)降維可視化
scater包使用runPCA
函數(shù)進行PCA降維處理,通過plotPCA
函數(shù)進行降維可視化展示诉探,也可以使用plotReducedDim
函數(shù)對PCA降維后的結(jié)果進行可視化展示日熬。
# 使用runPCA函數(shù)進行PCA降維處理
example_sce <- runPCA(example_sce)
reducedDimNames(example_sce)
## [1] "PCA"
# 使用plotReducedDim函數(shù)對降維結(jié)果進行可視化展示,use_dimred參數(shù)設置降維的方法
plotReducedDim(example_sce, use_dimred = "PCA",
colour_by = "Treatment", shape_by = "Mutation_Status")
plotReducedDim(example_sce, use_dimred = "PCA",
colour_by = "Gene_1000", size_by = "Gene_0500")
使用plotPCA
函數(shù)對PCA降維的結(jié)果進行可視化展示肾胯,默認會對reduceDims slot中的PCA降維結(jié)果的前兩個主成分進行可視化竖席。
plotPCA(example_sce)
如果在使用plotPCA
函數(shù)時不存在預先計算好的“PCA”結(jié)果,該函數(shù)將會自動調(diào)用runPCA
函數(shù)計算PCA降維的結(jié)果敬肚。
默認情況下毕荐,runPCA
函數(shù)會使用所有細胞中最高變化的500個基因的表達量的log-counts值來執(zhí)行PCA降維處理,也可以通過ntop
參數(shù)設置使用的高可變基因的數(shù)量艳馒≡餮牵或者,通過feature_set
參數(shù)設置用于PCA降維處理的一組特定基因弄慰。
example_sce2 <- runPCA(example_sce,
feature_set = rowData(example_sce)$is_feature_control)
plotPCA(example_sce2)
Multiple components can be plotted in a series of pairwise plots. When more than two components are plotted, the diagonal boxes in the scatter plot matrix show the density for each component.
example_sce <- runPCA(example_sce, ncomponents=20)
plotPCA(example_sce, ncomponents = 4, colour_by = "Treatment",
shape_by = "Mutation_Status")
plotPCA(example_sce, colour_by = "Gene_0001", size_by = "Gene_1000")
使用tSNE方法進行數(shù)據(jù)降維可視化
t-SNE方法被廣泛用于復雜的單細胞數(shù)據(jù)集的降維可視化處理第美,scater通過Rtsne包使用runTSNE
函數(shù)進行降維處理,獲得tSNE降維后的坐標信息陆爽,使用plotTSNE
函數(shù)可視化tSNE降維后的結(jié)果什往。
# Perplexity of 10 just chosen here arbitrarily.
set.seed(1000)
# 使用runTSNE函數(shù)進行tSNE數(shù)據(jù)降維處理
example_sce <- runTSNE(example_sce, perplexity=10)
# 使用plotTSNE函數(shù)將降維可視化展示
plotTSNE(example_sce, colour_by = "Gene_0001", size_by = "Gene_1000")
當然,我們也可以使用預先計算好的PCA降維結(jié)果作為t-SNE算法的輸入墓陈,這可以使用low-rank approximation的表達矩陣提升計算的速度恶守,也可以降低隨機噪音。
set.seed(1000)
example_sce <- runTSNE(example_sce, perplexity=10, use_dimred="PCA", n_dimred=10)
plotTSNE(example_sce, colour_by="Treatment")
使用diffusion maps方法進行數(shù)據(jù)降維可視化
scater通過density包使用runDiffusionMap
函數(shù)進行diffusion maps降維處理贡必,并使用plotDiffusionMap
函數(shù)對降維后的結(jié)果進行可視化展示兔港。
# 使用runDiffusionMap函數(shù)進行降維處理
example_sce <- runDiffusionMap(example_sce)
使用plotDiffusionMap函數(shù)對降維結(jié)果進行可視化展示
plotDiffusionMap(example_sce, colour_by = "Gene_0001", size_by = "Gene_1000")
參考來源:http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html