生物信息可视化

tidyHeatmap(一):带你绘制高端热图

2022-12-09  本文已影响0人  生信宝库

前言

Immugent最近注意到,生信宝库好久没有更新有关基础绘图的推文了,于是专门去找了最近常常碰到的专注于绘制热图的tidyHeatmap包的教程来学习了一下,现在分享给大家。

其实绘制热图的R包有很多了,从最开始的Pheatmap包,再到后来的ComplexHeatmap包,都是专门用来绘制热图的。事实上,今天介绍的这款tidyHeatmap包是在ComplexHeatmap包的基础上进行优化,简化了很多的操作。但是值得注意的是,tidyHeatmap包需要安装的依赖包较多,也需要最新的版本,最好安装GitHub版本,否则下面的部分功能使用不了。


代码展示

安装tidyHeatmap包,并导入示例数据。。

devtools::install_github("stemangiola/tidyHeatmap")

library(tidyHeatmap)

mtcars_tidy <- 
    mtcars |> 
    as_tibble(rownames="Car name") |> 
    
    # Scale
    mutate_at(vars(-`Car name`, -hp, -vs), scale) |>
    
    # tidyfy
    pivot_longer(cols = -c(`Car name`, hp, vs), names_to = "Property", values_to = "Value")

mtcars_tidy

浅画一个热图

mtcars_heatmap <- 
    mtcars_tidy |> 
    heatmap(`Car name`, Property, Value,    scale = "row"   ) |>
    add_tile(hp)

mtcars_heatmap

#Saving
mtcars_heatmap |> save_pdf("mtcars_heatmap.pdf")
图片

Grouping and splitting

# Make up more groupings
mtcars_tidy_groupings = 
    mtcars_tidy |>
    mutate(property_group = if_else(Property %in% c("cyl", "disp"), "Engine", "Other"))

mtcars_tidy_groupings |> 
    group_by(vs, property_group) |>
    heatmap(`Car name`, Property, Value,    scale = "row"   ) |>
    add_tile(hp)
图片

provide colour palettes to groupings

mtcars_tidy_groupings |> 
    group_by(vs, property_group) |>
    heatmap(
        `Car name`, Property, Value ,   
        scale = "row",
        palette_grouping = list(
            
            # For first grouping (vs)
            c("#66C2A5", "#FC8D62"), 
            
            # For second grouping (property_group)
            c("#b58b4c", "#74a6aa")
        )
    ) |>
    add_tile(hp)
图片

Multiple groupings and annotations

tidyHeatmap::pasilla |>
    group_by(location, type) |>
    heatmap(
        .column = sample,
        .row = symbol,
        .value = `count normalised adjusted`,   
        scale = "row"
    ) |>
    add_tile(condition) |>
    add_tile(activation)
图片

小结

从上面的流程我们可以看出tidyHeatmap的使用非常简单,而且出的图也是很美观的,使用者也可以根据需要选择其它配色。其实它的功能还远远不止于此,Immugent会在下一期推文中介绍有关tidyHeatmap包的其它个性化使用。

好啦,本期分享到这就结束了,我们下期再会~~

上一篇下一篇

猜你喜欢

热点阅读