分享

单细胞组学 | 第20期. 美无极限——卷起来的UMAP图美化方案

 新用户4064dVjo 2024-04-30 发布于北京
本系列推送旨在带领生信零基础的科研人一起入门单细胞(核)转录组数据分析。

CNS顶刊炫酷的UMAP图到底是怎么画的?作为单细胞分析的常规figure——UMAP层出不穷的美化方案只有你不敢想,没有做不到的。本文带你get单细胞UMAP还可以这么画,当然还有很多实用的单细胞分析配色分享哦!


往期回顾:

MASCU

第1期.单细胞测序:揭开生命奥秘的钥匙

第2期.下游数据质控知多少

第3期.Seurat之PBMC分析标准化流程

第4期.写文章时需要用到的单细胞转录组测序原理

第5期.单细胞测序文件面面观

第6期.10X genomics 上游分析-cellranger介绍

第7期.10X genomics 上游分析-cellranger应用

第8期.一文打通单细胞测序研究思路

第9期.Zenodo一个宝藏公共数据库和单细胞的不解之缘

第10期.生物信息学必须了解的数据库

第11期.不会还有人不知道这个免费一年的云服务吧!?

第12期.单细胞分析数据下载、导入和合并

第13期.单细胞测序中竟然存在双细胞?

第14期.想发单细胞测序文章?这一步必学!

15.一份强烈推荐收藏的细胞周期校正宝典!

16.不可不知的单细胞流程

第17期. 找到Cluster的领头羊

18. 单细胞注释不再是烦恼!

19. 单细胞数据分析的核心环节,必学!

Introduction 

在本系列的推送中,我们之前给大家分享了:

①单细胞(核)RNA测序的原理;

②基于Cellranger的上游分析;

③数据下载/导入/合并;

数据质控(包括细胞质控和基因质控);并铺垫了细胞注释前几个数据处理技能(包括细胞周期矫正、去批次、差异分析)。

⑤细胞注释

本期在上期的细胞注释分群的UMAP图基础上,进一步探讨UMAP图的美化方案及配色分享。

本期将给大家分享以下2个方面:

1. 浅谈UMAP图的美化方案

2. R作图 (单细胞) 的配色分享

TS

01

浅谈UMAP图的美化方案

书接上期(单细胞组学 | 第19期. 单细胞数据分析的核心环节,必学!),我们完成了细胞注释,并且绘制出了一幅经典的UMAP图(图1)。下面将循序渐进地介绍几种美化方案,希望给大家一些美化自己的UMAP图的灵感。

图1

美化方案1: 为每一群细胞添加椭圆边界

2017Cell的一篇文章中,画出了包含椭圆置信区间的患者细胞分群t-SNE图,如图2所示。

图2

下面我们一起基于图1,一步步美化。绘制UMAP及之前的代码和上期相同。

1)使用ggplot2 R包重新绘制UMAP图并获取每个细胞的坐标

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) +  # 设置点的大小为1
  geom_point()+
  theme_classic()+labs(title=1)

图3 细胞位置信息

图4 

2)为每群细胞加上椭圆边界
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,  # 设置椭圆置信区间的边界线宽度
                  show.legend = FALSE, #去掉椭圆对应的图例
                  level = 0.95)+labs(title=2) #level置信区间

图5 

3)重新给每群细胞指定颜色
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: 为每一群细胞添加轮廓线并更改图例

和美化方案1相似,首先要获取每个细胞的坐标,再给每群细胞加上轮廓线,不规则轮廓线的添加同样还是基于置信区间椭圆。此外,图例也进行了美化。

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(),
  )

图7

美化方案3:对轮廓线的修饰并更改配色


将细胞群的轮廓线从实线更改为虚线,并且更改配色。
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:对UMAP坐标轴的修饰

1对UMAP坐标轴进行缩放

一改以往一以贯之的坐标轴表现形式,通过对UMAP坐标轴进行缩放截断轴,将坐标轴放到左下角,就会使UMAP图更加高级起来。

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)更改坐标轴标签字体大小

图10

美化方案5:只重点突出强调目的细胞群


细胞UMAP图只标记特定细胞群,可以通过设置颜色实现。“刻意”安排好颜色顺序,将需要标注的群设置为需要的颜色,其他的群设置为灰色即可,如下图红色和蓝色细胞群。

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实现手动对目标细胞群的圈选和注释

上述美化方案中分享了通过R来给细胞群添加置信椭圆和轮廓线,但涉及到更为复杂的不规则圈选时,使用R语言不仅费时难度系数高,还不一定能达到预期的圈选效果(我们这里也可以发现上述圈选时有两个细胞群未被圈住)。那我们该怎么办呢?

办法总比困难多,这时候AIAdobe Illustrator来出手!AI不仅可以进行科研绘图(详见科研工具系列合集),在单细胞绘图美化上,如添加指示箭头、对应文本标签等也是手到擒来。下面简单演示通过AI进行标签的添加,更多更具体的AI美化方法,如有需要,在之后的推送里会详细介绍。
1)将绘制出的UMAP图导入到AI

图12

2使用文本工具给细胞群添加标签

图13

以上仅是介绍了简单的几种美化方案,下面分享一些实用的单细胞配色。

TS

02

R做图(单细胞)的配色分享

在之前Bilibili“开心doctor”的壮观老师分享的公开课《R语言科研绘图之化繁为简》中,已经介绍了几种R作图的配色方案,下面我再来总结一下。


1)基于已有的配色方案

① RColorBrewer包

网址:

https:///#type=sequential&scheme=BuGn&n=3
RColorBrewer包提供了三种类型的配色方案,用于在R中创建各种颜色调色板。
顺序(Sequential)配色方案适用于连续型数据,颜色随着数据值的变化而逐渐改变。通常用于表示数据的渐变。
发散(Diverging)配色方案: 适用于呈现数据的变化趋势,数据集中在某一点附近的变化情况。通常用于显示数据的偏离或对比。

定性(Qualitative)配色方案: 适用于离散型数据,每个类别的数据用不同的颜色表示。通常用于表示分类或分组的数据。

carto包

网址:https:///carto-colors/


③ viridis

④ colorspace包

 ggsci
网址:https:///ggsci/articles/ggsci.html

ggsci包内有不同期刊配色汇总:

使用ggsci包中的配色美化的上述UMAP图如下所示。

library(ggsci)
plot8 = DimPlot(Hu_AO_db_QC2, reduction = "umap", group.by = "active.ident", label = TRUE) +
  scale_color_npg(alpha = 0.1)

图14

2)自创或从文献中借鉴配色方案

已有的配色方案往往不能满足生信可视化对美的要求,这时候美无极限、最具个性化的配色源于自己平时阅读文献时的配色积累加上合理搭配实现的例如本篇中对UMAP图美化时的配色就是如此。

在本公众号中专门有的科研配色系列(详见科研工具系列合集),帮助大家在阅读文献中积累配色,大家喜欢可以借鉴!下图是一些自定义配色方案供参考。

图15


以上就是本期推送的全部内容,大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话”栏目中提出,我们会尽快回复!


参考文献:

1.Zheng C, Zheng L, Yoo JK, et al. Landscape of Infiltrating T Cells in Liver Cancer Revealed by Single-Cell Sequencing. Cell. 2017;169(7):1342-1356.e16.



期待已久~|R语言与组学互助交流群来啦!

(欢迎大家入群交流~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多