介紹
一致性聚類是一種為確定數(shù)據(jù)集中可能的聚類的數(shù)量和成員提供定量證據(jù)的方法茧痒,例如作為微陣列基因表達(dá)融蹂。這種方法在癌癥基因組學(xué)中得到了廣泛應(yīng)用超燃,在那里發(fā)現(xiàn)了新的疾病分子亞類。
一致性聚類方法包括從一組項(xiàng)目中進(jìn)行次抽樣意乓,例如微陣列,并確定特定簇計(jì)數(shù)(k)的簇。然后伙窃,對共識值样漆,兩個(gè)項(xiàng)目占在同一子樣本中發(fā)生的次數(shù)中有相同的聚類,計(jì)算并存儲(chǔ)在每個(gè)k的對稱一致矩陣中放祟。
ConsensusClusterPlus
是我見過比較簡單的包了跪妥,基本上只有一步就可以對基因進(jìn)行聚類。
對于這類算法我們比較頭疼的是K值的確定眉撵,可以使用一些其他算法輔助K值的確定。
代碼
首先導(dǎo)入數(shù)據(jù)并進(jìn)行預(yù)處理罐韩,之后一步ConsensusClusterPlus
函數(shù)出圖
##使用ALL示例數(shù)據(jù)
library(ALL)
data(ALL)
d=exprs(ALL)
d[1:5,1:5]
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
#篩選前5000標(biāo)準(zhǔn)差的基因
mads=apply(d,1,mad)
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))
#一步完成聚類
library(ConsensusClusterPlus)
title=tempdir()
results = ConsensusClusterPlus(d,maxK=6,reps=50,pItem=0.8,pFeature=1,
title=title,clusterAlg="hc",distance="pearson",seed=1262118388.71279,plot="png")
之后進(jìn)行提取基因集等后續(xù)操作,ConsensusClusterPlus的輸出是一個(gè)列表散吵,其中列表對應(yīng)于來自KTH集群的結(jié)果,例如晦款,results[[2]]是結(jié)果k=2顷锰。consensusMatrix輸出一致矩陣。
#輸出K=2時(shí)的一致性矩陣
results[[2]][["consensusMatrix"]][1:5,1:5]
[,1] [,2] [,3] [,4] [,5]
[1,] 1.0000000 1.0000000 0.8947368 1.0000000 1.000000
[2,] 1.0000000 1.0000000 0.9142857 1.0000000 1.000000
[3,] 0.8947368 0.9142857 1.0000000 0.8857143 0.969697
[4,] 1.0000000 1.0000000 0.8857143 1.0000000 1.000000
[5,] 1.0000000 1.0000000 0.9696970 1.0000000 1.000000
#hclust選項(xiàng)
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
#計(jì)算聚類一致性 (cluster-consensus) 和樣品一致性 (item-consensus)
icl <- calcICL(results, title = title,
plot = "png")
## 返回了具有兩個(gè)元素的list肛宋,然后分別查看一下
dim(icl[["clusterConsensus"]])
[1] 20 3
icl[["clusterConsensus"]]
dim(icl[["itemConsensus"]])
[1] 2560 4
icl[["itemConsensus"]][1:5,]
部分結(jié)果展示