Seurat DimPlot - выделение определенных групп ячеек разными цветами

Прошу прощения за вопрос, который может быть очень простым, но я не могу понять этого:

У меня есть объект Seurat с 20 различными группами ячеек (все они определены в метаданных и установлены как active.ident). 10 из них "обработаны", а 10 "не обработаны" (эта информация также есть в метаданных).

Пакет R Seurat

Я пытаюсь создать 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"))
Другие вопросы по тегам