#http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2881355/
一致聚類方法,采用重抽樣方法來驗證聚類合理性。
library(ALL)
data(ALL)
d=exprs(ALL)
d[1:5,1:5]
#對上面這個芯片表達數據我們一般會簡單的進行normalization (本次采用中位數中心化),然后取在各個樣品差異很大的那些gene或者探針的數據來進行聚類分析
mads=apply(d,1,mad)# mad(x) 絕對中位數差 按行(1)取d數據的中位數
d=d[rev(order(mads))[1:5000],]
#去除前5000個數據
d = sweep(d,1, apply(d,1,median,na.rm=T))
#按行減去中位數,r語言中使用sweep(x, MARGIN, STATS, FUN="-", ...) 對矩陣進行運算。MARGIN為1,表示行的方向上進行運算,
#為2表示列的方向上運算。STATS是運算的參數。FUN為運算函數,默認是減法。
library(ConsensusClusterPlus)
title=tempdir()
results = ConsensusClusterPlus(d,maxK=6,reps=50,pItem=0.8,pFeature=1,
clusterAlg="hc",distance="pearson",seed=1262118388.71279,plot="png")
#聚類數目K=2,3,4,·····6,采用重抽樣方案對樣本的80%抽樣,經過多次采樣,找到穩定可靠的亞組分類。
然后利用這些有類標簽的樣本來尋找可以將樣本分類的標簽基因。可以利用PAM方法找尋標簽基因。
#results[[2]] is theresults result of k=2
results[[4]][["consensusMatrix"]][1:5,1:5]
results[[2]][["consensusTree"]]
results[[2]][["consensusClass"]][1:5]
icl = calcICL(results,title=title,plot="png")
icl[["clusterConsensus"]]
icl[["itemConsensus"]][1:5,]
生成的圖片類似: