您好,登錄后才能下訂單哦!
今天小編給大家分享一下R語言如何實現(xiàn)一致性聚類的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
ConsensusClusterPlus 包對基因表達(dá)數(shù)據(jù)進(jìn)行一致性聚類
Consensus Clustering(一致性聚類)是一種無監(jiān)督聚類方法,是一種常見的癌癥亞型分類研究方法,可根據(jù)不同組學(xué)數(shù)據(jù)集將樣本區(qū)分成幾個亞型,從而發(fā)現(xiàn)新的疾病亞型或者對不同亞型進(jìn)行比較分析。這類文章一般會對基因表達(dá)量(芯片數(shù)據(jù)或者RNA-seq數(shù)據(jù))或甲基化等數(shù)據(jù)進(jìn)行聚類分析,選出最優(yōu)聚類數(shù);對聚出的類組進(jìn)行差異化表達(dá)分析得到DEGs,差異表達(dá)基因做GO、pathway,PPI等一系列分析,在分析一下與生存的關(guān)系、免疫細(xì)胞豐度的區(qū)別,等等。
Consensus Clustering 的基本原理假設(shè):從原數(shù)據(jù)集不同的子類中提取出的樣本構(gòu)成一個新的數(shù)據(jù)集,并且從同一個子類中有不同的樣本被提取出來,那么在新數(shù)據(jù)集上聚類分析之后的結(jié)果,無論是聚類的數(shù)目還是類內(nèi)樣本都應(yīng)該和原數(shù)據(jù)集相差不大。因此所得到的聚類相對于抽樣變異越穩(wěn)定,我們越可以相信這一樣的聚類代表了一個真實的子類結(jié)構(gòu)。重采樣的方法可以打亂原始數(shù)據(jù)集,這樣對每一次重采樣的樣本進(jìn)行聚類分析然后再綜合評估多次聚類分析的結(jié)果給出一致性(Consensus)的評估??偨Y(jié),一致聚類通過基于重采樣的方法來驗證聚類合理性,其主要目的是評估聚類的穩(wěn)定性,可用于確定最佳的聚類數(shù)目K。
相比其他聚類方法一致性聚類的優(yōu)勢:
不能提供“客觀的”分類數(shù)目的標(biāo)準(zhǔn)和分類邊界,例如Hierarchical Clustering。
需要預(yù)先給定一個分類的數(shù)目,且沒有統(tǒng)一的標(biāo)準(zhǔn)去比較不同分類數(shù)目下分類的結(jié)果,例如K-means Clustering。
聚類結(jié)果的合理性和可靠性無法驗證。
R實現(xiàn)一致性聚類
ConsensusClusterPlus則將Consensus Clustering在 R 中實現(xiàn)了。
#安裝包
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("ConsensusClusterPlus")
主要方法:
(1)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")
常用參數(shù):
d | 提供的需要聚類的數(shù)據(jù)矩陣,其中列是樣本,行是features,可以是基因表達(dá)矩陣。 |
maxK | 聚類結(jié)果中分類的最大數(shù)目,必須是整數(shù)。 |
reps | 重抽樣的次數(shù) |
pItem | 樣品的抽樣比例,如 pItem=0.8 表示采用重抽樣方案對樣本的80%抽樣,經(jīng)過多次采樣,找到穩(wěn)定可靠的亞組分類。 |
pFeature | Feature的抽樣比例 |
clusterAlg | 使用的聚類算法,“hc”用于層次聚類,“pam”用于PAM(Partioning Around Medoids)算法,“km”用于K-Means算法,也可以自定義函數(shù)。 |
title | 設(shè)置生成的文件的路徑 |
distance | 計算距離的方法,有pearson、spearman、euclidean、binary、maximum、canberra、minkowski。 |
tmyPal | 可以指定一致性矩陣使用的顏色,默認(rèn)使用白-藍(lán)色 |
seed | 設(shè)置隨機種子。 |
plot | 不設(shè)置時圖片結(jié)果僅輸出到屏幕,也可以設(shè)置輸出為'pdf', 'png', 'pngBMP' 。 |
writeTable | 若為TRUE,則將一致性矩陣、ICL、log輸出到CSV文件 |
weightsItem | 樣品抽樣時的權(quán)重 |
weightsFeature | Feature抽樣時的權(quán)重 |
verbose | 若為TRUE,可輸出進(jìn)度信息在屏幕上 |
corUse | 設(shè)置如何處理缺失值: all.obs:假設(shè)不存在缺失數(shù)據(jù)——遇到缺失數(shù)據(jù)時將報錯 everything:遇到缺失數(shù)據(jù)時,相關(guān)系數(shù)的計算結(jié)果將被設(shè)為missing complete.obs:行刪除 pairwise.complete.obs:成對刪除,pairwisedeletion |
(2)calcICL函數(shù):
用法:
calcICL(res,title="untitled_consensus_cluster",plot=NULL,writeTable=FALSE)
參數(shù):
res | consensusClusterPlus的結(jié)果 |
title | 設(shè)置生成的文件的路徑 |
plot | 不設(shè)置時圖片結(jié)果僅輸出到屏幕,也可以設(shè)置輸出為'pdf', 'png', 'pngBMP' 。 |
writeTable | 若為TRUE,則將一致性矩陣、ICL、log輸出到CSV文件 |
首先收集用于聚類分析的數(shù)據(jù),比如 mRNA 表達(dá)微陣列或免疫組織化學(xué)染色強度的實驗結(jié)果數(shù)據(jù)。輸入數(shù)據(jù)的格式應(yīng)為矩陣。下面以 ALL 基因表達(dá)數(shù)據(jù)為例進(jìn)行操作。
##使用ALL示例數(shù)據(jù)library(ALL)data(ALL)d=exprs(ALL)d[1:5,1:5] #共128個樣品,12625個探針數(shù)據(jù) # 01005 01010 03002 04006 04007# 1000_at 7.597323 7.479445 7.567593 7.384684 7.905312# 1001_at 5.046194 4.932537 4.799294 4.922627 4.844565# 1002_f_at 3.900466 4.208155 3.886169 4.206798 3.416923# 1003_s_at 5.903856 6.169024 5.860459 6.116890 5.687997# 1004_at 5.925260 5.912780 5.893209 6.170245 5.615210 ##對這個芯片表達(dá)數(shù)據(jù)進(jìn)行簡單的normalization,取在各個樣品差異很大的那些gene或者探針的數(shù)據(jù)來進(jìn)行聚類分析mads=apply(d,1,mad) #計算每個基因的標(biāo)準(zhǔn)差d=d[rev(order(mads))[1:5000],] #sweep函數(shù)減去中位數(shù)進(jìn)行標(biāo)準(zhǔn)化d = sweep(d,1, apply(d,1,median,na.rm=T))#也可以對這個d矩陣用DESeq的normalization 進(jìn)行歸一化,取決于具體情況
聚類分析
title="F:/ConsensusClusterPlus" #設(shè)置圖片輸出路徑results <- ConsensusClusterPlus(dataset, maxK = 6, reps = 50, pItem = 0.8, pFeature = 0.8, clusterAlg = "hc", seed=100, distance = "pearson", title = title, plot = "png") #結(jié)果將會輸出k從2-6各個情況下的分型情況,聚類的方法用的是 hc ,抽樣比例為0.8,最后輸出png圖#這里設(shè)置的maxK=6、reps=50,但是實際上需要更高的reps(如1000)和更高的maxK(如20)
結(jié)果展示與說明;
(1)k = 2, 3, 4, 5, 6 時的矩陣熱圖:矩陣的行和列表示的都是樣本,一致性矩陣的值按從0(不可能聚類在一起)到1(總是聚類在一起)用白色到深藍(lán)色表示,一致性矩陣按照一致性分類(熱圖上方的樹狀圖)來排列。樹狀圖和熱圖之間的長條即分出來的類別。注意第一張為圖例;
(2)一致性累積分布函數(shù)(CDF)圖:此圖展示了k取不同數(shù)值時的累積分布函數(shù),用于判斷當(dāng)k取何值時,CDF達(dá)到一個近似最大值,此時的聚類分析結(jié)果最可靠。即考慮CDF下降坡度小的k值。
(3)Delta Area Plot:此圖展示的是 k 和 k-1 相比CDF曲線下面積的相對變化。當(dāng)k=2時,因為沒有k=1,所以第一個點表示的是k=2時CDF曲線下總面積,而非面積的相對變化值。當(dāng)k=6時,曲線下面積僅小幅增長,故5為合適的k值。
分類樹及結(jié)果:
results[[2]][["consensusTree"]] # Call:# hclust(d = as.dist(1 - fm), method = finalLinkage)# # Cluster method : average # Number of objects: 128 results[[2]][["consensusClass"]][1:5] # 01005 01010 03002 04006 04007 # 1 1 1 1 1
以上就是“R語言如何實現(xiàn)一致性聚類”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。