# 安装包
if (!requireNamespace("sigminer", quietly = TRUE)) {
install_github("ShixiangWang/sigminer")
}
# 加载包
library(sigminer)
分组比较热图
分组比较热图提供了一种进行多组比较并使用热图可视化的紧凑方式,以替换绘制许多个箱线图。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
sigminer
数据准备
# 加载数据
<- read.delim("files/Hiplot/082-group-comparison-data.txt", header = T)
data
# 查看数据
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
可视化
# 定义绘图函数
<- function(x, recursive = FALSE) {
unlist_and_covert if (!is.null(x)) {
<- unlist(x, recursive = recursive)
x if (!is.null(x)) {
<- sapply(x, function(x) {
y if (identical(x, "NA")) NA else x
})names(y) <- names(x)
<- y
x
}
}
x
}
<- function(data,
plotentry 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) {
<- unlist_and_covert(ref_group)
ref_group if (is.null(ref_group)) ref_group <- NA
<- group_enrichment(data, grp_vars, enrich_vars, cross, co_method, ref_group)
rv if (length(unique(rv$grp_var)) == 1) {
<- show_group_enrichment(rv,
p 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[[1]]
p else {
} <- show_group_enrichment(rv,
p 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)
}
# 绘制图形
<- plotentry(
p 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
