{tidyheatmaps}:画热图这么轻松,必须为我所用!

学术   教育   2024-04-13 13:29   浙江  
有谁会不喜欢漂亮的热图呢?

今天介绍一个非常好用的R包{tidyheatmaps}[1]


首先,安装并载入R包:

install.packages("tidyheatmaps")
library(tidyheatmaps)

# 下方仅为载入代码,需要提取安装
library(scales)
library(dplyr)
这次使用{tidyheatmaps}中的数据data_exprs,为data frame格式的长数据。

为了方便作图,简化一下数据。提取其中的5个变量,以及变量external_gene_name中的8个基因,存入新数据mydata:

mydata <- data_exprs %>%
  select("external_gene_name", "sample", "expression", "group", "direction") %>% # 提取5个变量
  filter(external_gene_name %in% c("Apol6", "Col5a3", "Ankrd54", "Bag1", # 提取8个基因
                                  "Kif1a", "Pttg1", "Sh3tc1", "Smim10l2a"))

summary(mydata); head(mydata)

关于长宽数据之间的转换可以查看之前的内容:实用!这几个函数让长宽数据的转换变得无比丝滑~

开始作图,使用函数tidyheatmap()

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression)

上述四行代码包括:数据mydata,必须为长数据;rows =columns =指定热图中行和列的变量;values =指定热图中的数值,通过图中颜色不同,体现数值的大小。

如果想将具体数值大小展示出来,可以这么做:

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            display_numbers =
TRUE)

如果想修饰热图的颜色,有很多color_相关的代码可以做到:

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            color_legend_min = 0,
            color_legend_max = 12,
            color_legend_n = 8)

也可以手动指定热图中的颜色:

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            colors = c("steelblue", "gold", "red")) # 手动定义颜色

如果想增加图片展示的信息,可以:

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            annotation_row = direction)

上述代码中,annotation_row =是指定行注释

假设还想给列注释,可以使用代码annotation_col

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            annotation_row = direction,
            gaps_row = direction,
            annotation_col = group)

上述代码中,gaps_row = direction,指的是将行根据某些变量(这里是direction)用空隙分隔开annotation_col = group,指的是给列增加注释(这里是变量group)。

如果想更改注释的颜色:

tidyheatmap(mydata,
            rows = external_gene_name,
            columns = sample,
            values = expression,
            annotation_row = direction,
            annotation_col = group,
            annotation_colors = list(
              direction = c("up" = "orange", "down" = "steelblue"), # 分类变量
              group = alpha(c("Hin" = "#FF0000", "Ein" = "#80FF00",
                        "Eip" = "#00FFFF", "Hip" = "#8000FF"), 0.5)),
            show_selected_row_labels = c("Apol6", "Ankrd54", "Pttg1", "Sh3tc1")) # 选取想展示的行名称

上述代码中,annotation_colors =指定了注释的颜色,代码根据变量类型略有不同。direction和group都是分类变量,所以要指定每一个水平的颜色。show_selected_row_labels = 选取想显示的行名字。

好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人


参考资料

[1]. https://github.com/jbengler/tidyheatmaps

公众号的线上课程
1. 《R语言和统计新手课程》
2. 《回归:从入门到进阶》
【通过公众号菜单栏--线上课程--新手课程/回归课程】

统计咨询
《服务介绍和经典合作案例》

公众号核心成员的成果发表
《SCI医学1区影响因子9分论文》

公众号核心成员担任SCI杂志Associate Editor!
《JAD杂志Associate editor》
《Frontiers in Neuroscience, Frontiers in Neurology and Frontiers in Psychiatry杂志的神经退行性病变板块》

▌本文由R语言和统计首发
▌课程相关咨询可添加R师妹微信: kefu_rstats
▌编辑:June
▌邮箱:contact@rstats.cn
▌网站:www.rstats.cn
我们致力于让R语言和统计变得简单!





R语言和统计
我们定期更新与R有关的内容,比如R编程基础,作图,实用R包的解读,统计学基础知识,前沿的统计方法,机器学习等等。
 最新文章