pheatmap|暴雨暫歇学少,“熱圖”來襲<舾觥!版确!

熱圖可以聚合大量的數(shù)據(jù)扣囊,并可以用一種漸進(jìn)色來優(yōu)雅地表現(xiàn),可以很直觀地展現(xiàn)數(shù)據(jù)的疏密程度或頻率高低阀坏。

本文利用R語(yǔ)言?pheatmap包從頭開始繪制各種漂亮的熱圖如暖。參數(shù)像積木,拼湊出你最喜歡的熱圖即可忌堂,如下圖:

?????基因和樣本都可以單獨(dú)聚類盒至,排序,聚類再分組,行列注釋枷遂,配色調(diào)整樱衷,調(diào)整聚類線以及單元格的寬度和高度均可實(shí)現(xiàn)。

載入數(shù)據(jù)酒唉,R包

#R包library(pheatmap)# 構(gòu)建測(cè)試數(shù)據(jù) set.seed(1234)test = matrix(rnorm(200),20,10)test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] +3test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] +2test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] +4colnames(test) = paste("Test",1:10, sep ="")rownames(test) = paste("Gene",1:20, sep ="")head(test[,1:6])

繪制熱圖

繪制默認(rèn)熱圖

pheatmap(test)

基本參數(shù)

# scale = "row"參數(shù)對(duì)行進(jìn)行歸一化

# clustering_method參數(shù)設(shè)定不同聚類方法矩桂,默認(rèn)為"complete",可以設(shè)定為'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'

pheatmap(test,scale ="row", clustering_method ="average")

#表示行聚類使用皮爾森相關(guān)系數(shù)聚類,默認(rèn)為歐氏距離"euclidean"

pheatmap(test, scale ="row", clustering_distance_rows ="correlation")

#行 列是否聚類痪伦,cluster_row ,cluster_col

pheatmap(test, cluster_row =FALSE,cluster_col =TRUE)

# treeheight_row和treeheight_col參數(shù)設(shè)定行和列聚類樹的高度侄榴,默認(rèn)為50

pheatmap(test, treeheight_row = 30, treeheight_col = 50)

# 設(shè)定cell?的大小

pheatmap(test, cellwidth = 15, cellheight = 12, fontsize = 10)

設(shè)定 text

熱圖中展示數(shù)值

# display_numbers = TRUE參數(shù)設(shè)定在每個(gè)熱圖格子中顯示相應(yīng)的數(shù)值,#number_color參數(shù)設(shè)置數(shù)值字體的顏色

pheatmap(test, display_numbers = TRUE,number_color ="blue")

# 設(shè)定數(shù)值的顯示格式

pheatmap(test, display_numbers = TRUE, number_format ="%.1e")

#設(shè)定條件式展示

pheatmap(test, display_numbers = matrix(ifelse(test> 5,"*",""), nrow(test)))

設(shè)置 legend?

設(shè)定legend展示的值

#legend_breaks參數(shù)設(shè)定圖例顯示范圍网沾,legend_labels參數(shù)添加圖例標(biāo)簽

pheatmap(test, cluster_row = FALSE, legend_breaks = -1:4, legend_labels = c("0","1e-4","1e-3","1e-2","1e-1","1"))

#去掉legend

pheatmap(test, legend = FALSE)

設(shè)定 color

自定義顏色

#colorRampPalette

pheatmap(test, color = colorRampPalette(c("navy","white","firebrick3"))(50))

# border_color參數(shù)設(shè)定每個(gè)熱圖格子的邊框色

# border=TRIUE/FALSE參數(shù)是否要邊框線

pheatmap(test, border_color ="red", border=TRUE)

設(shè)定 annotations

# 生成行 列的注釋

annotation_col = data.frame( CellType = factor(rep(c("CT1","CT2"), 5)), Time = 1:5 )rownames(annotation_col) = paste("Test", 1:10, sep ="")annotation_row = data.frame( GeneClass = factor(rep(c("Path1","Path2","Path3"), c(10, 4, 6))))rownames(annotation_row) = paste("Gene", 1:20, sep ="")

#添加列的注釋

pheatmap(test, annotation_col = annotation_col)

#添加行 列的注釋

#angle_col?改變列標(biāo)簽的角度

pheatmap(test, annotation_col = annotation_col, annotation_row = annotation_row, angle_col ="45")

# 根據(jù)聚類結(jié)果癞蚕,自定義注釋分組及顏色

ann_colors = list(Time=c("white","firebrick"),CellType=c(CT1="#1B9E77",CT2="#D95F02"),GeneClass=c(Path1="#7570B3",Path2="#E7298A",Path3="#66A61E") )pheatmap(test, annotation_col = annotation_col,annotation_row=annotation_row, annotation_colors = ann_colors, main ="Title")

設(shè)定 gap

#根據(jù)聚類結(jié)果,設(shè)定行g(shù)ap

pheatmap(test,?annotation_col =?annotation_col,?cluster_rows =?FALSE,?gaps_row =?c(10,?14))

#根據(jù)聚類結(jié)果辉哥,設(shè)定列g(shù)ap

pheatmap(test,annotation_col = annotation_col, cluster_rows = FALSE,cutree_col = 2)

#展示行或者列的label

labels_row =?c("",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"",?"Il10",?"Il15",?"Il1b")

pheatmap(test,?annotation_col =?annotation_col,?labels_row =?labels_row)

熱圖匯總

pheatmap(test,?annotation_col?=?annotation_col,?annotation_row?=?annotation_row,?annotation_colors?=?ann_colors,gaps_row?=?c(10,?14),cutree_col?=?2,main?=?"Pheatmap")

輸出結(jié)果

A = pheatmap(test, annotation_col = annotation_col, annotation_row = annotation_row, annotation_colors = ann_colors,gaps_row = c(10, 14),cutree_col = 2,main ="Pheatmap")#記錄熱圖的行排序order_row = A$tree_row$order #記錄熱圖的列排序order_col = A$tree_col$order? # 按照熱圖的順序桦山,重新排原始數(shù)據(jù)result = data.frame(test[order_row,order_col])? # 將行名加到表格數(shù)據(jù)中result?=?data.frame(rownames(result),result,check.names?=F)??colnames(result)[1]?="geneid"#result結(jié)果按照熱圖中的順序write.table(result,file="reorder.txt",row.names=FALSE,quote?=?FALSE,sep='\t')

R的當(dāng)前工作目錄下即可查看熱圖的結(jié)果。

【公眾號(hào)對(duì)話框醋旦,回復(fù) R熱圖?即可獲得上述熱圖R代碼】

更多關(guān)于生信恒水,R,Python的內(nèi)容請(qǐng)掃碼關(guān)注小號(hào)饲齐,謝謝钉凌。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市箩张,隨后出現(xiàn)的幾起案子甩骏,更是在濱河造成了極大的恐慌,老刑警劉巖先慷,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異咨察,居然都是意外死亡论熙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門摄狱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脓诡,“玉大人,你說我怎么就攤上這事媒役∽Q瑁” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵酣衷,是天一觀的道長(zhǎng)交惯。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么席爽? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任意荤,我火速辦了婚禮,結(jié)果婚禮上只锻,老公的妹妹穿的比我還像新娘玖像。我一直安慰自己,他們只是感情好齐饮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布捐寥。 她就那樣靜靜地躺著,像睡著了一般祖驱。 火紅的嫁衣襯著肌膚如雪握恳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天羹膳,我揣著相機(jī)與錄音睡互,去河邊找鬼。 笑死陵像,一個(gè)胖子當(dāng)著我的面吹牛就珠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播醒颖,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼妻怎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了泞歉?” 一聲冷哼從身側(cè)響起逼侦,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腰耙,沒想到半個(gè)月后榛丢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挺庞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年晰赞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片选侨。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掖鱼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出援制,到底是詐尸還是另有隱情戏挡,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布晨仑,位于F島的核電站褐墅,受9級(jí)特大地震影響拆檬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掌栅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一秩仆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猾封,春花似錦澄耍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至磷箕,卻和暖如春选酗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岳枷。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工芒填, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人空繁。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓殿衰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盛泡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闷祥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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