Аргумент col
должен быть именованным списком, а элементы в col
должны быть именованными векторами. например,
col1 <- list(a = c(cat = "red", dog = "blue", mouse = "green"))
col1
# $a
# cat dog mouse
# "red" "blue" "green"
Вы можете создать цвета для соответствующих строк my_groups
.
p + ComplexHeatmap::rowAnnotation(
df = my_groups,
col = col1,
show_annotation_name = TRUE)
![image](https://i.stack.imgur.com/bJots.png)
Конечно, хотя я вручную устанавливаю цвета один одним из них в моем примере вы можете создавать причудливые цветовые векторы с помощью RColorBrewer
или других пакетов. Не забудьте сделать вектор и список именованными.
Чтобы сделать пример более сложным:
a <- c("cat","dog","mouse")
b <- c(rep("group1", 2), "group2")
my_groups <- data.frame(a, b)
col1 <- setNames(RColorBrewer::brewer.pal(3, "Set1"), a)
col2 <- setNames(RColorBrewer::brewer.pal(3, "Dark2"), b)
col.list <- list(a = col1, b = col2)
# $a
# cat dog mouse
# "#E41A1C" "#377EB8" "#4DAF4A"
#
# $b
# group1 group1 group2
# "#1B9E77" "#D95F02" "#7570B3"
p + ComplexHeatmap::rowAnnotation(
df = my_groups,
col = col.list,
show_annotation_name = TRUE)
![image](https://i.stack.imgur.com/Z8FPR.png)