前情提要
上篇推文中,一起基于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美化推文中使用循环依次调整每个基因可视化的结果,因为如果直接使用+号的话,只会只会只改最后一个图,使用&符号的时候是会全部都改掉
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,而且还需要有基本的生物信息学基础,也可以看看我们的生物信息学马拉松授课,你的生物信息学入门课。