R繪圖|pheatmap熱圖繪制——中階篇

本次內(nèi)容在pheatmap熱圖繪制——基礎(chǔ)篇的基礎(chǔ)上展示如何在熱圖上體現(xiàn)不同的功能分區(qū),以及如何根據(jù)聚類結(jié)果將不同的cluster分開键菱?

首先清除環(huán)境,安裝并加載所需要的R包

rm(list = ls()) #清除環(huán)境內(nèi)存
#install.packages("pheatmap")  #安裝pheatmap包
#install.packages("readxl")  #安裝readxl包
#install.packages("ggplot2") #安裝ggplot2包
#install.packages(c('officer', 'rvg', 'flextable', 'stargazer', 'broom' ))#export的依賴包
#下載export惶室,鏈接https://cran.r-project.org/src/contrib/Archive/export/export_0.2.2.tar.gz
#install.packages("D:/R-3.6.2/library/export_0.2.2.tar.gz", repos = NULL)
library(ggplot2)
library(pheatmap) #加載pheatmap包
library(readxl)  #加載readxl包
library(export) #用于輸出不同格式的結(jié)果

讀入分組信息汁讼,用于行注釋

rm(list = ls()) #清除環(huán)境內(nèi)存
#install.packages("pheatmap")  #安裝pheatmap包
#install.packages("readxl")  #安裝readxl包
#install.packages("ggplot2") #安裝ggplot2包
#install.packages(c('officer', 'rvg', 'flextable', 'stargazer', 'broom' ))#export的依賴包
#下載export,鏈接https://cran.r-project.org/src/contrib/Archive/export/export_0.2.2.tar.gz
#install.packages("D:/R-3.6.2/library/export_0.2.2.tar.gz", repos = NULL)
library(ggplot2)
library(pheatmap) #加載pheatmap包
library(readxl)  #加載readxl包
library(export) #用于輸出不同格式的結(jié)果

讀入表達(dá)數(shù)據(jù)并對數(shù)據(jù)做簡單處理

data<-read_excel("demo2.xlsx",1)    #讀入excel數(shù)據(jù)
data<-as.data.frame(data) # 將data轉(zhuǎn)換為data.frame格式
rownames(data)<-data[,1]  #將第一列數(shù)據(jù)設(shè)置為行名
data<-data[,-1] #去除重復(fù)的第一列
colnames(data) = gsub("_FPKM","",colnames(data))#去除列名中的_FPKM
head(data)
##         negative_1 negative_3 negative_4 neutral_1 neutral_3 neutral_4
## NCL       2.059622   1.896343   1.092175  2.936300  3.181986  4.710491
## PLEKHG5   0.712203   0.871737   0.493767  1.699708  0.652557  2.117785
## EIF2S3    1.590397   1.457507   1.710653  3.299838  2.262812  4.715623
## SMAD7     0.183231   0.102905   0.159121  0.298067  0.365457  0.299725
## HDLBP     0.443738   0.439725   0.297456  0.967719  0.845097  0.744160
## PTPRM     0.456168   0.330697   0.342640  0.760930  0.746550  0.957069

構(gòu)建樣本信息行嗤,用于列注釋

sp= data.frame(CellType = c(rep("negative", 3),rep("neutral", 3)),Time = colnames(data))
rownames(sp)<-sp[,2]
sp[,2]<-NULL
head(sp)
##            CellType
## negative_1 negative
## negative_3 negative
## negative_4 negative
## neutral_1   neutral
## neutral_3   neutral
## neutral_4   neutral

繪圖并輸出結(jié)果

p=pheatmap(data,fontsize_col=12,
         show_rownames=F,
         cluster_cols = T,cluster_rows = T,scale="row",
         treeheight_row=25,treeheight_col=25,
         main="Heatmap",
         color = colorRampPalette(c("blue", "white", "red"))(50),
         annotation_row=bx,annotation_col = sp,annotation_legend = T)
image
ggsave(p,filename = "demo2.pdf",width=6,height=8)
ggsave(p,filename = "demo2.png",width=6,height=8)
#也可以加載export包輸出結(jié)果
#graph2pdf(file="demo2.pdf",width=6,height=8)#導(dǎo)出pdf格式文件
#graph2tif(file="demo2.tif",width=6,height=8)#導(dǎo)出tiff格式文件
#graph2jpg(file="demo2.jpg",width=6,height=8)#導(dǎo)出jpg格式文件

添加gap已日,區(qū)分不同cluster

1. 可以用cutree或者gap參數(shù)去定義,cutree只有在聚類的基礎(chǔ)上方可使用栅屏,取值可聚類樹大致的分塊飘千。

p1=pheatmap(data,fontsize_col=12,
         show_rownames=F,
         cluster_cols = T,cluster_rows = T,scale="row",
         annotation_row=bx,annotation_col = sp,annotation_legend = T,
         treeheight_row=25,treeheight_col=25,
         main="Heatmap",
         color = colorRampPalette(c("blue", "white", "red"))(50),
         cutree_row = 4,cutree_col = 2)
image
ggsave(p1,filename = "demo2_gap1.pdf",width=6,height=8)
ggsave(p1,filename = "demo2_gap1.png",width=6,height=8)

2. gap可自定義間隔的位置,適用于那種不聚類保證美觀順序的情況,肉眼可區(qū)分分段區(qū)域

table(bx)#查看各個功能的基因數(shù)量
## bx
##     Cell cycle       Adhesion       Junction      Migration Tube formation
##             40             40            126             49              3
## Vasculogenesis
##              9
p2=pheatmap(data,fontsize_col=12,
         show_rownames=F,
         cluster_cols = T,cluster_rows = F,scale="row",
         annotation_row=bx,annotation_col = sp,annotation_legend = T,
         treeheight_row=25,treeheight_col=25,
         main="Heatmap",
         color = colorRampPalette(c("blue", "white", "red"))(50),
         gaps_row=c(40,40+40,80+126,80+126+49,80+126+49+3,80+126+49+3+9),cutree_cols = 2)
image
ggsave(p2,filename = "demo2_gap2.pdf",width=6,height=8)
ggsave(p2,filename = "demo2_gap2.png",width=6,height=8)

顯示運(yùn)行環(huán)境

sessionInfo()
## R version 3.6.2 (2019-12-12)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
##
## Matrix products: default
##
## locale:
## [1] LC_COLLATE=Chinese (Simplified)_China.936
## [2] LC_CTYPE=Chinese (Simplified)_China.936
## [3] LC_MONETARY=Chinese (Simplified)_China.936
## [4] LC_NUMERIC=C
## [5] LC_TIME=Chinese (Simplified)_China.936
##
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base
##
## other attached packages:
## [1] export_0.2.2    readxl_1.3.1    pheatmap_1.0.12 ggplot2_3.2.1
##
## loaded via a namespace (and not attached):
##  [1] rgl_0.100.50            Rcpp_1.0.3              lattice_0.20-38
##  [4] tidyr_1.0.2             assertthat_0.2.1        digest_0.6.24
##  [7] mime_0.9                R6_2.4.1                cellranger_1.1.0
## [10] backports_1.1.5         evaluate_0.14           pillar_1.4.3
## [13] gdtools_0.2.1           rlang_0.4.4             lazyeval_0.2.2
## [16] uuid_0.1-4              miniUI_0.1.1.1          data.table_1.12.8
## [19] flextable_0.5.9         rmarkdown_2.1           webshot_0.5.2
## [22] stringr_1.4.0           htmlwidgets_1.5.1       munsell_0.5.0
## [25] shiny_1.4.0             broom_0.5.5             compiler_3.6.2
## [28] httpuv_1.5.2            xfun_0.12               pkgconfig_2.0.3
## [31] systemfonts_0.1.1       base64enc_0.1-3         rvg_0.2.4
## [34] htmltools_0.4.0         tidyselect_1.0.0        tibble_2.1.3
## [37] crayon_1.3.4            dplyr_0.8.4             withr_2.1.2
## [40] later_1.0.0             grid_3.6.2              nlme_3.1-142
## [43] jsonlite_1.6.1          xtable_1.8-4            gtable_0.3.0
## [46] lifecycle_0.1.0         magrittr_1.5            scales_1.1.0
## [49] zip_2.0.4               stringi_1.4.6           farver_2.0.3
## [52] promises_1.1.0          xml2_1.2.2              vctrs_0.2.3
## [55] generics_0.0.2          openxlsx_4.1.4          stargazer_5.2.2
## [58] RColorBrewer_1.1-2      tools_3.6.2             manipulateWidget_0.10.1
## [61] glue_1.3.1              officer_0.3.8           purrr_0.3.3
## [64] crosstalk_1.0.0         fastmap_1.0.1           yaml_2.2.1
## [67] colorspace_1.4-1        knitr_1.28

往期回顧
R繪圖|ggplot2散點圖的繪制
R繪圖|pheatmap熱圖繪制——基礎(chǔ)篇

今天的內(nèi)容就到這里~~,更多內(nèi)容可關(guān)注公共號“YJY技能修煉”~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栈雳,一起剝皮案震驚了整個濱河市护奈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哥纫,老刑警劉巖霉旗,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛀骇,居然都是意外死亡奖慌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門松靡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人建椰,你說我怎么就攤上這事雕欺。” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵屠列,是天一觀的道長啦逆。 經(jīng)常有香客問我,道長笛洛,這世上最難降的妖魔是什么夏志? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮苛让,結(jié)果婚禮上沟蔑,老公的妹妹穿的比我還像新娘。我一直安慰自己狱杰,他們只是感情好瘦材,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著仿畸,像睡著了一般食棕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上错沽,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天簿晓,我揣著相機(jī)與錄音,去河邊找鬼千埃。 笑死憔儿,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镰禾。 我是一名探鬼主播皿曲,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吴侦!你這毒婦竟也來了屋休?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤备韧,失蹤者是張志新(化名)和其女友劉穎劫樟,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體织堂,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叠艳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了易阳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片附较。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖潦俺,靈堂內(nèi)的尸體忽然破棺而出拒课,到底是詐尸還是另有隱情徐勃,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布早像,位于F島的核電站僻肖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏卢鹦。R本人自食惡果不足惜臀脏,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冀自。 院中可真熱鬧揉稚,春花似錦、人聲如沸凡纳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荐糜。三九已至巷怜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暴氏,已是汗流浹背延塑。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留答渔,地道東北人关带。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像沼撕,于是被迫代替她去往敵國和親宋雏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354