点击蓝字↑↑↑“微生态”,轻松关注不迷路
本文由阿童木根据实践经验而整理,希望对大家有帮助。
原创微文,欢迎转发转载。
导读
pheatmap默认会对输入矩阵数据的行和列同时进行聚类,但是也可以通过布尔型参数cluster_rows和cluster_cols设置是否对行或列进行聚类,具体看分析需求。利用display_numbers参数可以在热图中的每个cell中填入想要的信息,例如相对丰度信息。利用cutree_rows和cutree_cols参数可以根据聚类产生的tree信息对热图进行分割。本文将先模拟输入矩阵数据,然后再展示这些参数的具体使用方法。
一、模拟输入矩阵
set.seed(1995)
# 随机种子
data=matrix(abs(round(rnorm(200, mean=1000, sd=500))), 20, 10)
# 随机正整数,20行,20列
colnames(data)=paste("Species", 1:10, sep=".")
# 列名-细菌
rownames(data)=paste("Sample", 1:20, sep=".")
# 行名-样品
data_norm=data
for(i in 1:20){
sample_sum=apply(data, 1, sum)
for(j in 1:10){
data_norm[i,j]=data[i,j]/sample_sum[i]
}
}
# 标准化
data_norm
# 模拟完成的标准化矩阵数据如下:
二、聚类分析和热图
1. 画热图
library(pheatmap)
# 加载pheatmap包
pheatmap(data_norm)
# 绘制热图,结果如下:
2. 在cell中添加丰度
方法:
display_numbers=TRUE:使用默认矩阵数据。
pheatmap(data_norm, display_numbers=TRUE)
# 绘制热图,结果如下:
3. 根据tree将热图分割成2行3列
方法:
cutree_rows=num:分割行
cutree_cols=num:分割列
pheatmap(data_norm, cutree_rows=2, cutree_cols=3)
# 绘制热图,结果如下:
感谢阅读~
你可能还喜欢
1技术贴 | 16S专题 | 简单介绍如何用自己的笔记本处理高通量16S数据
2 技术贴 | 宏基因组专题 | 组装工具盘点和比较
3 技术贴 | R语言菌群Alpha多样性分析和绘图
4技术贴 | 宏转录组专题 | DDBJ数据库:宏转录组测序数据下载
微生态科研学术群期待与您交流更多微生态科研问题
(联系微生态老师即可申请入群)
了解更多菌群知识,请关注“微生态”。
如果觉得《r语言聚类分析_技术贴 | R语言pheatmap聚类分析和热图》对你有帮助,请点赞、收藏,并留下你的观点哦!