Pheatmap怎樣繪制熱圖,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、西工網(wǎng)絡(luò)推廣、成都小程序開發(fā)、西工網(wǎng)絡(luò)營(yíng)銷、西工企業(yè)策劃、西工品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供西工建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
隨機(jī)生成,10個(gè)基因,每個(gè)基因4個(gè)處理,每個(gè)處理3個(gè)平行,表達(dá)量RPKM值在1-120之間,矩陣第一個(gè)RPKM數(shù)值為250:
> library(pheatmap)
> data <- matrix(runif(120,0,120),ncol=12)
> data[1] <- 250
> colnames(data) <- c(paste0('tr_1_',seq(1,3)),paste0('tr_2',seq(1,3)),paste0('tr_3',seq(1,3)),paste0('tr_4',seq(1,3)))
> rownames(data) <- c(paste0('gene',seq(1,10)))
運(yùn)行過程生成matrix和圖片:
利用border_color參數(shù)修改邊界顏色:
>pheatmap(data,border_color = "blue")
> pheatmap(data,border_color = "red")
> pheatmap(data,border_color = "pink")
> pheatmap(data,border_color = "green")
colorRampPalette參數(shù)的使用:
> colors <- colorRampPalette(c("blue", "red"))(5)#顏色從藍(lán)色到紅色漸變色,5表示長(zhǎng)度為5的顏色梯度
> colors
[1] "#0000FF" "#3F00BF" "#7F007F" "#BF003F" "#FF0000"
> pheatmap(data,border_color = "yellow",color=colorRampPalette(c('#00ff00','white','#EE0000'))(100))
運(yùn)行結(jié)果如下:
scale參數(shù)的使用:
scale是指對(duì)數(shù)值進(jìn)行均一化處理,在基因表達(dá)量的數(shù)據(jù)中,有些基因表達(dá)量極低,有些基因表達(dá)量極高,因此把每個(gè)基因在不同處理和重復(fù)中的數(shù)據(jù)轉(zhuǎn)換為平均值為0,方差為1的數(shù)據(jù),可以看出每個(gè)基因在某個(gè)處理和重復(fù)中表達(dá)量是高還是低。
“row”、“colume”、“none”分別表示對(duì)成行或成列的進(jìn)行均一化,或不做均一化,一般數(shù)據(jù)處理中基因的表達(dá)量做均一化處理,選擇“row”
> pheatmap(data,border_color = "yellow",color = colorRampPalette(c('pink','blue'))(100),scale='row')
參數(shù):cluster_rows/cluster_cols和cellwidth/cellheight
對(duì)基因的順序進(jìn)行聚類,因此可使用cluster_rows/cluster_col來修改;同時(shí)可以使用cellwidth/cellheight對(duì)每個(gè)單元方塊的大小進(jìn)行設(shè)置:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20)
參數(shù):legend/legend_breaks/legend_labels
使用legend閾值邏輯值來對(duì)色度條進(jìn)行隱藏,以及對(duì)色度條上對(duì)應(yīng)位置的字符進(jìn)行修改:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'))
運(yùn)行結(jié)果如下:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend=FALSE,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'))
參數(shù):gaps_row/gaps_col、cutree_rows/cutree_cols和treeheight_row/treeheight_col
cutree_rows按聚類分割,如cutree_rows=2,把基因表達(dá)量聚類分成2類;gaps_col=c(3,6,9)不能聚類,把重復(fù)都分開。gaps_XX對(duì)行或列進(jìn)行分割,就不應(yīng)對(duì)相應(yīng)的行或列進(jìn)行聚類;treeheight_row參數(shù)改變聚類的支長(zhǎng)長(zhǎng)度:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend=FALSE,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,gaps_col = c(3,6,9),treeheight_row = 10)
參數(shù):annotation_row/annotation_col、annotation_colors、annotation_legend和annotation_names_row/annotation_names_col
利用annotation_col參數(shù),給各個(gè)處理添加一個(gè)顏色標(biāo)簽;
利用annotation_colors對(duì)標(biāo)簽的顏色進(jìn)行修改;
利用annotation_legend設(shè)置是否顯示標(biāo)簽注釋條;
利用annotation_names_col設(shè)置是否顯示標(biāo)簽名稱。
>annotation_col=data.frame(treat=factor(rep(paste0('T',1:4),each=3)),class=factor(rep(paste0('class',1:2),each=6)))
>ann_color=list(a=c(T1='yellow',T2='#757083',T3='firebrick',T4='#66A61E'),b=c(class1='blue',class2='#1B9E77'))
> row.names(annotation_col)=colnames(data)
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,gaps_col = c(3,6,9),treeheight_row = 10,annotation_col=annotation_col,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE)
運(yùn)行過程中產(chǎn)生數(shù)據(jù)與圖:
annotation_col:
參數(shù):display_numbers、number_format、number_color和fontsize_number
利用display_numbers參數(shù)可以在每個(gè)單元框內(nèi)顯示每個(gè)方框?qū)τ诘臄?shù)據(jù),其中有三個(gè)選項(xiàng),TRUE、FALSE以所對(duì)應(yīng)的數(shù)據(jù),如果設(shè)置display_numbers=T,這顯示做了均一化的數(shù)據(jù)(如果之前使用過scale參數(shù)),設(shè)置display_numbers=data,則表示為直接顯示原始數(shù)據(jù),即可直接顯示出RPKM值在單元格中;
number_color顧名思義就是這是設(shè)置顯示數(shù)據(jù)的顏色了
fontsize_number則為顯示每個(gè)數(shù)據(jù)的大??;
利用number_format可以設(shè)置保留小數(shù)位數(shù)或者字符串格式(如%.2f),但僅有在display_numbers=T時(shí)才能使用,很雞肋,因此不建議使用該參數(shù),而我們一般是直接顯示RPKM值,所以我們需要之前對(duì)數(shù)據(jù)集進(jìn)行保留小數(shù)處理,不然數(shù)據(jù)顯示會(huì)超出單元格
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,treeheight_row = 10,annotation_col=A,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE,display_numbers = TRUE,number_color = 'red',fontsize_number = 8,number_format = "%.2f")
運(yùn)行結(jié)果如下:
參數(shù):show_rownames/show_colnames、fontsize_col/fontsize_row、fontsize和main
show_rownames表示是否顯示gene名稱,用邏輯值設(shè)置,fontsize_col設(shè)置橫坐標(biāo)名稱的大小,fontsize則是設(shè)置所有除主圖以外的標(biāo)簽的大小,利用main設(shè)置熱圖的名稱,如:
>pheatmap(data,border_color='yellow',color=colorRampPalette(c('pink','blue'))(100),scale='row',cluster_cols = FALSE,cellwidth = 20,cellheight = 20,legend_breaks = c(-2.5,0,2.5),legend_labels = c('>=-2.5','0','2.5'),cutree_rows = 2,treeheight_row = 10,annotation_col=A,annotation_legend=TRUE,annotation_colors=ann_color,annotation_names_col=TRUE,display_numbers = TRUE,number_color = 'red',fontsize_number = 8,number_format = "%.2f",show_rownames = FALSE,fontsize_col = 15,fontsize=5,main = "heatmap test 2")
看完上述內(nèi)容,你們掌握Pheatmap怎樣繪制熱圖的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!