生物信息學/ConsensusClusterPlus

ConsensusClusterPlus 包對基因表達數據進行一致性聚類 編輯

Consensus Clustering(一致性聚類)是一種無監督聚類方法,是一種常見的癌症亞型分類研究方法(如乳腺癌中的PAM50),可根據不同組學數據集將樣本區分成幾個亞型,從而發現新的疾病亞型或者對不同亞型進行比較分析(Justification for using consensus clustering(wiki))。就是用來發現新的疾病亞型,或者對不同亞型進行比較和分析。這類文章一般會對基因表達量(芯片數據或者RNA-seq數據)或甲基化等數據進行聚類分析,選出最優聚類數;對聚出的類組進行差異化表達分析得到DEGs,差異表達基因做GO、pathway,PPI等一系列分析,在分析一下與生存的關係、免疫細胞豐度的區別,等等。找出了分之間免疫細胞有區別、生存有區別,一篇揭示XX癌免疫應答異質性的文章就來了。

Consensus Clustering的思路是:採用重抽樣方法抽取一定樣本的數據集,指定聚類數目k並計算不同聚類數目下的合理性(PAC方法)

Consensus Clustering 的基本原理假設:從原數據集不同的子類中提取出的樣本構成一個新的數據集,並且從同一個子類中有不同的樣本被提取出來,那麼在新數據集上聚類分析之後的結果,無論是聚類的數目還是類內樣本都應該和原數據集相差不大。因此所得到的聚類相對於抽樣變異越穩定,我們越可以相信這一樣的聚類代表了一個真實的子類結構。重採樣的方法可以打亂原始數據集,這樣對每一次重採樣的樣本進行聚類分析然後再綜合評估多次聚類分析的結果給出一致性(Consensus)的評估。總結,一致聚類通過基於重採樣的方法來驗證聚類合理性,其主要目的是評估聚類的穩定性,可用於確定最佳的聚類數目K。。

相比其他聚類方法一致性聚類的優勢:

  • 不能提供「客觀的」分類數目的標準和分類邊界,例如Hierarchical Clustering。
  • 需要預先給定一個分類的數目,且沒有統一的標準去比較不同分類數目下分類的結果,例如K-means Clustering。
  • 聚類結果的合理性和可靠性無法驗證。

R包:https://www.bioconductor.org/packages/release/bioc/html/ConsensusClusterPlus.html

ConsensusClusterPlus 方法用於一致性聚類 編輯

ConsensusClusterPlus(d=NULL, maxK = 3, reps=10, pItem=0.8, 
              pFeature=1, clusterAlg="hc",
              title="untitled_consensus_cluster",
              innerLinkage="average", 
              finalLinkage="average", 
              distance="pearson", ml=NULL,
              tmyPal=NULL,seed=NULL,
              plot=NULL,writeTable=FALSE,weightsItem=NULL,
              weightsFeature=NULL,verbose=F,corUse="everything")

常用參數:

d 提供的需要聚類的數據矩陣,其中列是樣本,行是features,可以是基因表達矩陣。
maxK 聚類結果中分類的最大數目,必須是整數。
reps 重抽樣的次數
pItem 樣品的抽樣比例,如 pItem=0.8 表示採用重抽樣方案對樣本的80%抽樣,經過多次採樣,找到穩定可靠的亞組分類。
pFeature Feature的抽樣比例
clusterAlg 使用的聚類算法,「hc」用於層次聚類,「pam」用於PAM(Partioning Around Medoids)算法,「km」用於K-Means算法,也可以自定義函數。
title 設置生成的文件的路徑
distance 計算距離的方法,有pearson、spearman、euclidean、binary、maximum、canberra、minkowski。
tmyPal 可以指定一致性矩陣使用的顏色,默認使用白-藍色
seed 設置隨機種子。
plot 不設置時圖片結果僅輸出到屏幕,也可以設置輸出為'pdf', 'png', 'pngBMP' 。
writeTable 若為TRUE,則將一致性矩陣、ICL、log輸出到CSV文件
weightsItem 樣品抽樣時的權重
weightsFeature Feature抽樣時的權重
verbose 若為TRUE,可輸出進度信息在屏幕上
corUse 設置如何處理缺失值:

all.obs:假設不存在缺失數據——遇到缺失數據時將報錯

everything:遇到缺失數據時,相關係數的計算結果將被設為missing

complete.obs:行刪除

pairwise.complete.obs:成對刪除,pairwisedeletion

calcICL函數 編輯

用法:

calcICL(res,title="untitled_consensus_cluster",plot=NULL,writeTable=FALSE)

參數:

res consensusClusterPlus的結果
title 設置生成的文件的路徑
plot 不設置時圖片結果僅輸出到屏幕,也可以設置輸出為'pdf', 'png', 'pngBMP' 。
writeTable 若為TRUE,則將一致性矩陣、ICL、log輸出到CSV文件

結果展示與說明 編輯

圖見:https://www.bioconductor.org/packages/release/bioc/vignettes/ConsensusClusterPlus/inst/doc/ConsensusClusterPlus.pdf


(1)k = 2, 3, 4, 5, 6 時的矩陣熱圖:矩陣的行和列表示的都是樣本,一致性矩陣的值按從0(不可能聚類在一起)到1(總是聚類在一起)用白色到深藍色表示,一致性矩陣按照一致性分類(熱圖上方的樹狀圖)來排列。樹狀圖和熱圖之間的長條即分出來的類別。注意第一張為圖例;

(2)一致性累積分布函數(CDF)圖:此圖展示了k取不同數值時的累積分布函數,用於判斷當k取何值時,CDF達到一個近似最大值,此時的聚類分析結果最可靠。即考慮CDF下降坡度小的k值。

(3)Delta Area Plot:此圖展示的是 k 和 k-1 相比CDF曲線下面積的相對變化。當k=2時,因為沒有k=1,所以第一個點表示的是k=2時CDF曲線下總面積,而非面積的相對變化值。當k=6時,曲線下面積僅小幅增長,故5為合適的k值。

計算聚類一致性 (cluster-consensus) 和樣品一致性 (item-consensus) 編輯

(1)Tracking Plot:此圖下方的黑色條紋表示樣品,展示的是樣品在k取不同的值時,歸屬的分類情況,不同顏色的色塊代表不同的分類。取不同k值前後經常改變顏色分類的樣品代表其分類不穩定。若分類不穩定的樣本太多,則說明該k值下的分類不穩定。

(2)Cluster-Consensus Plot:此圖展示的是不同k值下,每個分類的cluster-consensus value(該簇中成員pairwise consensus values的均值)。該值越高(低)代表穩定性越高(低)。可用於判斷同一k值下以及不同k值之間cluster-consensus value的高低。

(3)item-Consensus Plot:縱坐標代表Item-consensus values。k值不同時,每個樣本都會有一個對應不同簇的item-consensus values。豎條代表每一個樣本,豎條的高度代表該樣本的總item-consensus values。每個樣本的上方都有一個小叉叉,小叉叉的顏色代表該樣本被分到了哪一簇。從這張圖,可以看到每個樣本的分類是否足夠「純淨」,從而幫助決定k值,例如當k=6時,樣本的分類變得沒有那麼純淨,說明k=5才是合適的。

參考文獻 編輯

Wilkerson, D. M, Hayes, Neil D (2010). 「ConsensusClusterPlus: a class discovery tool with confidence assessments and item tracking.」 Bioinformatics, 26(12), 1572-1573. http://bioinformatics.oxfordjournals.org/content/26/12/1572.abstract.