前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >更为强大的复杂热图​

更为强大的复杂热图​

作者头像
用户7010445
发布2020-04-14 15:44:57
1.1K0
发布2020-04-14 15:44:57
举报

写在前面

目前基于热图的绘制需求越来越高,让我们想到的事情逐渐成熟,却已经有人开始实现了这个功能,并上传到了CRAN。复杂热图的绘制长期以来都是基础包omplexHeatmap来实现,现在可以使用了tidyHeatmap了.但是这也不是基于ggplot的版本,所以差强一步。

安装tidyHeatmap

遗憾的是,cran中包存在问题,我检查发现是版本问题,因此在github上的例子只能安装github版本的tidyHeatmap。

代码语言:javascript
复制
# install.packages("tidyHeatmap")
# devtools::install_github("stemangiola/tidyHeatmap")
library("tidyHeatmap")
library(tidyverse)

示例数据

代码语言:javascript
复制
tidyHeatmap::pasilla
代码语言:javascript
复制
## # A tibble: 504 x 7
##    sample  symbol `count normalised ~ condition type   location  activation
##    <chr>   <fct>                <int> <fct>     <fct>  <chr>          <dbl>
##  1 treate~ Kal1                    37 treated   singl~ Secretory      1.10
##  2 treate~ Kal1                    41 treated   paire~ Secretory      1.10
##  3 treate~ Kal1                    50 treated   paire~ Secretory      1.10
##  4 untrea~ Kal1                  1127 untreated singl~ Secretory      1.10
##  5 untrea~ Kal1                  1046 untreated singl~ Secretory      1.10
##  6 untrea~ Kal1                   932 untreated paire~ Secretory      1.10
##  7 untrea~ Kal1                  1018 untreated paire~ Secretory      1.10
##  8 treate~ Ant2                  2331 treated   singl~ Intracel~      0.329
##  9 treate~ Ant2                  2478 treated   paire~ Intracel~      0.329
## 10 treate~ Ant2                  2575 treated   paire~ Intracel~      0.329
## # ... with 494 more rows

复杂热图

首先一定要明白,R语言是以长格式的数据来绘图的;

参数解释:

  • .data “tbl”格式的数据框
  • .horizontal :在热图中水平显示的列的名称
  • .vertical 在热图汇总垂直展示的列名称
  • .abundance :填充数的列
  • annotation: 分组信息
  • log_transform : 数据转化
代码语言:javascript
复制
tidyHeatmap::pasilla %>%
    heatmap(
        .horizontal = sample,
        .vertical = symbol,
        .abundance = `count normalised adjusted`,
        annotation = c(condition, type),
        log_transform = TRUE
    )

分组聚类 标签块添加

代码语言:javascript
复制
tidyHeatmap::pasilla %>%
    group_by(location, condition) %>%
    heatmap(
        .horizontal = sample,
        .vertical = symbol,
        .abundance = `count normalised adjusted`,
        annotation = c(type),
        log_transform = TRUE
    )
代码语言:javascript
复制
# library(dplyr)
tidyHeatmap::N52 %>%
  group_by( `Cell type`) %>%
  tidyHeatmap::heatmap(
    .horizontal = UBR,
    .vertical = symbol_ct,
    .abundance = `read count normalised log`,
    annotation = CAPRA_TOTAL
  )

### 人工设定颜色映射

代码语言:javascript
复制
pasilla %>%
  heatmap(
    .horizontal = sample,
    .vertical = symbol,
    .abundance = `count normalised adjusted`,
    log_transform = TRUE,
    palette_abundance = circlize::colorRamp2(c(-2, -1, 0, 1, 2), viridis::magma(5))
  )
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
    • 安装tidyHeatmap
      • 示例数据
        • 复杂热图
          • 分组聚类 标签块添加
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档