打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
技术贴 | R语言pheatmap聚类分析和热图

本文由阿童木根据实践经验而整理,希望对大家有帮助。

原创微文,欢迎转发转载。

导读

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)

# 绘制热图,结果如下:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
本地绘制热图
为什么我代码里面选择top1000的sd基因绘制热图呢
(文章篇)S4E10: 手把手教你用R绘制聚类热图(含代码和注释)
R绘图笔记 | 热图绘制
Pheatmap绘制热图(二)
[转载]matlab中各种范数求解norm
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服