基于FeaturePlot参数调优及ggplot2美化

学术   2024-11-13 18:10   广东  

前情提要

上周整理了FeaturePlot可视化及常用参数浅析

上篇推文中,一起基于PBMC3k的示例数据了解了一下FeaturePlot可视化的结果,以及常用参数

那这期基于常用参数以及ggplot2去美化一下FeaturePlot结果。

FeaturePlot结果数据

美化结果图之前,我们先来看看FeaturePlot绘图得到的结果数据都有什么内容

p <- FeaturePlot(sce.all.int, features = "CD3D")

还是一样的,将绘图结果保存为一个变量,就可以查看。

首先class(p)查看一下属性

结果显示对象p是一个由patchwork包处理过的ggplot2图形对象,可能是由多个ggplot对象组合而成的复杂图形布局。这种对象可以包含多个图层、主题、注释和布局设置,用于创建丰富的数据可视化。

绘图结果数据详情:

主要的数据存放在data里面,可以通过View(p[[1]][["data"]])查看

  • data: 是一个数据框(data frame),包含了用于绘图的数据。它有13926行和4列,每一行代表一个细胞,每一列代表一个特定的变量,如umap_1和umap_2,ident,CD3D等内容。

  • umap_1, umap_2: 代表了UMAP降维后的x和y坐标。

  • ident: 表示每个细胞所属的簇。在infb示例数据中,有5个不同的簇标签:"mono", "pDC", "Tcells", "Bcells", "NK"。

  • CD3D: 代表关注的特定基因(如CD3D)的表达水平。

layers项:

  • layers: 包含了图层的信息,用于在图表中添加额外的图层。

    • aes_params, geom_params, stat_params: 包含了用于ggplot2的美学(aesthetics)参数、几何对象(geom)参数和统计变换(stat)参数。

    • theme: 包含了图表的主题设置,如坐标轴文本的角度、轴标题的大小等。

    • labels: 包含了图表的标题、轴标签等。

    • scales: 包含了图表的比例尺设置。

    • guides: 包含了图表的图例和其他指南元素。

    • mapping: 定义了数据如何映射到图表的美学属性。

    • position: 可能包含了图层的位置信息。

    • show.legend: 指示是否显示图例。

其余就是用于定义图表的比例和图例以及定义图表的坐标系统

FeaturePlot美化

1. 调整颜色突出基因

在之前的推文让单细胞差异更加明显你需要调整配色方案中提到,如果当默认配色没有很显著的展示差异,就可以调整配色

g2 = c('CD3D''CD3E''CD79A','MS4A1','S100A8','S100A9')

p <- FeaturePlot(sce.all.int, features = g2);p

调整合适的配色

p1 <- FeaturePlot(sce.all.int, features = g2,
                  cols=c("lightblue""white""darkred"));p1

注意:

当使用cols指定需要的颜色时,FeaturePlot会根据所提供的颜色来自动调整图例,使其反映颜色的变化范围。

比如在这里使用cols参数,提供了一个从浅蓝色到深红色的渐变(c("lightblue", "white", "darkred")),FeaturePlot会假设是在进行一个连续的数值映射(比如基因表达量、细胞的分数等)。因此,图例会显示一个渐变色条,表示该数值范围的颜色分布。

Featureplot美化推文中介绍了viridis提供的五种色带,大家可以按需选择。

2. 调整图例标签

FeaturePlot是默认有坐标轴以及图例的,如果我们不需要或者想要改变形状,可以使用参数**NoLegend()、NoAxes()以及theme()**进行调整

去掉坐标轴以及图例,并且加上边框

FeaturePlot(sce.all.int, features = g2, cols = c("lightblue""white""darkred"))&NoLegend()+NoAxes()+
  theme(panel.border = element_rect(fill = NA,color = "black",
                                    size=1.5,linetype = "solid"))

仅去除坐标轴

FeaturePlot(sce.all.int, features = g2, cols = c("lightblue""white""darkred"))&NoAxes()

小tips:使用&符号替代+号,对全部的featurePlot结果进行调整

Featureplot美化推文中使用循环依次调整每个基因可视化的结果,因为如果直接使用+号的话,只会只会只改最后一个图,使用&符号的时候是会全部都改掉

参考:可视化单细胞亚群的标记基因的5个方法的升级版

3. 根据分组进行展示

通过split.by参数可以选择合适的分组进行分开展示

#分组展示----
FeaturePlot(sce.all.int, features = c("CD3D",'CD3E'), cols = c("lightblue""white""darkred"),
            split.by = "stim")
            

但是就算并不使用NoLegend()参数,也没有图例信息,有点奇怪,后续会使用scCustomize进行可视化

FeaturePlot(sce.all.int, features = c("CD3D",'CD3E'), cols = c("lightblue""white""darkred"),
            split.by = "stim")&NoAxes()+
  theme(panel.border = element_rect(fill = NA,color = "black",
                                    size=1.5,linetype = "solid"))
                                    

文末小结及友情宣传

这期推文整理了FeaturePlot结果数据,以及根据FeaturePlot参数和ggplot2参数进行结果的美化

如果你也想做单细胞转录组数据分析,最好是有自己的计算机资源哦,比如我们的2024的共享服务器交个朋友福利价仍然是800,而且还需要有基本的生物信息学基础,也可以看看我们的生物信息学马拉松授课,你的生物信息学入门课。


单细胞天地
对应生信技能树论坛›研究热点›单细胞测序版块,力求全方位收集整理分享单细胞测序数据的应用,涵盖多种组学,多种疾病,发育机理,药物开发等等
 最新文章