iheatmapr包:可交互的热图绘制方法
iheatmapr包
在R中有許多用于繪制熱圖的包,今天介紹一個(gè)比較有意思的用于繪制熱圖的包,iheatmapr 包,這個(gè)包是用來繪制復(fù)雜的、且具有交互作用的熱圖。
用iheatmapr包繪制得到的熱圖就是下方這樣,不僅能夠反應(yīng)多種信息,還具有交互功能。
這個(gè)熱圖中包含8個(gè)信息:
樣本的相關(guān)性矩陣熱圖;
按列的聚類關(guān)系;
按行的聚類關(guān)系;
樣本聚類模式的顏色注釋;
每個(gè)樣本最低和最高濃度的顏色注釋;
樣本自身分組的顏色注釋;
每個(gè)樣本真實(shí)藥物處理實(shí)際過程的熱圖;
平均藥物濃度隨著時(shí)間變化的散點(diǎn)圖。
iheatmapr包的安裝
“iheatmapr”包含在CRAN中,可以直接使用install.packages()函數(shù)進(jìn)行安裝。
install.packages("iheatmapr")我的R是4.0,在安裝的時(shí)候提示4.0中缺少一個(gè)依賴包S4Vectors。
查了一下,S4Vectors是屬于Bioconductor的包,因此用Bioconductor包的安裝方式安裝S4Vectors。
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("S4Vectors")在安的過程中發(fā)現(xiàn)速度那叫一個(gè)龜速,因此設(shè)置了一下Bioconductor的鏡像。
chooseBioCmirror()之后在對(duì)話框中輸入離自己最近的鏡像編號(hào)就行了。
安裝完S4Vectors之后,iheatmapr就可以正常加載了。
library(iheatmapr)使用實(shí)例
首先要構(gòu)造用于分析的繪圖數(shù)據(jù),這里使用datasets包內(nèi)的Indometh作為示例。
#載入繪圖包library(iheatmapr)library(datasets)library(reshape2)#使用acast調(diào)用Indometh數(shù)據(jù)集中的內(nèi)容Indometh_matrix <- acast(Indometh, Subject ~ time, value.var = "conc")Indometh_matrix <- Indometh_matrix[as.character(1:6),]rownames(Indometh_matrix) <- paste("Patient",rownames(Indometh_matrix))##計(jì)算相關(guān)性矩陣Indometh_patient_cor <- cor(t(Indometh_matrix))##取每個(gè)樣本數(shù)據(jù)中的最大值和最小值patient_max_conc <- apply(Indometh_matrix,1,max)patient_min_conc <- apply(Indometh_matrix,1,min)##給每個(gè)樣本隨機(jī)分配一個(gè)分組patient_groups?<-?c("A","A","B","A","B","A")繪制相關(guān)性矩陣熱圖
example_heatmap <- main_heatmap(Indometh_patient_cor, name = "Correlation")example_heatmap可以使用colors參數(shù)修改顏色,colors = “RColorBrewer palettle/顏色名字”。
main_heatmap(Indometh_patient_cor, colors = "Pinks",?????????????name?=?"Correlation")添加第二幅熱圖
main_heatmap(Indometh_patient_cor, name = "Correlation") %>%????add_main_heatmap(Indometh_matrix,?name?=?"Indometacin<br>Concentration"如果name=相同名字的話,新添加的熱圖會(huì)與之前的熱圖共享相同的顏色。
如果你想改變添加熱圖的位置,就使用side=c(“l(fā)eft”, “right”, “top”,”bottom”)。
添加標(biāo)簽
main_heatmap(Indometh_matrix, name="Correlation") %>% add_row_labels() %>% add_col_labels() %>% add_row_title("Patients", buffer=0.2) %>%??add_col_title("Patients",?buffer=0.1)buffer規(guī)定title文字與圖之間的距離。
添加聚類關(guān)系
main_heatmap(Indometh_patient_cor) %>% add_row_clustering() %>%??????????add_col_clustering()如果是希望以顏色表示樣本的聚類關(guān)系,則需要先進(jìn)行一個(gè)聚類,之后在手動(dòng)進(jìn)行負(fù)值。
clust_assign <- kmeans(Indometh_matrix, 3)$cluster main_heatmap(Indometh_patient_cor) %>% add_row_clusters(clust_assign) %>%??add_col_clusters(clust_assign)添加樣本注釋
main_heatmap(Indometh_patient_cor) %>% add_row_annotation(data.frame("Max" = patient_max_conc, "Min" = patient_min_conc, "Groups" = c("A","A","B","B","A","A")), colors = list("Max" = "Reds", "Min" = "Blues",???????????????????????????????????"Groups"?=?c("purple","pink")))除了add_row_annotation,還可以使用add_row_signal和add_row_groups添加注釋。
main_heatmap(Indometh_patient_cor) %>%add_row_signal(patient_max_conc, "Max<br>Concentration", title = "Max", colors = "Reds") %>%add_row_signal(patient_min_conc, "Min<br>Concentration", title = "Min", colors = "Reds") %>%add_row_groups(c("A","A","B","B","A","A"),?"Groups")寫在后面
到這里,我們已經(jīng)分布講解了文章開始出現(xiàn)的復(fù)雜熱圖中的大部分實(shí)現(xiàn)代碼,下面給出一個(gè)完整的代碼。
main_heatmap(Indometh_patient_cor,name = "Correlation") %>% add_col_clustering() %>% add_row_clustering(k = 3) %>% add_row_title("Patients") %>% add_col_title("Patients") %>% add_row_annotation(data.frame("Max" = patient_max_conc, "Min" = patient_min_conc, "Groups" = patient_groups)) %>% add_main_heatmap(Indometh_matrix, name = "Indometacin<br>Concentration") %>% add_col_labels() %>% add_col_title("Time") %>%??add_col_summary()更對(duì)關(guān)于iheatmapr包的參數(shù)使用和個(gè)性化設(shè)置,請(qǐng)參考該包的幫助文檔。
https://docs.ropensci.org/iheatmapr/articles/full_vignettes/iheatmapr.html#modular-building-blocks-1
你可能還想看
R語言 - 熱圖美化
R中1010個(gè)熱圖繪制方法
這也太簡單了吧!一個(gè)函數(shù)完成數(shù)據(jù)相關(guān)性熱圖計(jì)算和展示
利用ComplexHeatmap繪制熱圖(一)
network3D: 交互式?;鶊D
network3D: 交互式網(wǎng)絡(luò)生成
一個(gè)震撼的交互型3D可視化R包 - 可直接轉(zhuǎn)ggplot2圖為3D
ggThemeAssist|鼠標(biāo)調(diào)整主題,并返回代碼
往期精品(點(diǎn)擊圖片直達(dá)文字對(duì)應(yīng)教程)
后臺(tái)回復(fù)“生信寶典福利第一波”或點(diǎn)擊閱讀原文獲取教程合集
總結(jié)
以上是生活随笔為你收集整理的iheatmapr包:可交互的热图绘制方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蛋白质组学研究概述
- 下一篇: 图示不写程序如何根据dbSNP rs号批