热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

R语言绘图(一)热图

1.什么是热图?在组学研究的相关文章中,我们常常可以看到热图(Heatmap)的展示。这些红绿相间且色彩变化丰富的热图总是

1.什么是热图?

在组学研究的相关文章中,我们常常可以看到热图(Heatmap)的展示。这些红绿相间且色彩变化丰富的热图总是能吸引读者的眼球,从而为文章增添不少亮色。当然,作为严谨的科学研究论文,图表的展示当然不可能仅仅是为了好看。热图作为一种对实验数据及其分析结果的直观的表达方式,在很多文章中都有着不可或缺的地位。

它是一种将规则化矩阵数据转换成颜色色调的常用的可视化方法,其中每个单元格对应数据的某些属性,属性的值通过颜色映射转换为不同色调并按规则填充单元格。

本文我们就来讨论一下热图是如何绘制的以及如何对其进行解读。


2.绘图前的数据准备

demo数据可以在https://www.bioladder.cn/shiny/zyp/demoData/heatmap.rar下载。


2.1 热图数据

数据来源一般是搜库结果定量表。包含2个维度的数据,一般情况下,每一行是一个基因,每一列是一个样本。


2.2 样本分组数据(可选)

行名的名称和个数要和之前的heatmap数据保持一致,列名为分组名称,可以包含不止一个分组。


2.3 基因分组数据(可选)

行名的名称和个数要和之前的heatmap数据保持一致,列名为分组名称,可以包含不止一个分组。


3.R语言怎么画热图

library(pheatmap) # 加载pheatmap这个R包# 1,读取热图数据文件
df = read.delim("https://www.bioladder.cn/shiny/zyp/demoData/heatmap/data.heatmap.txt", #文件名称 注意文件路径,格式header = T, # 是否有标题sep = "\t", # 分隔符是Tab键row.names = 1, # 指定第一列是行名fill=T) # 是否自动填充,一般选择是
# (可选)读取分组数据文件
# dfSample = read.delim("https://www.bioladder.cn/shiny/zyp/demoData/heatmap/sample.class.txt",header = T,row.names = 1,fill = T,sep = "\t")
# dfGene = read.delim("https://www.bioladder.cn/shiny/zyp/demoData/heatmap/gene.class.txt",header = T,row.names = 1,fill = T,sep = "\t")# 2,绘图
pheatmap(df, # annotation_row=dfGene, # (可选)指定行分组文件# annotation_col=dfSample, # (可选)指定列分组文件show_colnames = TRUE, # 是否显示列名show_rownames=TRUE, # 是否显示行名fOntsize=2, # 字体大小color = colorRampPalette(c('#0000ff','#ffffff','#ff0000'))(50), # 指定热图的颜色annotation_legend=TRUE, # 是否显示图例border_color=NA, # 边框颜色 NA表示没有scale="row", # 指定归一化的方式。"row"按行归一化,"column"按列归一化,"none"不处理cluster_rows = TRUE, # 是否对行聚类cluster_cols = TRUE # 是否对列聚类
)# 更多参数可以输入 ?pheatmap 查看


4.BioLadder生信云平台在线绘制热图

不想写代码?可以用BioLadder生信云平台在线绘制热图。

免费使用,注册登录后畅享40+模块。

网址:https://www.bioladder.cn/web/#/chart/6


5.热图怎么看?

如图,就是一副组学研究中热图的常用绘制模式,每个小方格表示每个基因在不同样本中的定量值,其颜色表示该基因表达量大小,表达量越大颜色越深(红色为高表达,蓝色为低表达)。每行表示每个基因在不同样本中的表达量情况,每列表示每个样品中所有基因的表达量情况。上方树形图表示对来自不同实验分组的不同样品的聚类分析结果,左侧树状图表示对来自不同样本的不同基因的聚类分析结果。

1,行名称,一般为分组名称

2,列名称,一般为基因名称

3,图例信息,左侧是热图小方块的颜色图例说明,右侧为分组信息的图例说明。

4,列聚类,如果不聚类,排序将保持文件数据的默认方式。从样本角度讲,聚类可以观察到你采集的不同组别样本是否被分类到一起了。因为,理论上如果样本来自于同一个组,其特征应该是相似的,而如果在实际操作中,某一个应该属于该组的样本被聚类到别的组了,那就说明这个样本本身的变异度很高,或者说在之前的样本采集或者测序过程中出了什么问题。

5,行聚类,如果不聚类,排序将保持文件数据的默认方式。从基因表达角度讲,聚类可以观察到哪些基因群体具有比较一致的表达变化,因为基因的上下游关系一般是连锁反应的,也就是说一个基因的表达增加可能能够带动一系列的基因的表达增加。

6,列分组信息。

7,行分组信息。


推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • ScrollView嵌套Collectionview无痕衔接四向滚动,支持自定义TitleView
    本文介绍了如何实现ScrollView嵌套Collectionview无痕衔接四向滚动,并支持自定义TitleView。通过使用MainScrollView作为最底层,headView作为上部分,TitleView作为中间部分,Collectionview作为下面部分,实现了滚动效果。同时还介绍了使用runtime拦截_notifyDidScroll方法来实现滚动代理的方法。具体实现代码可以在github地址中找到。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
author-avatar
手机用户2502860763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有