書接上期(單細(xì)胞組學(xué) | 第19期. 單細(xì)胞數(shù)據(jù)分析的核心環(huán)節(jié),必學(xué)!),我們完成了細(xì)胞注釋,并且繪制出了一幅經(jīng)典的UMAP圖(圖1)。下面將循序漸進(jìn)地介紹幾種美化方案,希望給大家一些美化自己的UMAP圖的靈感。

圖1
在2017年Cell的一篇文章中,畫出了包含橢圓置信區(qū)間的患者細(xì)胞分群t-SNE圖,如圖2所示。

圖2
下面我們一起基于圖1,一步步美化。繪制UMAP及之前的代碼和上期相同。1)使用ggplot2 R包重新繪制UMAP圖并獲取每個(gè)細(xì)胞的坐標(biāo)
df1=Hu_AO_db_QC2@reductions$umap@cell.embeddings %>%
as.data.frame() %>%
cbind(cluster=Hu_AO_db_QC2@meta.data$seurat_clusters)
plot1=ggplot(df1, aes(umap_1, umap_2, color=Hu_AO_db_QC2@meta.data$Major_celltype))+
geom_point(size = 0.01,alpha = 0.1) + # 設(shè)置點(diǎn)的大小為1
geom_point()+
theme_classic()+labs(title=1)

圖3 細(xì)胞位置信息

圖4
plot2=plot1 + stat_ellipse(aes(x = umap_1, y = umap_2, fill = Hu_AO_db_QC2@meta.data$Major_celltype), geom = "polygon",
linetype=2, # 橢圓線
alpha = 0.25, #橢圓背景填充色不透明度
linewidth = 0.5, # 設(shè)置橢圓置信區(qū)間的邊界線寬度
show.legend = FALSE, #去掉橢圓對(duì)應(yīng)的圖例
level = 0.95)+labs(title=2) #level置信區(qū)間

圖5
colors2 <- c("#96C3D8", "#F5B375", "#C0937E", "#67A59B", "#A5D38F", "#8D75AF", "#F19294", "#E45D61", "#BDA7CB")
plot3= plot2+
scale_fill_manual(values=colors2)+
scale_color_manual(values=colors2)+labs(title=4)

圖6
美化方案2: 為每一群細(xì)胞添加輪廓線并更改圖例
和美化方案1相似,首先要獲取每個(gè)細(xì)胞的坐標(biāo),再給每群細(xì)胞加上輪廓線,不規(guī)則輪廓線的添加同樣還是基于置信區(qū)間橢圓。此外,圖例也進(jìn)行了美化。
plotData <- as.data.frame(Hu_AO_db_QC2[["umap"]]@cell.embeddings)
plotData$cluster <- Hu_AO_db_QC2@meta.data$Major_celltype
plot4 = ggplot(plotData, aes(x = umap_1, y = umap_2, fill = Hu_AO_db_QC2@meta.data$Major_celltype, color = Hu_AO_db_QC2@meta.data$Major_celltype)) +
stat_unchull(alpha = 0.25, size = 0.25, delta = 0.5) +
stat_ellipse(level = 0.95) +
geom_point(size = 0.1) +
theme(
aspect.ratio = 1,
panel.background = element_blank(),
panel.grid = element_blank(),
axis.line = element_line(),
)

美化方案3:對(duì)輪廓線的修飾并更改配色
將細(xì)胞群的輪廓線從實(shí)線更改為虛線,并且更改配色。set.seed(0816)
col <- sample(RColorBrewer::brewer.pal(10, "Paired"))
plot5 = ggplot(plotData, aes(x = umap_1, y = umap_2, fill = Hu_AO_db_QC2@meta.data$Major_celltype, color = Hu_AO_db_QC2@meta.data$Major_celltype)) +
stat_unchull(alpha = 0.25, size = 0.25, lty = 2, delta = 0.5) +
geom_point(size = 0.5, show.legend = FALSE) +
theme(
aspect.ratio = 1,
panel.background = element_blank(),
panel.grid = element_blank(),
axis.line = element_line(arrow = arrow(type = "closed")),
axis.title = element_text(hjust = 0.05, face = "italic",size = 14)
) +
guides(color = FALSE, x = axis, y = axis) +
guides(color = FALSE, x = axis, y = axis) +
scale_x_continuous(breaks = NULL) +
scale_y_continuous(breaks = NULL) +
scale_fill_manual(values = col) +
scale_color_manual(values = col))

圖8
美化方案3:對(duì)UMAP坐標(biāo)軸的修飾
1)對(duì)UMAP坐標(biāo)軸進(jìn)行縮放
一改以往一以貫之的坐標(biāo)軸表現(xiàn)形式,通過對(duì)UMAP坐標(biāo)軸進(jìn)行縮放(截?cái)噍S),將坐標(biāo)軸放到左下角,就會(huì)使UMAP圖更加高級(jí)起來。
axis <- ggh4x::guide_axis_truncated(
trunc_lower = unit(0, "npc"),
trunc_upper = unit(3, "cm")
)
Plot6 = ggplot(plotData, aes(x = umap_1, y = umap_2, fill = Hu_AO_db_QC2@meta.data$Major_celltype, color = Hu_AO_db_QC2@meta.data$Major_celltype)) +
stat_unchull(alpha = 0.25, size = 0.25,delta = 0.5,lty = 1) +
geom_point(size = 0.2, show.legend = FALSE) +
theme(
aspect.ratio = 1,
panel.background = element_blank(),
panel.grid = element_blank(),
axis.line = element_line(arrow = arrow(type = "closed")),
axis.title = element_text(hjust = 0.05, face = "italic")) +
guides(color = FALSE, x = axis, y = axis) +
scale_x_continuous(breaks = NULL) +
scale_y_continuous(breaks = NULL))

圖9
2)更改坐標(biāo)軸標(biāo)簽字體大小

圖10
美化方案5:只重點(diǎn)突出強(qiáng)調(diào)目的細(xì)胞群
單細(xì)胞UMAP圖只標(biāo)記特定細(xì)胞群,可以通過設(shè)置顏色實(shí)現(xiàn)。“刻意”安排好顏色順序,將需要標(biāo)注的群設(shè)置為需要的顏色,其他的群設(shè)置為灰色即可,如下圖紅色和藍(lán)色細(xì)胞群。
colors <- c("grey","#FB8072","grey","grey","grey","grey","grey","grey","#7BAFDE")
plot6 <- DimPlot(Hu_AO_db_QC2, reduction = "umap", group.by = "active.ident", label = TRUE) +
scale_color_manual(values = colors) +
NoLegend()

圖11
美化方案6:AI實(shí)現(xiàn)手動(dòng)對(duì)目標(biāo)細(xì)胞群的圈選和注釋
上述美化方案中分享了通過R來給細(xì)胞群添加置信橢圓和輪廓線,但涉及到更為復(fù)雜的不規(guī)則圈選時(shí),使用R語言不僅費(fèi)時(shí)難度系數(shù)高,還不一定能達(dá)到預(yù)期的圈選效果(我們這里也可以發(fā)現(xiàn)上述圈選時(shí)有兩個(gè)細(xì)胞群未被圈?。?。那我們?cè)撛趺崔k呢?
辦法總比困難多,這時(shí)候AI(Adobe Illustrator)來出手!AI不僅可以進(jìn)行科研繪圖(詳見科研工具系列合集),在單細(xì)胞繪圖美化上,如添加指示箭頭、對(duì)應(yīng)文本標(biāo)簽等也是手到擒來。下面簡單演示通過AI進(jìn)行標(biāo)簽的添加,更多更具體的AI美化方法,如有需要,在之后的推送里會(huì)詳細(xì)介紹。
圖12
2)使用文本工具給細(xì)胞群添加標(biāo)簽
圖13
以上僅是介紹了簡單的幾種美化方案,下面分享一些實(shí)用的單細(xì)胞配色。