画图专题 | 热图函数pheatamp()

百迈客医学 2018-10-31

先看一眼这个函数的参数,这么多,而且最后还有省略号。那么我们应该怎么合理使用这些参数让你的热图看起来更加高大上呢?

pheatmap(mat, color = colorRampPalette(rev(brewer.pal(n = 7, name =

"RdYlBu")))(100), kmeans_k = NA, breaks = NA, border_color = "grey60",

cellwidth = NA, cellheight = NA, scale = "none", cluster_rows = TRUE,

cluster_cols = TRUE, clustering_distance_rows = "euclidean",

clustering_distance_cols = "euclidean", clustering_method = "complete",

clustering_callback = identity2, cutree_rows = NA, cutree_cols = NA,

treeheight_row = ifelse((class(cluster_rows) == "hclust") || cluster_rows,

50, 0), treeheight_col = ifelse((class(cluster_cols) == "hclust") ||

cluster_cols, 50, 0), legend = TRUE, legend_breaks = NA,

legend_labels = NA, annotation_row = NA, annotation_col = NA,

annotation = NA, annotation_colors = NA, annotation_legend = TRUE,

annotation_names_row = TRUE, annotation_names_col = TRUE,

drop_levels = TRUE, show_rownames = T, show_colnames = T, main = NA,

fontsize = 10, fontsize_row = fontsize, fontsize_col = fontsize,

display_numbers = F, number_format = "%.2f", number_color = "grey30",

fontsize_number = 0.8 * fontsize, gaps_row = NULL, gaps_col = NULL,

labels_row = NULL, labels_col = NULL, filename = NA, width = NA,

height = NA, silent = FALSE, na_col = "#DDDDDD", ...)

1、数据准备

#用来画热图的数据

mat

用来画热图的数据参数,一般是一个矩阵,数据是基因表达值,行代表基因,列代表样本。

此次例子,我们选择了一套GEO数据库的肺癌数据,数据编号为GSE19804,120个样本,其中包含60个癌症样本和60个癌旁正常样本,前面我们使用t检验,并对p值进行BH校正,筛选fdr小于0.01的基因中前100个在癌症相对于正常样本中显著差异表达的基因进行热图绘制。

部分数据显示如下:

2、画图

如使用默认参数画出来的热图,是不是很不好看?基因名和样本名乱成一堆,也看不出来那些样本聚类到了一起...

3、参数调整

#颜色参数

color

表示颜色,用来画热图的颜色,可以自己定义,默认值为colorRampPalette(rev(brewer.pal(n = 7, name ="RdYlBu")))(100),RdYlBu也就是Rd红色,Yi黄色,Bu蓝色的过度,则主调色为红黄蓝。

我们现在将其色调改为红白蓝,看下图,是不是立马好看多了?不知道该选什么颜色?网址颜色大全https://www.color-hex.com/color-names.html送给你。

#数据变换参数

scale

是指对数值进行均一化处理,在基因表达量的数据中,有些基因表达量极低,有些基因表达量极高,因此把每个基因在不同处理和重复中的数据转换为平均值为0,方差为1的数据,可以看出每个基因在某个处理和重复中表达量是高还是低,一般选择做row均一化。

clustering_method

表示聚类方法,值可以是hclust的任何一种,如"ward.D","single", "complete", "average", "mcquitty", "median", "centroid", "ward.D2"。

cluster_rows

表示行是否聚类,值可以是FALSE或TRUE

clustering_distance_rows

行距离度量的方法,如欧氏距离

cutree_rows

行聚类数

treeheight_row

行聚类树的高度,默认为50

gaps_row

对行进行分割,就不应对相应的行进行聚类

cluster_cols

表示列是否聚类,值可以是FALSE或TRUE

clustering_distance_cols

列距离度量的方法

cutree_cols

列聚类数

treeheight_col

列聚类树的高度,默认为50

gaps_col

对列进行分割,就不应对相应的列进行聚类

我们现在将数据进行行均一化,聚类方法选择complete,进行均一化之后的热图还没有前面的好看,查看数据表达情况,我们发现最小的表达值3.149和最大的表达值13.533之间并没有相差很大,因此这套数据其实不适合做均一化处理,画出来的热图更好看。

#色度条

就是热图右上角那个小小的长方条

legend

逻辑值,是否显示色度条,默认为T

legend_breaks

显示多少个颜色数值段

legend_labels

对色度条上对应位置的字符进行修改

我们对其进行字符修改,可以看到色度条上相应的数字变成了表示颜色高低表达的字符。

#注释条

annotation_colors

对标签的颜色进行修改

annotation_legend

是否显示标签注释条

annotation_row

数据框格式,用来定义热图所在行的注释条

annotation_names_row

逻辑值,是否显示行标签名称

annotation_col

数据框格式,用来定义热图所在列的注释条

annotation_names_col

逻辑值,是否显示列标签名称

这里我们以列注释条为例。在注释条中,这里可以看到正常样本的大类中混有几个癌症样本,癌症大类中也混入了几个正常样本?你有没有想过是为什么呢?当然,你也可以选择不对列进行聚类,这样样本的顺序可以随你自己决定怎样放在一起。

#其他修改参数

main

设置图的标题

fontsize

是设置所有除主图以外的标签的大小

number_color

字体的颜色

show_rownames

是否显示行名

fontsize_row

行名的字体大小

labels_row

X轴坐标名设置

show_colnames

是否显示列名

fontsize_col

列名的字体大小

labels_col

y轴坐标名设置

我们修改了字体大小,不显示样本名,以及设置图片标题,到此时,经过一系列参数更改,是不是已经比一开始使用默认参数好看多了呢?(可以增加一个对比图,GSE19804_tumor_vs_normal_heatmap6.png与GSE19804_tumor_vs_normal_heatmap1.png的 对比)。

当然还有一些其他的用到不多的参数,留给读者自己去实验一下吧...

#小格子参数设置--热图是由一个个的小四方格子组成的,每一个小格子代表一个基因在一个样本内的表达情况。

fontsize_number

小格子中数字大小

display_numbers

逻辑值,是否在小格子中显示数字

number_format

小格子中数字显示形式,但仅有在display_numbers=T时才能使用

na_col

设置小格子为缺失值时的颜色

cellwidth

表示每个小格子的宽度

cellheight

表示每个小格子的高度

#输出文件参数设置,一般可以直接将画好的热图以png格式或者pdf格式进行写出。

filename

输出图画的文件名

width

输出图画的宽度

height

输出图画的高度

差异表达基因热图怎么看_画图专题 | 热图函数pheatmap()相关推荐

  1. 差异表达基因热图怎么看_多变的热图1(新手专用)

    热图(heatmap)用不同的颜色和颜色的深浅来直观的展示数据之间的差异.在测序类的文章里,几乎必有一幅热图用来展示差异表达基因.很多工具都可以完成热图的制作,今天这篇文章主要介绍利用R语言的 phe ...

  2. 三位数的茎叶图怎么看_如何用茎叶图表示三位数,什么是茎叶图

    茎叶图(Stem-and-Leaf Diagrams)又称"枝叶图",由统计学家约翰托奇设计,它的思路是将数组中的数按位数进行比较,将数的大小基本不变或变化不大的位作为一个主干(茎 ...

  3. 差异表达基因热图怎么看_差异基因热图绘制:heatmap.2

    在RNA-seq数据分析中,差异表达基因分析是一项基本的技能,其中热图又是一种特别常见的用来展示差异表达基因分析结果的方式,今天分享一个非常好用的绘制热图的R函数:heatmap.2.该函数来自gpl ...

  4. sip 时序图_时序图怎么看_教你如何看懂时序图 - 什么是时序图_时序图怎么看_教你如何看懂时序图...

    时序图怎么看_教你如何看懂时序图 操作时序永远使用是任何一片IC芯片的最主要的内容.一个芯片的所有使用细节都会在它的官方器件手册上包含.所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上 ...

  5. 差异表达基因热图怎么看_为什么我代码里面选择top1000的sd基因绘制热图呢

    实际上写完了这个全网最好的差异分析代码:免费的数据分析付费的成品代码 我就可以收工了,但是永远不能低估粉丝的疑惑数量,任何一个细节都会被拿出来剖析. 比如代码里面我挑选了top1000的sd基因绘制热 ...

  6. 差异表达基因热图怎么看_热图的解读及边界聚类的意义

    热图(heatmap)是分子生物学文章里(尤其是microarray, RNA-seq相关论文)经常出现的图片.但热图一般有哪些用途,具体涉及哪些不同的参数画法,需要清楚了解. 1. 关于热图的用途 ...

  7. 三位数的茎叶图怎么看_茎叶图怎么看,茎叶图的特点(简要概括)

    茎叶图(Stem-and-Leaf Diagrams)又称"枝叶图",由统计学家约翰托奇设计,它的思路是将数组中的数按位数进行比较,将e68a84e8a2ade799bee5baa ...

  8. 图神经网络代码_第一篇:图神经网络(GNN)计算框架绪论

    写在开头: 这个专栏是为了总结我本科毕业设计中所设计的题目<基于GPU的图神经网络算法库的设计钰实现>.这半年来一直在这个方向上啃代码,读论文,真的学到了很多东西.尤其是阅读了大佬团队写的 ...

  9. 机械动作时序图怎么画_快速学习时序图:时序图简介、画法及实例

    原标题:快速学习时序图:时序图简介.画法及实例 时序图作为常用的UML交互图,可以直观的传达系统内外之间的交互过程,经常用在详细设计文档中.下面本文综合参考了多篇时序图的教程,根据作者的思路将时序图做 ...

最新文章

  1. 用户控件中动态加入脚本引用
  2. 将pdf转为html,使用pdfdom将pdf转为html
  3. fetchsize jdbc_MySQL JDBC FetchSize解析
  4. 常数乘以无穷大等于多少_电气知识知多少?第一弹
  5. SAP CRM WebClient UI和Hybris backoffice UI开发的相同点
  6. python名称与作用域_Python变量命名与作用域的坑
  7. Windows上PostgreSQL安装配置教程
  8. Ubuntu系统opencv4.4 opencv_contribute安装常见问题
  9. ExtJs之Ext.data.Store
  10. datagrip替换字_Datagrip 快捷键和常用插件持续更新一集一些使用技巧
  11. Only a type can be imported. xxxx resolves to a package
  12. python 开发工具_Python开发工具之神兵利器
  13. Spring的注解 @Bean用法
  14. 网络舆情监测关键词怎么设置与搜集的方法技巧
  15. Web.config配置文件详解(转载)
  16. ffmpeg 抽取视频原始编码数据(mpeg4)方法
  17. 小米台灯突然自己亮了_除了彩屏和小爱,还有哪些升级?——小米手环4 NFC版...
  18. Python | peewee.InterfaceError
  19. sd卡突然所有文件都无法删除,在手机中会提示‘无法删除’,并且无法格式化,并且无法写入文件,
  20. 万年历、日历——拿来即用(简单易上手,操作方便)

热门文章

  1. 深澜软件出现发送认证请求失败,解决方法
  2. JAVA如何通过正则表达式获取文本中数字
  3. 达内java2019项目_Java学员作品-达内图书馆管理系统
  4. 各种论文网站收集整理,巨大巨全
  5. 测试理论知识之测试方法
  6. numpy矩阵操作 升维和降维
  7. 电子通信类考研的建议
  8. Robotframework+Appium+夜神模拟器环境搭建(1)
  9. 【MYSQL优化之道摘抄】mysql常见的SQL优化方法
  10. 卷积神经网络的研究现状,卷积神经网络最新进展