# 安装包
if (!requireNamespace("sigminer", quietly = TRUE)) {
install_github("ShixiangWang/sigminer")
}
# 加载包
library(sigminer)分组比较热图
注记
Hiplot 网站
本页面为 Hiplot Group-comparison Heatmap 插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:
分组比较热图提供了一种进行多组比较并使用热图可视化的紧凑方式,以替换绘制许多个箱线图。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
sigminer
数据准备
# 加载数据
data <- read.delim("files/Hiplot/082-group-comparison-data.txt", header = T)
# 查看数据
head(data) g1 g2 e1 e2
1 A AA N -1.8060313
2 A AA N -0.5820759
3 A AA N -1.1088896
4 A AA N -1.0149620
5 A AA P -0.1623095
6 A AA N 0.5630558
可视化
# 定义绘图函数
unlist_and_covert <- function(x, recursive = FALSE) {
if (!is.null(x)) {
x <- unlist(x, recursive = recursive)
if (!is.null(x)) {
y <- sapply(x, function(x) {
if (identical(x, "NA")) NA else x
})
names(y) <- names(x)
x <- y
}
}
x
}
plotentry <- function(data,
grp_vars = NULL, enrich_vars = NULL, cross = TRUE,
co_method = c("t.test", "wilcox.test"), ref_group = NA,
scales = "free", add_text_annotation = TRUE,
fill_by_p_value = TRUE, use_fdr = TRUE, cut_p_value = FALSE,
cluster_row = FALSE) {
ref_group <- unlist_and_covert(ref_group)
if (is.null(ref_group)) ref_group <- NA
rv <- group_enrichment(data, grp_vars, enrich_vars, cross, co_method, ref_group)
if (length(unique(rv$grp_var)) == 1) {
p <- show_group_enrichment(rv,
return_list = TRUE,
scales = scales, add_text_annotation = add_text_annotation,
fill_by_p_value = fill_by_p_value, use_fdr = use_fdr, cut_p_value = cut_p_value,
cluster_row = cluster_row
)
p <- p[[1]]
} else {
p <- show_group_enrichment(rv,
scales = scales, add_text_annotation = add_text_annotation,
fill_by_p_value = fill_by_p_value, use_fdr = use_fdr, cut_p_value = cut_p_value,
cluster_row = cluster_row
)
}
return(p)
}
# 绘制图形
p <- plotentry(
data = data,
grp_vars = "g1",
enrich_vars = c("e1", "e2"),
cross = T,
add_text_annotation = T,
fill_by_p_value = T,
use_fdr = T,
cut_p_value = F,
cluster_row = F,
co_method = "t.test",
scales = "free"
)
p
