热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

r语言list添加_技术贴|R语言pheatmap添加标记和分组

点击蓝字↑↑↑“微生态”,轻松关注不迷路本文由阿童木根据实践经验而整理,希望对大家有帮助。原创微文,欢迎转发转载。导读上一篇讲到利用dis

fb44de51cb52290ead5eecb02650ead4.gif点击蓝字↑↑↑“微生态”,轻松关注不迷路

57636aceb75ab422b44c1de3d6db3e3f.png

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

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

导读

上一篇讲到利用display_numbers参数可以在热图中的每个cell中填入想要的信息,例如相对丰度信息,另外也可以利用此参数给每个cell添加标记(mark)信息。另外利用annotation_col和annotation_row参数可以给pheatmap热图的横或列添加分组信息。本文将先模拟输入矩阵数据,然后再展示pheatmap添加标记和分组具体方法。

一、模拟输入矩阵

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

# 模拟完成的标准化矩阵数据如下:

7eb230e1542764f67e492abb585a3d47.png

二、聚类分析和热图

1. 在cell中添加mark

方法:

display_numbers=matrix:使用自定义矩阵数据

data_mark=data_norm

# 新建mark矩阵

for(i in 1:20){

    for(j in 1:10){

        data_mark[i,j]=ifelse(data_norm[i,j]>0.1, "*", "")

    }

}

# 用"*"代替>0.1的相对丰度&#xff0c;用""代替<&#61;0.1的相对丰度

pheatmap(data_norm, display_numbers&#61;data_mark)

# 绘制热图&#xff0c;结果如下&#xff1a;

92ebda543e7466a5c45e83d0bedf6ba4.png

2. 样品和物种添加分组信息

方法&#xff1a;

annotation_col&#xff1a;列分组

annotation_row&#xff1a;行分组

annotation_colors&#xff1a;分组颜色

Group&#61;c("A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B")

group_sample&#61;data.frame(Group)

rownames(group_sample)&#61;rownames(data_norm)

# 模拟样品分组文件

group_sample

# 查看&#xff1a;

28f1af09ea7f6cfe0b362590a3ee7956.png

Genus&#61;c("G1", "G1", "G1", "G1", "G1", "G2", "G2", "G2", "G2", "G2")

group_genus&#61;data.frame(Genus)

rownames(group_genus)&#61;colnames(data_norm)

# 模拟物种分组文件

group_genus

# 查看&#xff1a;

5c8236d7f460e7bebe84172d0092991e.png

colors&#61;list(Group&#61;c(A&#61;"#1B9E77", B&#61;"#D95F02"))

# 自定义样品分组颜色&#xff0c;物种/Genus分组使用默认颜色

pheatmap(data_norm, annotation_col&#61;group_genus, annotation_row&#61;group_sample, annotation_colors&#61;colors)

# 绘制热图&#xff0c;结果如下&#xff1a;

97b9b5479b53b3ef7440f8012cddbd99.png

感谢阅读~ 




c069d033ac008bb62c6c57c1d922346f.png你可能还喜欢c069d033ac008bb62c6c57c1d922346f.png

1 技术贴 | 16S专题 | 简单介绍如何用自己的笔记本处理高通量16S数据

2 技术贴 | 宏基因组专题 | 组装工具盘点和比较

3 技术贴 | R语言菌群Alpha多样性分析和绘图

4 技术贴 | 宏转录组专题 | DDBJ数据库&#xff1a;宏转录组测序数据下载

5 技术贴 | R语言pheatmap聚类分析和热图


微生态科研学术群期待与您交流更多微生态科研问题

(联系微生态老师即可申请入群)

cf8c783f70cbb0919012cde5fa7cb34f.png

了解更多菌群知识&#xff0c;请关注“微生态”。

40cd536937c556826d11ebe143485173.png




推荐阅读
author-avatar
张鹏22_981
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有