iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么使用ComplexHeatmap绘制单个热图
  • 958
分享到

怎么使用ComplexHeatmap绘制单个热图

2023-07-02 13:07:24 958人浏览 泡泡鱼
摘要

这篇文章主要介绍“怎么使用ComplexHeatmap绘制单个热图”,在日常操作中,相信很多人在怎么使用ComplexHeatmap绘制单个热图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Compl

这篇文章主要介绍“怎么使用ComplexHeatmap绘制单个热图”,在日常操作中,相信很多人在怎么使用ComplexHeatmap绘制单个热图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用ComplexHeatmap绘制单个热图”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    前言

    ComplexHeatmap可以绘制很复杂的热图,能满足日常以及文章所需,本次先简单的介绍单个热图绘制的内容。

    单个热图由热图主体和热图组件组成。其中主体可分为行和列;组件可以是标题、树状图、矩阵名称和热图注释,在主图的四周均可,且顺序可调整。

    怎么使用ComplexHeatmap绘制单个热图

    一 载入数据,R包

    1.1 载入ComplexHeatmap包

    #if (!requireNamespace("BiocManager", quietly = TRUE))#    install.packages("BiocManager")#BiocManager::install("ComplexHeatmap")library(ComplexHeatmap)

    1.2 载入数据

    为更贴近生信使用场景,直接使用内置的基因表达数据

    expr = readRDS(paste0(system.file(package = "ComplexHeatmap"), "/extdata/gene_expression.rds"))#查看数据str(expr)expr[1:4,c(1:4,25:27)]

    怎么使用ComplexHeatmap绘制单个热图

    拿到一个新数据后,除了检查[1:4,1:4]外,也许还需要看看最后几列,另外还需要观察列名称的规律。

    去除最后几列,或者只选取列名字包含cell的(TCGA数据处理中也会经常遇到)

    mat = as.matrix(expr[, grep("cell", colnames(expr))])

    1.3 绘制最简单的热图

    Heatmap(mat)

    怎么使用ComplexHeatmap绘制单个热图

    可以看到有很多需要“美化”的地方,别急,一点点来。

    二 热图修饰

    2.1 颜色

    1)连续型变量

    可以使用circle::colorRamp2()函数来生成Heatmap()中的颜色映射函数,输入参数为分割位置以及分割点上的颜色。下例中,大于12的值都映射为红色,小于12的值映射为绿色;

    library(circlize)</code><code>#c中的范围要根据实际情况设置</code><code>col_fun = colorRamp2(c(8, 12, 16), c("green", "white", "red"))</code><code>Heatmap(mat, name = "mat", col = col_fun)

    怎么使用ComplexHeatmap绘制单个热图

    2)分类型变量

    更改分类变量的颜色,需要把所有分类的数字均进行赋值。

    discrete_mat = matrix(sample(1:4, 100, replace = TRUE), 10, 10)colors = structure(1:4, names = c("1", "2", "3", "4")) # black, red, green, blueHeatmap(discrete_mat, name = "mat", col = colors,    column_title = "a discrete numeric matrix")

    怎么使用ComplexHeatmap绘制单个热图

    更多颜色修改请参考官方文档,文末的参考资料的链接。

    2.2 标题

    1)设置行,列和图例的标题
    Heatmap(mat,         name = "legend title", #图例title        column_title = "I am a column title", #列title         row_title = "I am a row title",        column_title_side = "bottom") #行title

    怎么使用ComplexHeatmap绘制单个热图

    2)设置标题的位置,颜色,字体,大小
    Heatmap(mat, name = "mat",         row_title = "row title",        row_title_rot = 0, #旋转方向        column_title = "I am a big column title",         column_title_side = "bottom", #标题位置        column_title_gp = gpar(fontsize = 20, fontface = "bold",col = "red")) #颜色,字体,大小

    怎么使用ComplexHeatmap绘制单个热图

    3)设置标题的背景

    column_title_gp中的填充参数来设置标题的背景颜色

    Heatmap(mat, name = "mat",         column_title = "I am a column title",         column_title_gp = gpar(fill = "red", col = "white", border = "blue"),        )

    怎么使用ComplexHeatmap绘制单个热图

    2.3 聚类

    聚类是热图可视化的关键组成部分,在ComplexHeatmap包中可以非常灵活的进行设置。

    A:一般设置

    cluster_rows/columns :是否进行聚类

    show_column/row_dend :是否显示聚类树

    column/row_dend_side :聚类图绘制的位置

    column_dend_height/row_dend_widht :聚类树的高度 和 宽度

    Heatmap(mat, name = "mat",</code><code>        cluster_columns = T,  </code><code>        cluster_rows = F, ## turn off row clustering</code><code>        show_column_dend = T, ## hide column dendrogram</code><code>        show_row_dend = F,</code><code>        column_dend_side = "top",  #dendrogram location</code><code>        column_dend_height = unit(4, "cm"))

    注意:聚类树的高度 和 宽度有区别。

    B:距离方法

    可选计算距离的方式包括pearson, spearman以及kendall , 或者计算距离的自定义函数。

    Heatmap(mat, name = "mat", clustering_distance_rows = "pearson",    column_title = "pre-defined distance method (1 - pearson)")

    怎么使用ComplexHeatmap绘制单个热图

    自定义

    Heatmap(mat, name = "mat", clustering_distance_rows = function(x, y) 1 - cor(x, y),    column_title = "a function that calculates pairwise distance")
    C:聚类方法

    支持hclust()中的聚类方法。

    Heatmap(mat, name = "mat", clustering_method_rows = "single")
    D:聚类树的渲染

    根据聚类结果将聚类树的枝设置不同的颜色

    library(dendextend)</code><code>row_dend = as.dendrogram(hclust(dist(mat)))</code><code>row_dend = color_branches(row_dend, k = 4) # `color_branches()` returns a dendrogram object</code><code>Heatmap(mat, name = "mat", </code><code>        cluster_rows = row_dend,</code><code>        row_dend_width  = unit(4, "cm"))

    怎么使用ComplexHeatmap绘制单个热图

    2.4 设置行列顺序

    通过row_order/column_order函数自定义其排序,为方便展示选择前30个基因。

    mat <- mat[1:30,]Heatmap(mat, name = "mat",           row_order = order(as.numeric(gsub("gene", "", rownames(mat)))), #将gene1替换为1,在排序          column_order = sort(colnames(mat)),          column_title = "reorder matrix")

    怎么使用ComplexHeatmap绘制单个热图

    注:此处将gene1,gene10 先替换掉gene(不去的话是按照ASCII码),然后按照数值排序。

    到此,关于“怎么使用ComplexHeatmap绘制单个热图”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: 怎么使用ComplexHeatmap绘制单个热图

    本文链接: https://www.lsjlt.com/news/341975.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 怎么使用ComplexHeatmap绘制单个热图
      这篇文章主要介绍“怎么使用ComplexHeatmap绘制单个热图”,在日常操作中,相信很多人在怎么使用ComplexHeatmap绘制单个热图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Compl...
      99+
      2023-07-02
    • ComplexHeatmap绘制单个热图
      目录前言一 载入数据,R包1.1 载入ComplexHeatmap包1.2 载入数据1.3 绘制最简单的热图二 热图修饰2.1 颜色1)连续型变量2)分类型变量2.2 标题1)设置行...
      99+
      2024-04-02
    • 怎么使用R语言ComplexHeatmap绘制复杂热图heatmap
      这篇“怎么使用R语言ComplexHeatmap绘制复杂热图heatmap”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么...
      99+
      2023-07-02
    • R语言ComplexHeatmap绘制复杂热图heatmap
      目录一 载入R包 数据1.1 载入ComplexHeatmap包,数据1.2 绘制最简单的热图二 常见“表型”注释2.1读入注释文件2.2添加注释,且设置颜色...
      99+
      2024-04-02
    • 使用Python绘制热图的库 pyHea
      pyHeatMap 详细介绍 这是一个生成热图的小程序,基于 Python 和 PIL 开发。 程序截图: 点击图 热图 安装: 通过 pip 安装: pip install pyheatmap 通过 easy_install 安...
      99+
      2023-01-31
      热图 Python pyHea
    • 使用matplotlib绘制热图(heatmap)全过程
      目录matplotlib绘制热图(heatmap)拿出来跟大家分享一下效果图如下主题色参数可选总结matplotlib绘制热图(heatmap) python常用的绘图库就是matp...
      99+
      2022-12-17
      matplotlib绘制热图 绘制热图heatmap 使用matplotlib绘制热图
    • 第六章 使用 matplotlib 绘制热力图
      系列文章目录 第一章 使用 matplotlib 绘制折线图 第二章 使用 matplotlib 绘制条形图 第三章 使用 matplotlib 绘制直方图 第四章 使用 matplotlib 绘制散...
      99+
      2023-09-25
      python 数据分析 数据可视化 matplotlib 热力图
    • 使用JavaScript怎么绘制一个饼图
      这篇文章将为大家详细讲解有关使用JavaScript怎么绘制一个饼图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现代码JavaScriptvar canvas =&n...
      99+
      2023-06-06
    • 使用matplotlib怎么绘制一个阶梯图
      这篇文章将为大家详细讲解有关使用matplotlib怎么绘制一个阶梯图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。step函数概述step函数用于绘制阶梯图。根据源码可知,step函数是对...
      99+
      2023-06-06
    • 使用canvas怎么绘制一个太极图
      今天就跟大家聊聊有关使用canvas怎么绘制一个太极图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。css样式代码.animation{  width: ...
      99+
      2023-06-09
    • 使用canvas怎么绘制一个心电图
      这期内容当中小编将会给大家带来有关使用canvas怎么绘制一个心电图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。思路:模拟点(如果你有真实的数据,那就是把数据幻化成canvas对应的坐标点)模拟点时注意...
      99+
      2023-06-09
    • 使用python怎么绘制一个折线图
      这篇文章将为大家详细讲解有关使用python怎么绘制一个折线图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注...
      99+
      2023-06-14
    • 使用python怎么绘制一个火山图
      今天就跟大家聊聊有关使用python怎么绘制一个火山图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整...
      99+
      2023-06-14
    • 如何在Python中使用ECharts绘制热力图
      如何在Python中使用ECharts绘制热力图热力图是一种基于颜色深浅来展示数据变化的可视化方式,广泛用于分析热点密度、趋势和相关性分析等场景。在Python中,我们可以使用ECharts库来绘制热力图,并通过具体的代码示例来演示其使用方...
      99+
      2023-12-17
      Python 热力图 echarts
    • 使用R语言怎么绘制一个直方图
      使用R语言怎么绘制一个直方图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。语法使用R语言创建直方图的基本语法是hist(v,main,xlab,xlim,ylim,brea...
      99+
      2023-06-14
    • 使用R语言怎么绘制一个饼状图
      今天就跟大家聊聊有关使用R语言怎么绘制一个饼状图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、...
      99+
      2023-06-14
    • 利用Python实现热力图的绘制
      目录1. 引言2. 读取图像3. 图像灰度化4. 像素化效果5. 为热力图选择调色板1. 引言 热力图,是一种通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,...
      99+
      2024-04-02
    • 使用R语言怎么绘制一个折线图
      这篇文章给大家介绍使用R语言怎么绘制一个折线图,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在R中的通过使用plot()函数来创建线形图,语法如下:plot(v,type,col,xlab,ylab)参数描述如下:v ...
      99+
      2023-06-14
    • 使用Python怎么绘制一个棒棒糖图表
      本篇文章给大家分享的是有关使用Python怎么绘制一个棒棒糖图表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先读取一下数据。import pandas ...
      99+
      2023-06-15
    • linux中怎么使用Arduino制作一个绘图仪
      这篇文章主要介绍了linux中怎么使用Arduino制作一个绘图仪,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于我是一个很怀旧的人,我真的很喜欢最初的 Arduino U...
      99+
      2023-06-16
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作