求识别该细菌分离株与β-内酰胺酶基因关联图名称及R复现方法
图表名称及R语言复现方法
图表名称
你要复现的是存在-缺失热图(Presence-Absence Heatmap),属于热图的一类,核心用来展示不同样本(按细菌种类分组的患者分离株)中目标基因(β-内酰胺酶基因)的存在或缺失状态,通常用颜色差异直观区分基因的有无。
R语言复现步骤
1. 准备工具包
先安装并加载常用的绘图与数据处理包:
# 安装包(首次运行时执行) install.packages(c("ggplot2", "dplyr", "tidyr", "pheatmap")) # 加载包 library(ggplot2) library(dplyr) library(tidyr) library(pheatmap)
2. 构造示例数据
模拟符合需求的存在-缺失数据集(实际使用时替换为你的真实实验数据):
# 宽格式数据:行=菌株(按细菌种类标注),列=基因,值=1(存在)/0(缺失) sample_data <- data.frame( 菌株 = c("大肠杆菌-株1", "大肠杆菌-株2", "肺炎克雷伯-株1", "肺炎克雷伯-株2", "鲍曼不动杆菌-株1"), blaCTX = c(1, 1, 0, 1, 0), blaTEM = c(1, 0, 1, 1, 1), blaSHV = c(0, 1, 1, 0, 0), blaOXA = c(0, 0, 0, 1, 1) )
3. 用ggplot2绘制热图(适合自定义排版)
先将宽格式数据转换为长格式,再绘图:
# 转换为长格式 long_data <- sample_data %>% pivot_longer(cols = -菌株, names_to = "β-内酰胺酶基因", values_to = "存在状态") # 绘制热图 ggplot(long_data, aes(x = 菌株, y = `β-内酰胺酶基因`, fill = factor(存在状态))) + geom_tile(color = "white", size = 1) + # 色块添加白色边框 scale_fill_manual(values = c("0" = "#f0f0f0", "1" = "#2c3e50"), labels = c("缺失", "存在")) + labs(fill = "基因状态") + theme(axis.text.x = element_text(angle = 45, hjust = 1)) # X轴标签倾斜,避免重叠
4. 用pheatmap绘制热图(适合带聚类的专业热图)
直接使用宽格式数据,可添加行/列聚类功能:
# 提取数值矩阵(去掉菌株列) heat_matrix <- as.matrix(sample_data[, -1]) rownames(heat_matrix) <- sample_data$菌株 # 绘制带聚类的热图 pheatmap(heat_matrix, color = c("#f0f0f0", "#2c3e50"), labels_row = rownames(heat_matrix), main = "菌株-β内酰胺酶基因存在缺失热图", legend_labels = c("缺失", "存在"), cluster_rows = TRUE, # 开启菌株聚类 cluster_cols = TRUE) # 开启基因聚类
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

