使用scater包進行單細胞測序分析(三):數(shù)據(jù)降維與可視化

本次教程學習使用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") 
image

設置x參數(shù)確定在x軸上顯示的協(xié)變量卿捎,它可以是列元數(shù)據(jù)中的字段森枪,也可以是某個基因的名稱视搏。對于分類協(xié)變量,將產(chǎn)生如上圖所示的分組小提琴圖县袱;而對于連續(xù)協(xié)變量浑娜,將在每個面板中生成散點圖,如下圖所示式散。

plotExpression(example_sce, rownames(example_sce)[1:6],
    x = "Gene_0001")
image

當然筋遭,我們也可以通過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")
image

對于分類協(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)
image

如果不設置x參數(shù)反肋,plotExpression函數(shù)將直接繪制一組所選基因的表達量的小提琴圖那伐。

plotExpression(example_sce, rownames(example_sce)[1:6])
image

數(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")
image
plotReducedDim(example_sce, use_dimred = "PCA", 
    colour_by = "Gene_1000", size_by = "Gene_0500")
image

使用plotPCA函數(shù)對PCA降維的結(jié)果進行可視化展示肾胯,默認會對reduceDims slot中的PCA降維結(jié)果的前兩個主成分進行可視化竖席。

plotPCA(example_sce)
image

如果在使用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)
image

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")
image
plotPCA(example_sce, colour_by = "Gene_0001", size_by = "Gene_1000")
image

使用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")
image

當然,我們也可以使用預先計算好的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")
image

使用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")
image

參考來源:http://www.bioconductor.org/packages/release/bioc/vignettes/scater/inst/doc/overview.html

image

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仔拟,隨后出現(xiàn)的幾起案子衫樊,更是在濱河造成了極大的恐慌,老刑警劉巖利花,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件科侈,死亡現(xiàn)場離奇詭異,居然都是意外死亡炒事,警方通過查閱死者的電腦和手機臀栈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挠乳,“玉大人权薯,你說我怎么就攤上這事姑躲。” “怎么了盟蚣?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵黍析,是天一觀的道長。 經(jīng)常有香客問我屎开,道長阐枣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任奄抽,我火速辦了婚禮蔼两,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘如孝。我一直安慰自己宪哩,他們只是感情好,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布第晰。 她就那樣靜靜地躺著锁孟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茁瘦。 梳的紋絲不亂的頭發(fā)上品抽,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機與錄音甜熔,去河邊找鬼圆恤。 笑死,一個胖子當著我的面吹牛腔稀,可吹牛的內(nèi)容都是我干的盆昙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼焊虏,長吁一口氣:“原來是場噩夢啊……” “哼淡喜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诵闭,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤炼团,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疏尿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘟芝,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年褥琐,在試婚紗的時候發(fā)現(xiàn)自己被綠了锌俱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡敌呈,死狀恐怖贸宏,靈堂內(nèi)的尸體忽然破棺而出贩汉,到底是詐尸還是另有隱情,我是刑警寧澤锚赤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站褐鸥,受9級特大地震影響线脚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叫榕,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一浑侥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晰绎,春花似錦寓落、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尖昏,卻和暖如春仰税,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抽诉。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工陨簇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迹淌。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓河绽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唉窃。 傳聞我的和親對象是個殘疾皇子耙饰,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容