• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      未分类

      • 首页
      • 博客
      • 未分类
      • ComplexHeatmap 之 Heatmap Annotations 续(一)

      ComplexHeatmap 之 Heatmap Annotations 续(一)

      • 发布者 weinfoadmin
      • 分类 未分类, 老俊俊的生信笔记
      • 日期 2021年9月10日
      • 评论 0评论

      感谢老俊俊的大力支持。我们会每日跟新,欢迎您关注老俊俊的生信笔记。


      点击上方关注我们




      开学季



      5、图片注释

      图像可以添加为注释。anno_image() 支持 png、svg、pdf、eps、jpeg/jpg、tiff 格式的图像。它们作为注释导入的方式如下:

      • png、jpeg/jpg 和 tiff 图像由 png::readPNG()、jpeg::readJPEG() 和 tiff::readTIFF() 导入,并由 grid::grid.raster() 绘制。
      • svg 图像首先由 rsvg::rsvg_svg() 重新格式化,然后由 grImport2::readPicture() 导入并由 grImport2::grid.picture() 绘制。
      • pdf 和 eps 图像由 grImport::PostScriptTrace() 和 grImport::readPicture() 导入,稍后由 grImport::grid.picture() 绘制。

      以下示例的图标来自 https://github.com/Keyamoon/IcoMoon-Free。图像路径向量被设置为 anno_image() 的第一个参数:

      image_png = sample(dir("IcoMoon-Free-master/PNG/64px", full.names = TRUE), 10)
      image_svg = sample(dir("IcoMoon-Free-master/SVG/", full.names = TRUE), 10)
      image_eps = sample(dir("IcoMoon-Free-master/EPS/", full.names = TRUE), 10)
      image_pdf = sample(dir("IcoMoon-Free-master/PDF/", full.names = TRUE), 10)

      # we only draw the image annotation for PNG images, while the others are the same
      ha = HeatmapAnnotation(foo = anno_image(image_png))

      不同的图像格式可以混合:

      # code only for demonstration
      ha = HeatmapAnnotation(foo = anno_image(c(image_png[1:3], image_svg[1:3],
          image_eps[1:3], image_pdf[1:3])))

      边框和背景颜色(如果图像有透明背景)可以通过 gp 设置:

      ha = HeatmapAnnotation(foo = anno_image(image_png,
          gp = gpar(fill = 1:10, col = "black")))

      border 控制整个注释的边框:

      # code only for demonstration
      ha = HeatmapAnnotation(foo = anno_image(image_png, border = "red"))

      图像周围的填充或空间由 space 设置:

      ha = HeatmapAnnotation(foo = anno_image(image_png, space = unit(3, "mm")))

      如果只需要绘制部分图像,图像向量中的其他元素可以设置为'' 或 NA:

      image_png[1:2] = ""
      ha = HeatmapAnnotation(foo = anno_image(image_png))

      6、点注释

      实现为 anno_points() 的点注释显示数据点的分布。数据点对象 x 可以是单个向量或矩阵。如果是矩阵,pch、size、gp 等图形设置可以对应矩阵列。再次注意,如果 x 是一个矩阵,则 x 中的行对应于热图矩阵中的列:

      ha = HeatmapAnnotation(foo = anno_points(runif(10)))
      ha = HeatmapAnnotation(foo = anno_points(matrix(runif(20), nc = 2),
          pch = 1:2, gp = gpar(col = 2:3)))

      ylim 控制 “y 轴” 或 “ 数据轴” 上的范围(如果是行注释,则数据轴是水平的),extend 控制数据轴方向上的扩展空间。axis 控制是否显示轴,axis_param 控制轴的设置。轴的默认设置为:

      default_axis_param("column")
      ## $at
      ## NULL
      ##
      ## $labels
      ## NULL
      ##
      ## $labels_rot
      ## [1] 0
      ##
      ## $gp
      ## $fontsize
      ## [1] 8
      ##
      ##
      ## $side
      ## [1] "left"
      ##
      ## $facing
      ## [1] "outside"
      ##
      ## $direction
      ## [1] "normal"

      你可以覆盖其中的一些:

      ha = HeatmapAnnotation(foo = anno_points(runif(10), ylim = c(0, 1),
          axis_param = list(
              side = "right",
              at = c(0, 0.5, 1),
              labels = c("zero", "half", "one")
          ))
      )

      可以控制轴标签的旋转:

      ha = rowAnnotation(foo = anno_points(runif(10), ylim = c(0, 1),
          width = unit(2, "cm"),
          axis_param = list(
              side = "bottom",
              at = c(0, 0.5, 1),
              labels = c("zero", "half", "one"),
              labels_rot = 45
          ))
      )

      点注释的默认大小为 5mm。它可以由 anno_points() 中的 height/width 参数控制:

      # code only for demonstration
      ha = HeatmapAnnotation(foo = anno_points(runif(10), height = unit(2, "cm")))

      7、线注释

      anno_lines() 通过段列表连接数据点。与 anno_points() 类似,数据变量可以是数值向量:

      ha = HeatmapAnnotation(foo = anno_lines(runif(10)))

      或矩阵:

      ha = HeatmapAnnotation(foo = anno_lines(cbind(c(1:5, 1:5), c(5:1, 5:1)),
          gp = gpar(col = 2:3), add_points = TRUE, pt_gp = gpar(col = 5:6), pch = c(1, 16)))

      可以通过设置 add_points = TRUE 将点添加到线条中。

      可以通过设置 smooth = TRUE 添加平滑线(通过 loess())而不是原始线,但应谨慎使用,因为热图中列的顺序用作拟合的“x 值”,并且如果你仅仅认为根据重新排序的顺序进行拟合是有道理的。

      当输入数据变量是一个矩阵时,对每一列分别进行平滑处理,也可以工作。

      如果 smooth 为 TRUE,则添加点默认为 TRUE:

      ha = HeatmapAnnotation(foo = anno_lines(runif(10), smooth = TRUE))

      线注释的默认大小为 5 毫米。它可以由 anno_lines() 中的 height/width 参数控制。

      8、条形图注释

      数据点可以表示为条形图。anno_barplot() 中的一些参数如 ylim、axis、axis_param 与 anno_points() 相同:

      ha = HeatmapAnnotation(foo = anno_barplot(1:10))

      条形的宽度由 bar_width 控制。它是热图中单元格宽度的相对值:

      ha = HeatmapAnnotation(foo = anno_barplot(1:10, bar_width = 1))

      图形参数由 gp 控制:

      ha = HeatmapAnnotation(foo = anno_barplot(1:10, gp = gpar(fill = 1:10)))

      可以通过 baseline 选择条形的基线:

      ha = HeatmapAnnotation(foo = anno_barplot(seq(-5, 5), baseline = "min"))
      ha = HeatmapAnnotation(foo = anno_barplot(seq(-5, 5), baseline = 0))

      如果输入值是矩阵,它将是堆叠的条形图:

      ha = HeatmapAnnotation(foo = anno_barplot(matrix(nc = 2, c(1:10, 10:1))))

      gp 中参数的长度可以是矩阵中的列数:

      ha = HeatmapAnnotation(foo = anno_barplot(cbind(1:10, 10:1),
          gp = gpar(fill = 2:3, col = 2:3)))

      条形图注释的默认大小为 5 毫米。它可以由 anno_barplot() 中的 height/width 参数控制。

      # code only for demonstration
      ha = HeatmapAnnotation(foo = anno_barplot(runif(10), height = unit(2, "cm")))

      以下示例显示了可视化比例矩阵的条形图注释(行总和为 1):

      m = matrix(runif(4*10), nc = 4)
      m = t(apply(m, 1, function(x) x/sum(x)))
      ha = HeatmapAnnotation(foo = anno_barplot(m, gp = gpar(fill = 2:5),
          bar_width = 1, height = unit(6, "cm")))

      轴的方向可以反转,这在注释放在热图左侧时很有用:

      ha_list = rowAnnotation(axis_reverse = anno_barplot(m, gp = gpar(fill = 2:5),
          axis_param = list(direction = "reverse"),
          bar_width = 1, width = unit(4, "cm"))) +
      rowAnnotation(axis_normal = anno_barplot(m, gp = gpar(fill = 2:5),
          bar_width = 1, width = unit(4, "cm")))
      draw(ha_list, ht_gap = unit(4, "mm"))

      direction = "reverse" 也适用于其他具有轴的注释函数,但它更常用于条形图注释。

      参数 add_numbers 可以设置为 TRUE,以便与条形关联的数字绘制在条形之上。对于列注释,文本默认旋转 45 度。

      ha = HeatmapAnnotation(foo = anno_barplot(1:10, add_numbers = TRUE,
          height = unit(1, "cm")))

      9、箱线图注释

      Boxplot 注释以及后面介绍的注解函数更适合 小矩阵 。

      对于 anno_boxplot(),输入数据变量应该是 矩阵 或 列表 。如果 x 是矩阵并且如果它是列注释,则箱线图的统计量按列计算,如果是行注释,则计算按行完成:

      set.seed(12345)
      m = matrix(rnorm(100), 10)
      ha = HeatmapAnnotation(foo = anno_boxplot(m, height = unit(4, "cm")))

      图形参数由 gp 控制:

      ha = HeatmapAnnotation(foo = anno_boxplot(m, height = unit(4, "cm"),
          gp = gpar(fill = 1:10)))

      箱的宽度由 box_width 控制。outline 控制是否显示离群点:

      ha = HeatmapAnnotation(foo = anno_boxplot(m, height = unit(4, "cm"),
          box_width = 0.9, outline = FALSE))

      anno_boxplot() 只为一行绘制一个箱线图。

      10、直方图注释

      作为直方图的注释更适合作为 行注释。数据变量的设置与 anno_boxplot() 相同,可以是矩阵或列表。

      与 anno_boxplot() 类似,输入数据变量应该是矩阵或列表。如果 x 是矩阵,如果是列注释,则直方图按列计算,如果是行注释,则直方图按行计算:

      m = matrix(rnorm(1000), nc = 100)
      ha = rowAnnotation(foo = anno_histogram(m)) # apply `m` on rows

      直方图的中刻度数由 n_breaks 控制:

      ha = rowAnnotation(foo = anno_histogram(m, n_breaks = 20))

      颜色由 gp 控制:

      ha = rowAnnotation(foo = anno_histogram(m, gp = gpar(fill = 1:10)))


      未完待续。


      收官!


      代码 我上传到 QQ 群 老俊俊生信交流群 文件夹里。欢迎加入。加我微信我也拉你进 微信群聊 老俊俊生信交流群 哦。

      群二维码:


      老俊俊微信:




      知识星球:



      所以今天你学习了吗?

      欢迎小伙伴留言评论!

      点击我留言!

      今天的分享就到这里了,敬请期待下一篇!

      最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!

      如果觉得对您帮助很大,赏杯快乐水喝喝吧!

      推 荐 阅 读




      • circlize 之可视化基因组数据

      • circlize 之 Advanced layout

      • circlize 之 circos.heatmap()

      • circlize 之 Implement high-level circular plots

      • 怎么批量合并 data.frame ?

      • QPCRpro 正式上线!

      • circlize 之 Legends

      • QPCR数据添加 p 值和显著性一次解决!

      • circlize 之 Graphics

      • circlize 之 Introduction

      • circlize 之 Circular layout

      • 鉴定差异翻译效率基因之 deltaTE 下篇

      • 鉴定差异翻译效率基因之 deltaTE 上篇

      • 鉴定差异翻译效率基因之 Riborex

      • purrr 包之 list 处理系列函数

      • purrr 包之 map 系列函数

      • 批量绘制单基因相关性图

      • Y 叔出品:ggfun

      • 神器之 computeMatrix + 绘图

      • Deeptools 神器之 bamCoverage

      • 在线版shiny pheatmap!

      • QPCR数据快速分析和绘图 — by shiny

      • RNA-seq:Salmon 快速定量

      • RNA-seq:Salmon 定量结果差异分析

      • 用R提取代表转录本

      • 画个CNS级别火山图!

      • R Tips :split 函数

      • 什么? R 版 Hisat2

      • R Tips :match 函数

      • conda 安装软件报错

      • MetaProfile on Transcript

      • 提取代表转录本之 gencode

      • 附近含有 m6A 修饰的 Stop Codon 序列提取

      • Introduction of m6A

      • RNA-seq : Hisat2+Stringtie+DESeq2

      • shiny VennDiagram

      • shiny CountToTPM/FPKM

      • 自己模仿画个– m6A distribution on transcript

      • 怎么把 shiny App 做成 exe 文件进行分发

      • shiny-server内网穿透

      • 在线版shiny pheatmap!

      • 用shiny创作在线火山图绘制App

      • circlize 之 Create plotting regions

      • circlize 之 High-level genomic functions

      • R 爬虫之爬取文献信息

      • R 爬虫之爬取公众号图片

      • 跟着 cell 绘制条形堆叠图和分面小提琴图

      • R 爬虫之爬取 NCBI 文献

      • ggplot 分面绘图一网打尽

      • circlize 之 chordDiagram 函数

      • circlize 之 chordDiagram 函数高级用法

      • R 绘制柱形偏差图

      • R 爬虫之爬取文献影响因子

      • R爬虫之 html 简介

      • R 爬虫之爬取 CRAN 官网 R 包信息

      • ZhouLab 星球

      • R爬虫之 html 简介(续)

      • 绘制带连线的柱状堆积图

      • 连线柱状堆积图进阶

      • circlize 绘图小问题解答

      • 批量读取文件一文搞定

      • 保姆级:手把手教你绘制环形基因表达热图

      • 环形热图进阶

      • 奇怪的图例作业

      • 基础绘图 grid 包,你值得学习!

      • igraph 牛刀小试

      • ggraph 绘制基因关系网络图

      • 新的 m6A 识别蛋白 MOV10

      • 听说你还不会 plot 函数?

      • 你的 legend 还是画的很丑?

      • 你有一份作业未领取

      • 你要的 ComplexHeatmap TA 来了!

      • ComplexHeatmap 之 A Single Heatmap 续(一)

      • ComplexHeatmap 之 A Single Heatmap 续(二)

      • ComplexHeatmap 之 Heatmap Annotations

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      ComplexHeatmap 之 Heatmap Annotations 续(二)
      2021年9月10日

      下一篇文章

      ComplexHeatmap 之 Heatmap Annotations
      2021年9月10日

      你可能也喜欢

      2-1675088548
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      30 1月, 2023
      9-1675131201
      如何快速批量修改 Git 提交记录中的用户信息
      26 1月, 2023
      8-1678501786
      肿瘤细胞通过改变CD8+ T细胞中的丙酮酸利用和琥珀酸信号来调控抗肿瘤免疫应答。
      7 12月, 2022

      留言 取消回复

      要发表评论,您必须先登录。

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?