# Install packages
if (!requireNamespace("sigminer", quietly = TRUE)) {
install_github("ShixiangWang/sigminer")
}
# Load packages
library(sigminer)
Group-comparison Heatmap
Group-comparison Heatmap provides a way to compare multiple variables across multiple (>2) groups and visualize the result with heatmap.
Setup
System Requirements: Cross-platform (Linux/MacOS/Windows)
Programming language: R
Dependent packages:
sigminer
Data Preparation
# Load data
<- read.delim("files/Hiplot/082-group-comparison-data.txt", header = T)
data
# View 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
Visualization
# Define plot functions
<- 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)
}
# plot
<- 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
