Advertisement

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

阅读量:

画图专题 | 热图函数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数据库中选取了肺癌相关数据, 数据编号为GSE198O4, 共包含总共 一千万分之一的一百二十 例标本, 其中分为两类:一类是来自癌症患者的标本 (共六O例), 另一类是来自癌旁健康的对照组 (共六O例). 在分析过程中采用 t 检验法计算各组间的差异显著性水平, 并对计算得到的 p 值进行了 Benj mini-ni-Hochberg (BH) 校正处理以控制假发现率(FDR)低于 O.Oi 的水平. 然后通过筛选出 FDR 控制在小于 O.Oi 水平下的基因, 并从中选取差异表达程度最高的前一百个关键基因用于构建热图展示结果

2e76b4e07700bc91493909446c117f93.png

部分数据显示如下:

14ea23909e8b1d1e53493d8d097f0159.png

2、画图

当使用默认参数生成热图时,效果如何?然而,在这种情况下(或说),这些基因名称和样本名称显得杂乱无章,并没有明显的分组迹象。

b0ef596e566c4db0db95638f896e45a2.png
6a7e7c6366c6d59f61db11614bdd01db.png

3、参数调整

#颜色参数

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

现在我们已经将主色调设置为RGB三色。观览图片后,立刻显现出鲜艳效果。不知道该怎么选择颜色?您可参考网站https://www.color-hex.com/color-names.html获取丰富的色彩名称选项。

ebe7a82b863dbc1b1ba95fb02495e7d6.png
927135f1d80a780e841f442dcf845924.png

#数据变换参数

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, 其间的范围较小, 因此在当前的数据条件下实施行均一化并非最佳选择

ea0c66cb7e7dfe5e320d01c381453cd5.png
4a3ba69b74b1e378132a0ea68b4eb832.png
68f884f58b217baa4ac51106b8477a4d.png

#色度条

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

l****egend 逻辑值,是否显示色度条,默认为T
legend_breaks 显示多少个颜色数值段
legend_labels 对色度条上对应位置的字符进行修改

该系统通过字符修改功能观察到色度条上的数字变化为表示颜色高度信息的文字元素

437025fa2610a5295ada8a6b4c39ddb4.png
ebf376a0cc2413b77e8f143af6342ed5.png

#注释条

annotation_colors 对标签的颜色进行修改
annotation_legend 是否显示标签注释条
annotation_row 数据框格式,用来定义热图所在行的注释条
annotation_names_row 逻辑值,是否显示行标签名称
annotation_col 数据框格式,用来定义热图所在列的注释条
annotation_names_col 逻辑值,是否显示列标签名称

举例而言,在注释条中

b5588b59d4176fd44c1349455ef55e1f.png
dc5a945724dcedbb48ae53f5f850477e.png

#其他修改参数

main 设置图的标题
fontsize 是设置所有除主图以外的标签的大小
number_color 字体的颜色
show_rownames 是否显示行名
fontsize_row 行名的字体大小
labels_row X轴坐标名设置
show_colnames 是否显示列名
fontsize_col 列名的字体大小
labels_col y轴坐标名设置

我们对字体大小进行了调整,并省略了样本标识;随后设置了图像标题。至此,在经历了多组参数优化后,请问相比最初仅依靠默认设置的效果如何?对比图:GSE19804_tumor_vs_normal Heatmap 6 vs 1

ffbad52628eba6419085324cdeeb1a19.png
1a5ca36f6738b19a2ae7a13a2bad718c.png

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

小格子参数设置

小格子参数设置

小格子参数设置

fontsize_number 小格子中数字大小
display_numbers 逻辑值,是否在小格子中显示数字
number_format 小格子中数字显示形式,但仅有在display_numbers=T时才能使用
na_col 设置小格子为缺失值时的颜色
cellwidth 表示每个小格子的宽度
cellheight 表示每个小格子的高度

#输出文件参数配置

filename 输出图画的文件名
width 输出图画的宽度
height 输出图画的高度

全部评论 (0)

还没有任何评论哟~