iheatmapr包

在R中有许多用于绘制热图的包,今天介绍一个比较有意思的用于绘制热图的包,iheatmapr 包,这个包是用来绘制复杂的、且具有交互作用的热图

用iheatmapr包绘制得到的热图就是下方这样,不仅能够反应多种信息,还具有交互功能。

这个热图中包含8个信息:

  • 样本的相关性矩阵热图;

  • 按列的聚类关系;

  • 按行的聚类关系;

  • 样本聚类模式的颜色注释;

  • 每个样本最低和最高浓度的颜色注释;

  • 样本自身分组的颜色注释;

  • 每个样本真实药物处理实际过程的热图;

  • 平均药物浓度随着时间变化的散点图。

iheatmapr包的安装

“iheatmapr”包含在CRAN中,可以直接使用install.packages()函数进行安装。

install.packages("iheatmapr")

我的R是4.0,在安装的时候提示4.0中缺少一个依赖包S4Vectors。

查了一下,S4Vectors是属于Bioconductor的包,因此用Bioconductor包的安装方式安装S4Vectors。

if (!requireNamespace("BiocManager", quietly = TRUE))    install.packages("BiocManager")
BiocManager::install("S4Vectors")

在安的过程中发现速度那叫一个龟速,因此设置了一下Bioconductor的镜像。

chooseBioCmirror()

之后在对话框中输入离自己最近的镜像编号就行了。

安装完S4Vectors之后,iheatmapr就可以正常加载了。

library(iheatmapr)

使用实例

首先要构造用于分析的绘图数据,这里使用datasets包内的Indometh作为示例。

#载入绘图包library(iheatmapr)library(datasets)library(reshape2)#使用acast调用Indometh数据集中的内容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))##计算相关性矩阵Indometh_patient_cor <- cor(t(Indometh_matrix))##取每个样本数据中的最大值和最小值patient_max_conc <- apply(Indometh_matrix,1,max)patient_min_conc <- apply(Indometh_matrix,1,min)##给每个样本随机分配一个分组patient_groups <- c("A","A","B","A","B","A")

绘制相关性矩阵热图

example_heatmap <- main_heatmap(Indometh_patient_cor, name = "Correlation")example_heatmap

可以使用colors参数修改颜色,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=相同名字的话,新添加的热图会与之前的热图共享相同的颜色。

如果你想改变添加热图的位置,就使用side=c(“left”, “right”, “top”,”bottom”)。

添加标签

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规定title文字与图之间的距离。

添加聚类关系

main_heatmap(Indometh_patient_cor) %>%   add_row_clustering() %>%          add_col_clustering()

如果是希望以颜色表示样本的聚类关系,则需要先进行一个聚类,之后在手动进行负值。

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")

写在后面

到这里,我们已经分布讲解了文章开始出现的复杂热图中的大部分实现代码,下面给出一个完整的代码。

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()

更对关于iheatmapr包的参数使用和个性化设置,请参考该包的帮助文档。
https://docs.ropensci.org/iheatmapr/articles/full_vignettes/iheatmapr.html#modular-building-blocks-1

你可能还想看

  • R语言 - 热图美化

  • R中1010个热图绘制方法

  • 这也太简单了吧!一个函数完成数据相关性热图计算和展示

  • 利用ComplexHeatmap绘制热图(一)

  • network3D: 交互式桑基图

  • network3D: 交互式网络生成

  • 一个震撼的交互型3D可视化R包 - 可直接转ggplot2图为3D

  • ggThemeAssist|鼠标调整主题,并返回代码

往期精品(点击图片直达文字对应教程)

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

iheatmapr包:可交互的热图绘制方法相关推荐

  1. 学习1010种热图绘制方法

    转载自Epigenetics表观遗传学,略有修改和补充. 题目有感于德国天才数学家莱布尼兹对二进制的阐述,和其传教士好友布维对易经等汉学的传播.有兴趣的可以阅读莱布尼兹文章英文版:http://www ...

  2. R:热图解释 | pheatmap包参数及详细聚类图绘制流程(一篇解决热图绘制问题)

    热图解释及pheatmap绘制热图 一.热图绘制原理 1.1 热图介绍 1.2 热图绘制准备--均一化 1.3 热图绘制方式 1.4 热图数据查看示例 二.pheatmap包简介 2.1 pheatm ...

  3. R统计绘图-corrplot热图绘制细节调整2(更改变量可视化顺序、非相关性热图绘制、添加矩形框等)

    上一篇文章推送的是怎样调整corrplot热图的可视化参数,以修改字符和图例位置,数据可视化形式和字符小大和颜色等这篇是一个补充部分,记录怎样修改参数以变量排序方式和突出部分数据.本流程还是使用R统计 ...

  4. 相关性分析和热图绘制

    一.什么是相关性分析? 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度.相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析.在组学测序(如转录组 ...

  5. r语言热图太大卡死怎么办_R语言学习 – 热图绘制 (heatmap)

    热图绘制 热图是做分析时常用的展示方式,简单.直观.清晰.可以用来显示基因在不同样品中表达的高低.表观修饰水平的高低等.任何一个数值矩阵都可以通过合适的方式用热图展示. 本篇使用R的ggplot2包实 ...

  6. R语言绘图—热图绘制

    R语言绘图-热图绘制 原创 R语言与医学生  2022-06-24 20:59 发表于广东 热图使用颜色来表示二维图中第三个变量的变化和大小.热图能清楚直观的看到数据的变化.今天就简单介绍下R语言中热 ...

  7. python seaborn 热图 值对应颜色_Python数据分析之Seaborn(热图绘制)

    Seaborn热图绘制 %matplotlib inlineimport matplotlib.pyplot as pltimport numpy as np;np.random.seed(0)imp ...

  8. 相关性热图绘制教程(origin绘制,无须R语言)

    相关性热图绘制教程(origin绘制!无需R语言) 相关性热图在很多文章中都有出现,一般都是使用R语言进行绘制.在origin中也可以进行同样的绘制,详细过程如下: 实例解读 这个数据是来源于R中的一 ...

  9. html如何绘制热图,推荐一个简单高效的图形化热图绘制工具

    热图(heatmap)绘制有很多方法,最多就是R了吧,Excel,MATLAB 也很常见,各种工具琳琅满目,这里我向大家推荐一款非常简单高效的热图绘制工具,更重要的是,它完全不需要命令行!!,完全满足 ...

最新文章

  1. Science Bulletin:绝对丰度的植物根际微生物群落“扩增-选择”模型
  2. 百度地图API禁用点击景点弹出详细信息的方法
  3. SAP里删除trace文件的方法
  4. android view setleft,android – 在新textview上使用setLeft / setRight方法
  5. 计算机算法设计与分析 数字三角形
  6. 什么是 UCOS操作系统及特点
  7. Keytool 工具使用
  8. 青蛙跳台阶(pta)
  9. 赴日工作之在留换签证
  10. 常用的web服务器软件有哪些
  11. tplink怎么进去_如何进入tp-link无线路由器设置界面
  12. Qt crator警告This does noy seem to be a “Debug“ build
  13. mac 无法打开22端口 无法远程连接ssh 的解决办法
  14. python语言画成圆相切_在python中如何使用循环结构画四个相切的圆
  15. 如何写好科研论文(雨课堂)-期末考试答案
  16. PS将多个图片合并成长图
  17. android7dlopen,Android7.0对dlopen的改变
  18. 如何使同vlan中ip禁止访问?端口隔离与vlan有何不同?
  19. Bootstrap实现遮罩层
  20. 患癌创业女孩众筹被迫退还,被网友疑似诈捐!

热门文章

  1. 【算法分析与设计】浅析算法复杂度
  2. CTP 客户端 技术相关 简介 一
  3. Mongodb自带工具
  4. python计算两个日期的差
  5. 几个优化 Cacti 监控服务性能的技巧
  6. 长的帅不是你的错,长的没特点就不应该了
  7. 99% 的同学写不出好代码,都是因为这个问题!
  8. 大学专业:这4个计算机类专业很受欢迎,毕业后薪资待遇高?
  9. 是未来的风口还是无声的战争,中国的saas平台究竟能不能做起来?
  10. 一流企业都在做数据治理,还用百万年薪招人,想做的无非这10点