Seurat DimPlot - выделение определенных групп ячеек разными цветами
Прошу прощения за вопрос, который может быть очень простым, но я не могу понять этого:
У меня есть объект Seurat с 20 различными группами ячеек (все они определены в метаданных и установлены как active.ident). 10 из них "обработаны", а 10 "не обработаны" (эта информация также есть в метаданных).
Я пытаюсь создать DimPlot, который выделяет по одной группе за раз, но цвета для "обработанных" и "необработанных" должны быть разными.
мой рабочий код выделяет как "обработанные", так и "необработанные" одним цветом:
DimPlot(integrated, label = T, group.by = "Treat",
cells.highlight = WhichCells(integrated,
idents = c("group1_untreated", "group1_treated")),
cols.highlight = c("darkblue", "darkred"), cols = "grey")
Как правильно это делать?
Любые предложения очень ценятся!
1 ответ
Решение
Вы можете извлечь координаты UMAP из объекта Seurat и использовать ggplot
для достижения этой цели.
library(tidyverse)
umap_tx = integrated@reductions$umap@cell.embeddings %>%
as.data.frame() %>% cbind(tx = so@meta.data$Treat)
ggplot(umap_tx, aes(x=UMAP_1, y=UMAP_2, color=tx)) + geom_point() +
scale_color_manual(values=c("group1_untreated" = "darkblue",
"group1_treated" = "darkred"))