gpt4 book ai didi

r - ComplexHeatmap:如何以不同方式放置热图图例和注释图例?

转载 作者:行者123 更新时间:2023-12-05 02:40:37 33 4
gpt4 key购买 nike

我用library(ComplexHeatmap)制作了这个图

enter image description here

我希望 Z-score 位于底部位置,而类别变量显示在右侧。 This post接近了,但我无法像下面的脚本那样使用 rowAnnotation 让它工作。

预期输出

enter image description here

有了这些数据:

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"
)

最佳答案

尝试使用draw命令的选项legend_grouping = "original"

library(ComplexHeatmap)
library(circlize)

set.seed(123)
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)]))
And using this script

df <- data.frame(Case = hmap[, c(13:14)]$malig,
Type = hmap[, c(13:14)]$type)

annot <- rowAnnotation(
df = data.frame(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)))
)

htmp <- 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 = annot,
heatmap_legend_param = list(
legend_direction = "horizontal",
legend_width = unit(6, "cm")),
)

draw(htmp, heatmap_legend_side="bottom", annotation_legend_side="right",
legend_grouping = "original")

enter image description here

关于r - ComplexHeatmap:如何以不同方式放置热图图例和注释图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68483646/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com