使用R语言pheatmap绘制基因表达量热图及聚类报错求助
问题原因与可运行代码
报错核心原因有三点:
- 表达矩阵中存在基因行所有样本表达值完全一致,行标准化后产生Inf/NA值,导致聚类计算失败
- 参数拼写错误:pheatmap关闭列聚类的参数为
cluster_cols,你编写的cluster_column是无效参数,不会被识别 - 缺少文献要求的「行采用相关性聚类距离」配置,pheatmap默认使用欧氏距离,需要额外指定参数
完整运行代码
# 首次运行请先安装依赖包,去掉前面的#执行即可 # install.packages(c("pheatmap","RColorBrewer")) library(pheatmap) library(RColorBrewer) # 读取原始数据 df <- read.delim("R.txt", header=T, row.names="Gene") df_matrix <- data.matrix(df) # 预处理:删除标准差为0的基因行,避免标准化后产生无效值 df_matrix_filter <- df_matrix[apply(df_matrix, 1, function(x) sd(x) != 0), ] # 如果你的数据存在缺失值,可加下面这行把缺失值替换为0 # df_matrix_filter[is.na(df_matrix_filter)] <- 0 # 绘制符合文献要求的热图 pheatmap( mat = df_matrix_filter, main = "Heatmap of Extracellular Genes", # 匹配文献要求:行采用相关性聚类距离 clustering_distance_rows = "correlation", clustering_method = "complete", # 关闭列聚类 cluster_cols = FALSE, # 行标准化,放大基因在不同组的表达差异 scale = "row", color = colorRampPalette(rev(brewer.pal(n = 10, name = "RdYlBu")))(10), show_rownames = TRUE, drop_levels = TRUE, fontsize = 5, fontsize_col = 10, cellwidth = 40 )
内容的提问来源于stack exchange,提问作者Huzaifa Arshad
相关产品推荐
相关产品推荐

