重生之我在劍橋大學(xué)學(xué)習(xí)單細(xì)胞RNA-seq分析——6. 生物學(xué)分析(2)

6.2 聚類示例

> library(pcaMethods)
> library(SC3)
> library(scater)
> library(SingleCellExperiment)
> library(pheatmap)
> library(mclust)
> set.seed(1234567)

為了說明scRNA-seq數(shù)據(jù)的聚類毕箍,我們使用發(fā)育中的小鼠胚胎細(xì)胞的Deng數(shù)據(jù)集(Deng等,2014)道盏。我們已經(jīng)預(yù)處理了數(shù)據(jù)集并創(chuàng)建了一個(gè)SingleCellExperiment對象而柑。我們還用原始文章中確定的細(xì)胞類型對細(xì)胞進(jìn)行了注釋(colData中的cell_type2)。
6.2.1 Deng數(shù)據(jù)集
下載鏈接:https://singlecellcourse.cog.sanger.ac.uk/index.html?shared=data/
加載數(shù)據(jù)并查看:

> deng <- readRDS("data/deng/deng-reads.rds")

看一下細(xì)胞類型注釋:

> table(colData(deng)$cell_type2)

    16cell      4cell      8cell early2cell earlyblast  late2cell  lateblast 
        50         14         37          8         43         10         30 
  mid2cell   midblast         zy 
        12         60          4

簡單的PCA分析已經(jīng)分離出一些強(qiáng)大的細(xì)胞類型并為數(shù)據(jù)結(jié)構(gòu)提供了一些見解:

早期細(xì)胞類型(藍(lán)荷逞、橙媒咳、綠)分離得很好,但三個(gè)囊胚時(shí)間點(diǎn)(紫种远、粉涩澡、黃)比較難區(qū)分。
6.2.2 SC3
對Deng數(shù)據(jù)運(yùn)行SC3聚類坠敷。SC3的優(yōu)勢在于它可以直接處理SingleCellExperiment對象妙同。
假設(shè)我們不知道cluster的數(shù)量k。SC3可以進(jìn)行估計(jì):

> deng <- sc3_estimate_k(deng)
Estimating k...
> metadata(deng)$sc3$k_estimation
[1] 6

有趣的是膝迎,SC3預(yù)測的細(xì)胞類型數(shù)量比原始數(shù)據(jù)注釋中的要少粥帚。
但是,如果將不同細(xì)胞類型的早期限次、中期和晚期組合在一起芒涡,我們將得到6種細(xì)胞類型。我們將合并后的細(xì)胞類型存儲在colDatacell_type1中:

> plotPCA(deng, colour_by = "cell_type1")

現(xiàn)在我們準(zhǔn)備運(yùn)行SC3(同時(shí)要求它計(jì)算cluster的生物學(xué)特性):

> deng <- sc3(deng, ks = 10, biology = TRUE, n_cores = 1)
Setting SC3 parameters...
Calculating distances between the cells...
Performing transformations and calculating eigenvectors...
Performing k-means clustering...
Calculating consensus matrix...
Calculating biology...

SC3結(jié)果由幾種不同的輸出組成(更多詳細(xì)信息請參閱(Kiselev等卖漫,2017)和SC3 vignette)费尽。這里我們展示其中的一些:
一致性矩陣:

輪廓圖:

表達(dá)矩陣熱圖:

識別marker基因:

SC3聚類的PCA圖:

SC3聚類結(jié)果與原文細(xì)胞類型標(biāo)簽進(jìn)行比較:

> adjustedRandIndex(colData(deng)$cell_type2, colData(deng)$sc3_10_clusters)
[1] 0.7804189

SC3也可以在交互式Shiny會話中運(yùn)行:

> sc3_interactive(deng)

此命令將在瀏覽器中打開SC3
注意:由于直接計(jì)算距離羊始,當(dāng)細(xì)胞數(shù)量>5000時(shí)旱幼,SC3會變得非常慢。對于數(shù)量級在10^5個(gè)細(xì)胞的大型數(shù)據(jù)集店枣,我們建議使用Seurat速警。
6.2.3 tSNE + kmeans
我們之前使用scater包看到的tSNE圖是使用Rtsne和ggplot2包制作的。在這里我們將做同樣的操作:

> deng <- runTSNE(deng, rand_seed = 1)
> plotTSNE(deng)
患者數(shù)據(jù)的tSNE圖

注意鸯两,上圖所有點(diǎn)都是黑色的闷旧。這與我們之前看到的不同,當(dāng)時(shí)細(xì)胞的顏色是基于注釋的钧唐。這里我們沒有任何注釋忙灼,所有細(xì)胞都來自同一批,因此所有點(diǎn)都是黑色的。
現(xiàn)在我們對tSNE圖上的點(diǎn)應(yīng)用k均值聚類算法该园。你看到了多少組酸舍?
我們將從k=8開始:

> colData(deng)$tSNE_kmeans <- as.character(kmeans(reducedDim(deng, "TSNE"), centers = 8)$clust)
> plotTSNE(deng, colour_by = "tSNE_kmeans")
患者數(shù)據(jù)的tSNE圖,包含8個(gè)聚類里初,由k均值聚類算法識別啃勉。

你可能已經(jīng)注意到,tSNE+kmeans是隨機(jī)的双妨,每次運(yùn)行時(shí)都會產(chǎn)生不同的結(jié)果淮阐。為了達(dá)到更好的效果,我們需要多次運(yùn)行刁品。SC3也是隨機(jī)的泣特,但由于一致性步驟,它更加穩(wěn)健挑随,不太可能產(chǎn)生不同的結(jié)果状您。
6.2.4 SINCERA
如上一章所述,SINCERA基于層次聚類兜挨,它在進(jìn)行聚類之前會執(zhí)行z-score轉(zhuǎn)換:

> input <- logcounts(deng[rowData(deng)$sc3_gene_filter, ])
# perform gene-by-gene per-sample z-score transformation
> dat <- apply(input, 1, function(y) scRNA.seq.funcs::z.transform.helper(y))
# hierarchical clustering
> dd <- as.dist((1 - cor(t(dat), method = "pearson"))/2)
> hc <- hclust(dd, method = "average")

如果不知道聚類的數(shù)量膏孟,SINCERA可以將生成不超過特定數(shù)量的單例聚類(僅包含1個(gè)細(xì)胞的聚類)的層次樹的最小高度設(shè)為k:

> num.singleton <- 0
> kk <- 1
> for (i in 2:dim(dat)[2]) {
      clusters <- cutree(hc, k = i)
      clustersizes <- as.data.frame(table(clusters))
      singleton.clusters <- which(clustersizes$Freq < 2)
      if (length(singleton.clusters) <= num.singleton) {
          kk <- i
      } else {
          break;
      }
  }
> cat(kk)
  6

將SINCERA結(jié)果可視化為熱圖:

使用k的SINCERA方法聚類結(jié)果

往期內(nèi)容:
重生之我在劍橋大學(xué)學(xué)習(xí)單細(xì)胞RNA-seq分析——5. scRNA-seq數(shù)據(jù)的基本質(zhì)量控制 (QC) 和探索(5)
重生之我在劍橋大學(xué)學(xué)習(xí)單細(xì)胞RNA-seq分析——5. scRNA-seq數(shù)據(jù)的基本質(zhì)量控制 (QC) 和探索(6)
重生之我在劍橋大學(xué)學(xué)習(xí)單細(xì)胞RNA-seq分析——6. 生物學(xué)分析(1)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拌汇,隨后出現(xiàn)的幾起案子骆莹,更是在濱河造成了極大的恐慌,老刑警劉巖担猛,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丢氢,居然都是意外死亡傅联,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門疚察,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒸走,“玉大人,你說我怎么就攤上這事貌嫡”茸ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵岛抄,是天一觀的道長别惦。 經(jīng)常有香客問我,道長夫椭,這世上最難降的妖魔是什么掸掸? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上扰付,老公的妹妹穿的比我還像新娘堤撵。我一直安慰自己,他們只是感情好羽莺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布实昨。 她就那樣靜靜地躺著,像睡著了一般盐固。 火紅的嫁衣襯著肌膚如雪荒给。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天闰挡,我揣著相機(jī)與錄音锐墙,去河邊找鬼。 笑死长酗,一個(gè)胖子當(dāng)著我的面吹牛溪北,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播夺脾,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼之拨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了咧叭?” 一聲冷哼從身側(cè)響起蚀乔,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菲茬,沒想到半個(gè)月后吉挣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婉弹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年睬魂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镀赌。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氯哮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出商佛,到底是詐尸還是另有隱情喉钢,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布良姆,位于F島的核電站肠虽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏玛追。R本人自食惡果不足惜舔痕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伯复,春花似錦慨代、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叮雳,卻和暖如春想暗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帘不。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工说莫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寞焙。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓储狭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捣郊。 傳聞我的和親對象是個(gè)殘疾皇子辽狈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

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