【轉(zhuǎn)載】【R高級教程】專題一:表達譜芯片的聚類分析

【在國際上洼冻,R軟件的應(yīng)用是數(shù)據(jù)分析的主流發(fā)展趨勢之一瞧毙,但我發(fā)現(xiàn)在國內(nèi)R軟件的使用遠不如SPSS、SAS等軟件那么流行秦爆。為推廣R軟件的使用序愚,本博客將陸續(xù)推出“R高級教程”系列專輯,希望對生命科學(xué)領(lǐng)域的科技工作者有少許幫助......】

通常來講等限,對于一般的統(tǒng)計分析爸吮,基于傻瓜式操作的SPSS(PASW)軟件已經(jīng)足夠,但在涉及個性化要求很高的復(fù)雜數(shù)據(jù)處理時望门,SPSS就開始顯得力不從心形娇,這時必須依賴功能更為強大的SAS等軟件。以前在自己的科研過程中分析數(shù)據(jù)多用SPSS筹误、SAS等埂软。在統(tǒng)計遺傳和基因組學(xué)領(lǐng)域,SAS可以處理很多問題,但與此同時勘畔,SAS實現(xiàn)復(fù)雜問題過于麻煩所灸,很多問題SAS也不是首選。后來開始運用R環(huán)境中的各種免費統(tǒng)計包炫七,特別是Bioconductor的系列分析包爬立,我發(fā)覺非常適合生命科學(xué)領(lǐng)域的研究者。R有很多優(yōu)點:

(1)免費万哪,不需要去尋找破解版侠驯,不用擔(dān)心版權(quán)問題,使用非常方便奕巍;

(2)功能非常強大吟策,單個包的功能比較有限,但多個包組合起來使用則功能無比強大的止,遠勝于SPSS檩坚、SAS等;

(3)源代碼開放诅福,稍作修改后就能滿足個性化的復(fù)雜統(tǒng)計分析匾委,滿足個性化需求是R的最大特點之一;

(4)程序閱讀容易氓润,再加上參考學(xué)習(xí)資料很多赂乐,上手比較容易,提高也不是很難咖气,根據(jù)個人經(jīng)驗挨措,要比SAS高級階段的進階容易許多;

(5)國際同行高度認同R崩溪,我發(fā)現(xiàn)很多專用軟件都開發(fā)了軟件的R版运嗜,今后R將是數(shù)據(jù)分析的主流發(fā)展方向。

R軟件的安裝悯舟、基本使用等初級教程就不談了,隨便在官方網(wǎng)站找個學(xué)習(xí)資料就搞定了砸民〉衷酰“R系列”專輯擬推出中級、高級分析教程岭参。今天推出基因表達譜芯片的聚類分析專題反惕。

本專題示例芯片數(shù)據(jù)來自GEO數(shù)據(jù)庫中檢索號為GSE11787(http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE11787)的Affymetrix芯片的CEL文件,共6個CEL文件演侯,3個正常對照組姿染,3個HPS刺激組,為免疫器官脾臟的表達數(shù)據(jù)

(一)原始數(shù)據(jù)的讀入悬赏、RNA降解評估和標(biāo)準(zhǔn)化

>?pd <- read.AnnotatedDataFrame("Target.txt",header=TRUE,row.names=1,as.is=TRUE)

>rawAffyData <- ReadAffy(filenames=pData(pd)$FileName, phenoData=pd)

> summary(exprs(rawAffyData))

> deg <- AffyRNAdeg(rawAffyData)

>plotAffyRNAdeg(deg, col=c(1,2,3,4,5,6))

> eset <- rma(rawAffyData)

> summary(exprs(eset))

> op <- par(mfrow=c(1,2))

>cols <- brewer.pal(6, "Set3")

>boxplot(rawAffyData,col=cols,names=1:6, main = "unnormalized.data")

>boxplot(data.frame(exprs(eset)) ,names=1:6, main = "normalization.data", col="blue", border="brown")

>par(op)

(二)聚類分析

原始數(shù)據(jù)讀入狡汉,經(jīng)AffyBatch目標(biāo)轉(zhuǎn)成ExpressionSet目標(biāo)后,為提高后續(xù)分析(如差異表達基因的檢測)的統(tǒng)計功效闽颇,往往需要進一步經(jīng)過Detection Call Filter和IQR filter等過濾(“基因芯片數(shù)據(jù)的特異性過濾與非特異性過濾”將在另一專題里專門討論)盾戴。

需要說明的是,常規(guī)做法是先篩選出差異表達基因兵多,然后只用差異表達基因進行聚類分析(本示例直接用了過濾后的數(shù)據(jù)集尖啡,聚類圖的效果稍差一點)。

(1)樣本聚類

>dd <- dist2(log2(exprs(eset2)))

>diag(dd) <- 0

>dd.row <- as.dendrogram(hclust(as.dist(dd)))

>row.ord <- order.dendrogram(dd.row)

>library("latticeExtra")

>legend <- list(top = list(fun = dendrogramGrob,

args = list(x = dd.row, side = "top")))

>lp <- levelplot(dd[row.ord, row.ord],

scales = list(x = list(rot = 90)),

xlab = "", ylab = "", legend = legend)

>plot(lp)

(2)二維聚類

>source("http://faculty.ucr.edu/~tgirke/Documents/R_BioCond/My_R_Scripts/my.colorFct.R")

>mydata<-exprs(eset2)

>mydatascale <- t(scale(t(mydata)))

>hr <- hclust(as.dist(1-cor(t(mydatascale), method="pearson")), method="complete")

>hc <- hclust(as.dist(1-cor(mydatascale, method="spearman")), method="complete")

>heatmap.2(mydata, Rowv=as.dendrogram(hr), Colv=as.dendrogram(hc), col=redgreen(75), scale="row", ColSideColors=heat.colors(length(hc$labels)), RowSideColors=heat.colors(length(hr$labels)), trace="none", key=T)

上述聚類圖一般和論文里的聚類圖有點不同剩膘,聚類的模式不太直觀衅斩,你也可以用下面的語句進行更直觀的作圖:

>mycl <- cutree(hr, h=max(hr$height)/1.5);

>mycolhc <- sample(rainbow(256));mycolhc <- mycolhc[as.vector(mycl)]

>myc2 <- cutree(hc, h=max(hc$height)/1.5); mycolhr <- sample(rainbow(256)); mycolhr <- mycolhr[as.vector(myc2)]

>heatmap(mydatascale, Rowv=as.dendrogram(hr), Colv=as.dendrogram(hc), col=my.colorFct(), scale="row", ColSideColors=mycolhr, RowSideColors=mycolhc)

(3)MantelCorrs聚類程序

>kmeans.result <- GetClusters(eset2, 500, 100)

>x=exprs(eset2)

>DistMatrices.result <- DistMatrices(x, kmeans.result$clusters)

>MantelCorrs.result <- MantelCorrs(DistMatrices.result$Dfull,DistMatrices.result$Dsubsets)

>permuted.pval <- PermutationTest(DistMatrices.result$Dfull, DistMatrices.result$Dsubsets,100, 16, 0.05)

>ClusterLists <- ClusterList(permuted.pval, kmeans.result$cluster.sizes,MantelCorrs.result)

>ClusterGenes <- ClusterGeneList(kmeans.result$clusters, ClusterLists$SignificantClusters,eset2)

>h=hclust(dist(MantelCorrs.result))

>plot(h)

【注:除Bioconductor圖標(biāo)外,所有圖片均為軟件實際運行所得】

本文引用地址:http://blog.sciencenet.cn/blog-295006-394794.html此文來自科學(xué)網(wǎng)朱猛進博客怠褐,轉(zhuǎn)載請注明出處畏梆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惫搏,隨后出現(xiàn)的幾起案子具温,更是在濱河造成了極大的恐慌,老刑警劉巖筐赔,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣猩,死亡現(xiàn)場離奇詭異,居然都是意外死亡茴丰,警方通過查閱死者的電腦和手機辜昵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門旗国,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事捉偏。” “怎么了根穷?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵柏靶,是天一觀的道長。 經(jīng)常有香客問我溜哮,道長滔金,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任茂嗓,我火速辦了婚禮餐茵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘述吸。我一直安慰自己忿族,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著道批,像睡著了一般错英。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屹徘,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天走趋,我揣著相機與錄音,去河邊找鬼噪伊。 笑死簿煌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鉴吹。 我是一名探鬼主播姨伟,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼豆励!你這毒婦竟也來了夺荒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤良蒸,失蹤者是張志新(化名)和其女友劉穎技扼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫩痰,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡剿吻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了串纺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丽旅。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纺棺,靈堂內(nèi)的尸體忽然破棺而出榄笙,到底是詐尸還是另有隱情,我是刑警寧澤祷蝌,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布茅撞,位于F島的核電站,受9級特大地震影響巨朦,放射性物質(zhì)發(fā)生泄漏米丘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一罪郊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尚洽,春花似錦悔橄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挣柬。三九已至,卻和暖如春睛挚,著一層夾襖步出監(jiān)牢的瞬間邪蛔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工扎狱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侧到,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓淤击,卻偏偏與公主長得像匠抗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子污抬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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