我制作了这个情节library(ComplexHeatmap)
我希望Z-score
在底部位置,而右侧显示类别变量。这篇文章rowAnnotation
很接近,但我无法使用下面的脚本让它工作。
预期产出
有了这些数据:
set.seed(123)
library(ComplexHeatmap)
mat = matrix(rnorm(96, 2), 8, 12)
mat = rbind(mat, matrix(rnorm(48, -2), 4, 12))
hmap <- as.data.frame(t(mat))
hmap$type <- rep(c("Ctrl", "Cell_type1", "Cell_type2"), 4)
hmap$malig <- ifelse(hmap$type == "Ctrl", "Ctrl", "Tumor")
hmap_bt <- scale(as.matrix(hmap[, -c(13:14)]))
并使用这个脚本
draw(Heatmap(hmap_bt,
name = "Z-score",
col = colorRamp2(c(-2, 0, 2), c("#6DBCC3", "white", "#8B3A62")),
show_column_names = FALSE,
show_column_dend = FALSE,
column_km = 3,
left_annotation = rowAnnotation(Case = hmap[, c(13:14)]$malig,
Type = hmap[, c(13:14)]$type,
col = list(Case = c("Ctrl" = "#D1B551", "Tumor" = "#678F53"),
Type = c("Ctrl" = "#D1B551", "Cell_type1" = "green", "Cell_type2" = "blue")),
annotation_legend_param = list(
Case = list(
title_gp = gpar(fontsize = 16,
fontface = "bold"),
labels_gp = gpar(fontsize = 16)),
Type = list(
title_gp = gpar(fontsize = 16,
fontface = "bold"),
labels_gp = gpar(fontsize = 16)))),
heatmap_legend_param = list(
legend_direction = "horizontal",
legend_width = unit(6, "cm")),
),
heatmap_legend_side = "bottom"
)