美文网首页生物信息可视化
tidyHeatmap(一):带你绘制高端热图

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

作者: 生信宝库 | 来源:发表于2022-12-09 21:13 被阅读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包的其它个性化使用。

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

    相关文章

      网友评论

        本文标题:tidyHeatmap(一):带你绘制高端热图

        本文链接:https://www.haomeiwen.com/subject/rectqdtx.html