運用 R語言 pheatmap 包繪制熱圖進階部分

pheatmap包來顯示行或列的分組信息

行或列的分組注釋信息

在EXCEL中整理好樣本和物種的注釋信息,當然這個需要依據(jù)你的具體需求來確定盹愚。

對樣本的注釋信息栅迄,比如這里用到了采樣環(huán)境,和樣本分類

對樣本的注釋信息.png

對屬水平物種的屬于哪個門水平的注釋皆怕,你可以用其他方式來區(qū)分或不做注釋

物種屬水平注釋信息.png

注意:將上述的注釋信息保存為文本文件(制表符格式)毅舆,當然你可以保存為其他格式,但在R語言中需要使用不同的函數(shù)來將數(shù)據(jù)導入端逼。

導入行或列的分組注釋信息

在RStudio 中使用 read.table 函數(shù)來導入行或列的分組注釋信息

annotation_row<-read.table("phylum.txt",header=T,sep="\t",row.names=1)
# 這些需要將導入的注釋信息轉(zhuǎn)化為data.frame 格式
annotation_row <- as.data.frame(annotation_row) 
annotation_col<-read.table("樣品信息.txt",header=T,sep="\t",row.names=1)
annotation_col <- as.data.frame(annotation_col)
# 查看行或列注釋信息的導入情況朗兵,我比較喜歡view,也可以使用head函數(shù)查看前6行顶滩。
View(annotation_col)
View(annotation_row)
樣本的注釋信息.png

物種屬水平注釋信息.png

出圖查看注釋情況

注意:data.1是pheatmap包基礎(chǔ)篇中介紹過使用z-score中心化和標準化的數(shù)據(jù)余掖;
具體可以參考上一期內(nèi)容

# data.1是pheatmap包基礎(chǔ)篇中介紹過使用z-score中心化和標準化的數(shù)據(jù)
# annotation_col = annotation_col #添加列注釋信息
# annotation_row = annotation_row 添加行注釋信息
# 這里注意橫縱的注釋信息要對好,別錯了
pheatmap(data.1, annotation_col = annotation_col, annotation_row = annotation_row,
         cellwidth = 20, cellheight = 15)
注釋后出圖.png

常見報錯
Error in names(annotation_colors[[names(annotation)[i]]]) <- l :
'names' attribute [2] must be the same length as the vector [1]
如果出圖出現(xiàn)這個報錯,一般是橫縱注釋信息數(shù)量不一致盐欺,應該是你橫縱注釋信息放錯位置了赁豆,可以調(diào)換一下順序。

修改注釋信息及顏色參數(shù)

使用annotation_legend = FALSE 命令去掉注釋圖例

pheatmap(data.1, annotation_col = annotation_col, annotation_row = annotation_row,
         cellwidth = 20, cellheight = 15,
         annotation_legend = FALSE)
注釋圖例去除后.png

自定注釋信息的顏色列表

ann_colors = list(
   species= c("white", "tomato4"),
   environment = c(X1 = "slateblue3", X2 = "red2"),
  phylum = c(phylum1 = "#7D26CD", phylum2 = "#E7298A", phylum3 = "#66A61E")
)
head(ann_colors)

使用 annotation_colors 設定注釋信息的顏色

# annotation_colors設定注釋信息的顏色
pheatmap(data.1, annotation_col = annotation_col, 
         annotation_row = annotation_row, 
         annotation_colors = ann_colors,
         cellwidth = 20, cellheight = 15)
注釋顏色修改.png

這是注釋顏色冗美,好像不是特別好看魔种,根據(jù)自己美感慢慢調(diào)節(jié)

annotation_colors = ann_colors[1] 只修改species的注釋顏色,其他保持不變

pheatmap(data.1, annotation_col = annotation_col, 
         annotation_row = annotation_row, 
         annotation_colors = ann_colors[1],
         cellwidth = 20, cellheight = 15)
指定修改注釋顏色.png

將熱圖分隔開

使用 cutree_rows, cutree_cols 函數(shù)可以根據(jù)行列的聚類數(shù)將熱圖分隔開

pheatmap(data.1,cutree_rows=3,cutree_cols=3,
         cellwidth = 20, cellheight = 15)
根據(jù)行列的聚類數(shù)將熱圖分隔開.png

使用gaps_row 和gaps_col 函數(shù)可以在指定位置處添加gap

# gaps_row = c(7, 17)參數(shù)在第7和17行處添加gap, 同時對行不進行聚類
pheatmap(data.1, annotation_col = annotation_col,
         cluster_rows = FALSE, gaps_row = c(7, 17),
         cellwidth = 20, cellheight = 15)
指定位置添加GAP.png

對行和列都不進行聚類粉洼,然后自定義劃分行和列的gap

# 對行和列都不聚類节预,自定義劃分行和列的gap
pheatmap(data.1, annotation_col = annotation_col,
         annotation_row = annotation_row, 
         cluster_rows = FALSE, cluster_cols = FALSE, 
         gaps_row = c(12, 21), gaps_col = c(5),
         cellwidth = 20, cellheight = 15)

自定義劃分行和列的gap.png

注意:紅色框不是r生成的,而是截圖后手動添加属韧,為了突出自定義的行和列

自定義行列標簽名

自定義行的標簽名

labels_row = c("genus1", "genus2", "genus3", "genus4", " ", " ", " ", " ", " ", " ", 
               " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
               " ", " ", " ", " "," "," ", " ", "genus26", "genus27", "genus28")

使用labels_row參數(shù)來添加行標簽

#  使用labels_row參數(shù)來添加行標簽安拟,但是最好把行的聚類給去除
pheatmap(data.1, annotation_col = annotation_col, labels_row = labels_row,
         cluster_rows = FALSE,
         cellwidth = 20, cellheight = 15)
修改橫坐標名稱.png

使用filename 參數(shù)輸出圖片進行保存為pdf

pheatmap(data.1, annotation_col = annotation_col, 
                  annotation_row = annotation_row, 
                  annotation_colors = ann_colors[1],
                  cellwidth = 20, cellheight = 15,
                  filename = "data.pdf")

將熱圖的結(jié)果,按照聚類后的順序進行輸出

result =pheatmap(data.1, annotation_col = annotation_col, 
                  annotation_row = annotation_row, 
                  annotation_colors = ann_colors[1],
                  cellwidth = 20, cellheight = 15)
#  簡要查看熱圖對象的信息
> summary(result)
查看熱圖對象.png

將熱圖的結(jié)果宵喂,按照聚類后的順序進行輸出

order_row = result$tree_row$order           #記錄熱圖聚類后的行排序
order_col = result$tree_col$order           #記錄熱圖聚類后的列排序
data.2 = data.frame(data[order_row,
                         order_col])        # 按照熱圖聚類后的順序糠赦,重新排列原始數(shù)據(jù)
data.2 = data.frame(rownames(data.2),
                    data.2,check.names =F)  # 將物種屬名的行名加到表格數(shù)據(jù)中
colnames(data.2)[1] = "genus" 
write.table(data.2,file="genus聚類后數(shù)據(jù).txt",row.names=FALSE,
            quote = FALSE,sep='\t')         #輸出結(jié)果,保存到當前工作目錄
熱圖聚類后處理后的排序.png

運用R語言 pheatmap 包繪制熱圖進階部分的內(nèi)容就到這結(jié)束了锅棕。

如有不足或錯誤之處拙泽,請批評指正。
有什么不明白的也歡迎留言討論裸燎。
感謝你的閱讀9苏啊!德绿!

歡迎關(guān)注微信公眾號:fafu 生信 小蘑菇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朋其,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脆炎,更是在濱河造成了極大的恐慌,老刑警劉巖氓辣,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秒裕,死亡現(xiàn)場離奇詭異,居然都是意外死亡钞啸,警方通過查閱死者的電腦和手機几蜻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來体斩,“玉大人梭稚,你說我怎么就攤上這事⌒醭常” “怎么了弧烤?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蹬敲。 經(jīng)常有香客問我暇昂,道長莺戒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任急波,我火速辦了婚禮从铲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘澄暮。我一直安慰自己名段,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布泣懊。 她就那樣靜靜地躺著伸辟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嗅定。 梳的紋絲不亂的頭發(fā)上自娩,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音渠退,去河邊找鬼忙迁。 笑死,一個胖子當著我的面吹牛碎乃,可吹牛的內(nèi)容都是我干的姊扔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梅誓,長吁一口氣:“原來是場噩夢啊……” “哼恰梢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梗掰,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嵌言,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后及穗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摧茴,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年埂陆,在試婚紗的時候發(fā)現(xiàn)自己被綠了苛白。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡焚虱,死狀恐怖购裙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹃栽,我是刑警寧澤躏率,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響禾锤,放射性物質(zhì)發(fā)生泄漏私股。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一恩掷、第九天 我趴在偏房一處隱蔽的房頂上張望倡鲸。 院中可真熱鬧,春花似錦黄娘、人聲如沸峭状。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽优床。三九已至,卻和暖如春誓焦,著一層夾襖步出監(jiān)牢的瞬間胆敞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工杂伟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留移层,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓赫粥,卻偏偏與公主長得像观话,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子越平,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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