利用R语言heatmap.2函数进行聚类并画热图

楼主  收藏   举报   帖子创建时间:  2018-08-27 00:00 回复:1 关注量:97

数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与大家分享。由于原作者不详,暂未标记来源,请原作者前来认领哦,O(∩_∩)O哈哈~

数据如下:

heatmap2plot20160826-1

X就是一个矩阵,里面是我们需要画热图的数据。

Rc是一个调色板,有32个颜色,渐进的

Cc也是一个调色板,有11个颜色,也是渐进的

首先画一个默认的图:

heatmap2plot20160826-2

然后可以把聚类数可以去掉:就是控制这个dendrogram参数

heatmap2plot20160826-3

然后我们控制一下聚类树

下面还是在调控聚类树,但是我没看懂跟上面的参数有啥子区别!

接下来我们可以调控行列向量的label的字体大小方向

首先我们调控列向量,也就是x轴的label

heatmap2plot20160826-4

然后我们调控一下行向量,也就是y轴的label

heatmap2plot20160826-5

设置 offsetRow/offsetCol 可以把label跟热图隔开!

heatmap2plot20160826-6

hv是一个热图对象!!!

heatmap2plot20160826-7

heatmap2plot20160826-8

首先得到了白色所对应的数值区间!

然后还可以通过一下命令,直接求出属于白色区间的那些数值。

heatmap2plot20160826-9

调整scale参数选择按照列还是行来进行数据的标准化

heatmap2plot20160826-10

heatmap2plot20160826-11

如果选择了标准化,那么还可以手工调整标准化的参数:

rowMeans, rowSDs
mean and standard deviation of each row: only present if scale="row"
colMeans, colSDs
mean and standard deviation of each column: only present if scale="column"

通过hclustfun参数来调整聚类方法:参考:怎样在heatmap中使用多种cluster方法

这样就可以一下子把七种cluster的方法依次用到heatmap上面来。而且通过对cluster树的比较,我们可以从中挑选出最好、最稳定到cluster方法,为后续分析打好基础!

对下面这个数据聚类:

heatmap2plot20160826-12

heatmap2plot20160826-13

首先对一个数据框用dist函数处理得到一个dist对象!

heatmap2plot20160826-14

Dist对象比较特殊,专门为hclust函数来画聚类树的!

heatmap2plot20160826-15

  • ***2brown 2016-12-06 17:31
    #1

    heatmap.2(x, dendrogram=”none”)Error in .External.graphics(C_layout, num.rows, num.cols, mat, as.integer(num.figures), : invalid graphics state这个是怎么回事?