热门标签 | 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




推荐阅读
  • 记录一些 Latex 的技巧
    Latex一些技巧:1.如何创建不浮动的的figure和table\makeatletter\newcommand{\figcaption}{\def\captyp ... [详细]
  • Unity Graphic功能,实现UGUI上三角形,四边形,圆环的绘制
    前言这篇简单的纪录下利用Graphic类,实现UGUI圆环的绘制。效果图如下:github目录:https:github.comluck ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 开发笔记:小白python机器学习之路——支持向量机
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了小白python机器学习之路——支持向量机相关的知识,希望对你有一定的参考价值。支持 ... [详细]
  • POJ 1046 Color Me Less
    ColorMeLessTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 31449 Accept ... [详细]
  • 我正在使用ChemDoodleWebComponents在网页上显示分子。基本上,我可以在我的页面中插入以下脚本,它将创建一个HTML5canvas元素来显示分子。vartrans ... [详细]
  • 如何用R语言做词云图,以某部网络小说为例
    作者:horoR语言中文社区专栏作者知乎ID:https:www.zhihu.compeoplelin-jia-chuan前言一开始,我在 ... [详细]
  • 循环发电厂电能输出预测
    前言本次项目是就某联合循环发电厂的数据,运用线性回归模型进行预测电能输出,若文中出现错误的地方,还望指正,谢谢!目录1.数据来源及背景2.数据探索分析3.相关分析4.回 ... [详细]
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社区 版权所有