码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?


    alt

    1写在前面

    最近在画热图(heatmap)时,遇到一个问题,就是如果画热图时导入的基因过多,基因名就会重叠在一起,根本没法看,非常影响颜值。😭
    这里提供一种基于ComplexHeatmap的解决方案,大家往下看吧。👇

    2用到的包

    rm(list = ls())
    library(tidyverse)
    library(circlize)
    library(ComplexHeatmap)
    • 1

    3示例数据

    这里我们随机生成一个矩阵,200行,10列。😘

    expr <-  matrix(rnorm(2000), nrow = 200)
    rownames(expr) <- paste0("gene", 1:200)
    colnames(expr) <- paste0("sample",1:10)
    • 1
    alt

    4数据预处理

    我们先做个归一化处理,如果你的数据已经做过了,就不用做了。🤗

    expr_scaled <- t(scale(t(expr)))
    • 1
    alt

    5简单绘图

    基因名(行名)全都堆在一起了,根本没法看。😭
    当然你可以选择扩大画布,来显示出基因名。🤨

    Heatmap(expr_scaled,
    row_names_gp = gpar(fontsize = 4),
    column_names_gp= gpar(fontsize = 8)
    )
    • 1
    alt

    6标注基因

    6.1 需要标注的基因名

    假设我们需要标注gene1,gene10,gene100到gene106,以及gene180。👀

    gene <- paste0("gene", c(1,1, 10, 100:106, 180))
    • 1

    6.2 提取目的基因位置

    这里我们需要找到这些基因在原始矩阵的位置。🤒
    为了保险起见,我们把对应的基因名也从中提取出来。🤜

    genemark <- which(rownames(expr_scaled) %in% gene)

    labs <- rownames(expr_scaled)[genemark]
    • 1

    6.3 生成行注释数据

    我们把上面搞定的位置和相应文本整理成注释文件,作为行注释。🤨

    ha <-  rowAnnotation(
    foo = anno_mark(at = genemark,
    labels = labs,
    labels_gp = gpar(fontsize = 8)
    ))
    • 1

    6.4 可视化

    解决啦! 现在这些基因名就没有再“挤”在一起啦,嘿嘿。

    Heatmap(expr_scaled, 
    cluster_rows = F,
    right_annotation = ha,
    show_row_names = F,
    row_names_gp = gpar(fontsize = 4)
    )
    • 1
    alt

    7美化一下

    这里换一个我个人常用的配色,并对样本进行聚类注释。🥰

    7.1 列聚类注释

    class <-  anno_block(
    gp = gpar(fill = c("#E64B35E5", "#4DBBD5E5", "#00A087E5", "#3C5488E5"),
    col="white"),

    height = unit(5, "mm"),

    labels = c("Cluster A", "Cluster B", "Cluster C","Cluster D"),

    labels_gp = gpar(col = "white", fontsize = 8,fontface="bold")
    )

    clusters <- HeatmapAnnotation(group = class)
    • 1

    7.2 可视化

    哈哈哈哈哈哈哈,美不胜收呀!~🤩
    妈妈再也不用担心我的热图注释“挤”在一起啦!!!🤜

    Heatmap(expr_scaled, 
    ## row parameters
    cluster_rows = F,
    right_annotation = ha,
    show_row_names = F,
    show_row_dend = F,
    row_names_gp = gpar(fontsize = 4),
    ## column parameters
    column_split= 4,
    column_title = NULL,
    column_names_gp = gpar(fontsize = 8),
    top_annotation = clusters,
    ## color
    col = colorRamp2(c(-2,0,2), c("#6395C7", "white", "#E06EAD")),
    ## legend
    name = "Exp",
    rect_gp = gpar(col="grey")
    )
    • 1
    alt

    扇贝
    最后祝大家早日不卷!~

    点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

    📍 往期精彩

    📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
    📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
    📍 🤔 Reticulate | 如何在Rstudio中优雅地调用Python!?
    📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
    📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
    📍 🧐 rms | 批量完成你的线性回归
    📍 🤒 CMplot | 连Nature上的曼哈顿图都卷起来啦
    📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
    📍 🤠 Network | 高颜值动态网络可视化工具
    📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
    📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
    📍 ......

    alt

    本文由 mdnice 多平台发布

  • 相关阅读:
    vue3 | HighCharts实战自定义封装之径向条形图
    vue transition 标签
    MySql5.7主从配置
    TSINGSEE青犀AI智能分析算法助力小区规范整改:楼道杂物堆放检测
    竞赛选题 基于机器视觉的12306验证码识别
    一文熟悉 Go 的分支结构(if - else-if - else、switch)
    C#基于BytesIO程序包的TCP Client客户端窗体程序
    react实战系列 —— 起步(mockjs、第一个模块、docusaurus)
    Spring MVC 接受参数用法 @RequestBody 接收数组、List 参数、@Deprecated 标记废弃方法
    中国人民大学与加拿大女王大学金融硕士——人生下半场,用实力为自己“撑腰”
  • 原文地址:https://blog.csdn.net/m0_72224305/article/details/127645499
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号