主讲老师第三十七课:pheatmap 包的使用
关于 pheatmap 包的使用,实际上前面的内容里面,多多少少已经学习了一些,比如差异分析后的热图展示,今天主要系统介绍一下 pheatmap 的使用(pheatmap.zip)
1. R 包和数据准备
1.1 安装和加载 R 包
关于包的安装,十分简单,install.packages("pheatmap"),基本没什么难度,安装完成后,将其读取进来
1.2 生成一个测试矩阵
这里,我们直接生成一个数据集,来进行演示使用 rnorm()函数,直接生成一个 20 行,10 列的表达矩阵。为了保证结果的一致性,在此设置了随机种子 set.seed(123) ,并且,直接对数据集的行名和列名进行命名
2. 绘制热图
首先,我们使用默认的参数,来生成一个最基础的热图
3. 自定义热图
接下来,我们来看看里面的一些相关参数
3.1 按行标准化
一般而言,我们希望同一行的结果能呈现出差异,因此可以看行进行标准化这样,左右两块的差异就变得更加明显了。当然,我们也可以按列来进行标准化。
但是,在实际应用中,按列的使用很少,一般来说,行是基因,列是样品。我们希望展示的是,包括差异分析以后,差异基因在两群样品之间存在差异,而并不在乎一个样品里面,这些差异基因的表达同样存在差异,这个是不符合逻辑的
3.2 图形外观调整
接下来,我们对里面的外观进行调整通过参数 border="white" ,把每个模块的边界设置成为了白色
3.3 去除横纵坐标标签
我们可以把两边的名字都去掉,只是同时关掉就比较丑了,show_rownames 和show_colnames 可以只关闭一个。
3.4 修改图例
3.4.1 不显示右上角图例
通过参数 legend = F 可以关闭整个图的图例,而当图例也关掉时,整个图就剩下每个点点矩阵块了。
3.4.2 设置图例范围
如果你想对边上比例尺的范围进行调整的话,使用参数 legend_breaks 可以根据需要进行调整。
3.5 设置字体
3.5.1 设置图形字体大小
注意的是,参数 fontsize 的设置是对行名和列名的字体大小同时进行设置。
3.5.2 分别指定横纵字体大小
根据画板的大小需求,我们可以对行和列的字体大小分别进行设置
3.6 调整横纵向聚类
3.6.1 调整横纵向聚类树高
根据需要,可以对行和列的聚类树高度进行修改
3.6.2 调整聚类距离类型
接着,在特殊情况下,我们可以调整聚类距离的计算方法。
首先,我们设置距离为 correlation此外,我们可以调整距离的计算类型为欧氏距离(euclidean)。
但是,这种调整计算类型的方法一般情况下,特别是初学时候不建议使用
3.7 划分聚类热图区块
另外,当不同的行和列进行分组时,我们可以将热图进行划块展示。
这样,同一个区域代表一个显示的内容,不同区域之间被区分开来了。当然,先要分成几块区域,我们
可以根据课题需要,以及具体的相关性,来进行划分
4. 构建分组信息
4.1 构建纵向分组信息
首先,我们对列进行分组注释根据分组信息,我们需要先生成一个名为 annotation_col 的数据框接着将包含分组的数据框赋值给 annotation_col 参数。
4.2 构建横向分组信息
同样的道理,对行进行分组注释前,我们需要先生成一个对应的数据框接着赋值给 annotation_row 参数
4.3 共同组合二者
此外,我们可以对横向和纵向同时进行注释。
这样,基本上掌握这些参数,足够应对绝大部分基础部分的热图绘制了。当然,关于高级复杂的热图绘制,就需要 complexHeatmap 包的使用,如果对这个包感兴趣的话可以去学习一下,关于它的参数介绍有厚厚一本书,既然学会了热图的绘制,我们接下来看下如何绘制相关性热图。