前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pheatmap带你轻松绘制聚类相关性热图

pheatmap带你轻松绘制聚类相关性热图

作者头像
R语言数据分析指南
发布2023-08-18 13:37:18
8480
发布2023-08-18 13:37:18
举报

欢迎关注R语言数据分析指南

❝最近有朋友询问如何使用「pheatmap」绘制相关性热图,小编之前已经写过各种ggplot2风格的热图,但是对于pheatmap却是很少涉及,这一节就来介绍一下「pheatmap绘制相关性热图」,希望各位观众老爷能够喜欢。 ❞

加载R包

代码语言:javascript
复制
library(tidyverse)
library(psych)
library(pheatmap)
library(magrittr)
# devtools::install_github("thomasp85/scico")
library(scico)

导入数据

代码语言:javascript
复制
# 读取环境数据文件并存储到env变量中,使用tab作为分隔符,第一列作为行名,不检查列名的合法性
env <- read.delim("env.xls", header = TRUE, sep = "\t", row.names = 1, check.names = FALSE)

# 读取物种数据文件并存储到genus变量中,使用tab作为分隔符,第一列作为行名,不检查列名的合法性
genus <- read.delim("genus.xls", header = TRUE, sep = "\t", row.names = 1, check.names = FALSE) %>%
  t() %>% as.data.frame()

相关性分析

代码语言:javascript
复制
# 使用pearson方法计算环境数据和物种数据之间的相关系数和p-value,并进行多重比较法的FDR校正
pp <- corr.test(env, genus, method = "pearson", adjust = "fdr")
cor <- pp$r # 获取相关系数矩阵
pvalue <- pp$p # 获取p-value矩阵

数据整合

代码语言:javascript
复制
# 将相关系数矩阵转换为长格式,并添加p-value和显著性符号列
df <- melt(cor) %>% 
  mutate(pvalue = melt(pvalue)[, 3],
         p_signif = symnum(pvalue, corr = FALSE, na = FALSE,  
                           cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
                           symbols = c("***", "**", "*", "", " "))) %>% 
  set_colnames(c("env", "genus", "r", "p", "p_signif"))

格式转换

❝由于后面我们需要使用pheatmap绘图,因此在此需要将长数据转换为宽表 ❞

代码语言:javascript
复制
#将相关系数矩阵转换为宽格式,行名为环境变量,列名为物种,值为相关系数
rvalue <- df %>% 
  select(1, 2, 3) %>% 
  pivot_wider(names_from = "genus", values_from = r) %>% 
  column_to_rownames(var = "env")

# 将显著性符号矩阵转换为宽格式,行名为环境变量,列名为物种,值为显著性符号
pvalue <- df %>% 
  select(1, 2, 5) %>% 
  pivot_wider(names_from = "genus", values_from = p_signif) %>% 
  column_to_rownames(var = "env")

定义颜色

在此使用昨天介绍的「scico」包制作一个调色板

代码语言:javascript
复制
mycol <- scico(100, palette = "vik")

pheatmap绘制热图

代码语言:javascript
复制
# 绘制热图,显示相关系数,行列聚类,无边框,显示p-value作为数字,设置数字字体大小和颜色
# 设置主标题为空格,设置单元格宽度和高度,使用自定义颜色映射
pheatmap(rvalue, scale = "none", cluster_row = TRUE, cluster_col = TRUE, border = NA,
         display_numbers = pvalue, fontsize_number = 12, number_color = "white",
         main = " ",
         cellwidth = 21, cellheight = 20, color = mycol)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南
  • 加载R包
  • 导入数据
  • 相关性分析
  • 数据整合
  • 格式转换
  • 定义颜色
  • pheatmap绘制热图
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档