VlnPlot结果及常用参数浅析

学术   2024-10-29 22:19   广东  

我们在《单细胞天地》公众号给初学者整理了一个基于r编程语言的Seurat体系的单细胞转录组数据分析可视化专辑,是时候推荐给大家了:

单细胞分析中小提琴图用途

小提琴图是一种在单细胞RNA测序数据分析中常用的可视化工具,它能够展示数据分布的密度估计,并且可以用于比较多个群组的基因表达水平

比如在单细胞分析中,在进行质控前,会使用小提琴图可视化nFeature_RNA, nCount_RNA, percent.mt,辅助我们选择合适的阈值进行质控

# Visualize QC metrics as a violin plot
VlnPlot(pbmc, features = c("nFeature_RNA""nCount_RNA""percent.mt"), ncol = 3)

可视化Marker基因的时候,VlnPlot也是非常常用的一种方法!

之前的推文有详细整理过ncount_RNA 和nFeature_RNA辅助过滤,那这期我们一起来学习了解一下VlnPlot小提琴图可视化marker基因!

VlnPlot可视化辅助质控

虽然之前的推文有详细整理过ncount_RNA 和nFeature_RNA辅助过滤,但是好像仅仅只介绍了一下数据以及阈值选择,没有介绍一下小提琴图的结果,所以补充一下

在小提琴图结果解析:

  • 在小提琴图中,x轴代表不同的样本或细胞群组,y轴代表数值(如基因表达水平)。每个“小提琴”描述了一个群组中数值的分布情况。
  • 中间较宽的部分表示数据点比较集中的区域,即大多数细胞的基因数量或RNA分子总数落在这个范围内。
  • 两端较细的部分表示数据点较少的区域,即较少的细胞具有这些数值。
  • 通过观察小提琴图的形状和分布,可以直观地看出数据的集中趋势、离散程度和潜在的异常值

VlnPlot可视化marker基因

使用到的还是PBMC3k的数据,走完降维聚类分群之后,使用FindAllMarkers计算所有簇的Marker基因

#计算所有簇的Marker基因,并且可视化TOP5基因
# only.pos = TRUE,只关注上调;min.pct = 0.25,一个基因至少要在25%的细胞中表达
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25,  logfc.threshold = 0.25, verbose = FALSE)
top5 = pbmc.markers %>% group_by(cluster) %>% top_n(n = 5, wt = avg_log2FC)
g = unique(top5$gene)

可视化结果浅析

首先选择一个基因进行可视化展示,并且将结果数据保存为一个变量,进行查看

p1 = VlnPlot(pbmc, features = "MS4A1")
p1
  • 在小提琴图中,x轴代表不同的样本或细胞群组,y轴代表基因表达水平。通过观察各个群组的小提琴图形状和位置,可以了解MS4A1在不同细胞群组中的表达分布。
  • 小提琴图中的宽度代表了各个表达水平的细胞数量。较宽的部分表示该表达水平的细胞较多,较窄或不存在的部分表示较少或没有细胞具有该表达水平。
  • 小提琴图的轮廓显示了数据的概率密度,而图中的点则代表细胞表达的数量,这些点有助于直观地看到数据的分布。
  • 由图可得MS4A1基因在B细胞群组中表达量较高,而在其他细胞群组中表达量较低或不表达

绘图数据概要

> class(p1)
[1] "patchwork" "gg"        "ggplot" 

通过class查看结果数据的类型,其中"patchwork"表示p1是一个经过patchwork处理的复合图形,而"gg"和"ggplot"表示它是基于ggplot2创建的图形对象。

  • 数据(data)
    • 一个包含2638行和2列的数据框架(data.frame)。用于生成小提琴图的数据集,其中每一行代表一个细胞。
    • 可以通过View(p1[[1]][["data"]])查看,基于表达量排序之后可以看到是在B细胞中高表达
  • 图层(layers)

    • 表示构成图形的图层。在ggplot2中,图层可以包括几何对象(如点、线、面等),统计变换,数据映射等。
  • 比例(scales)

    • 定义了图形的比例尺,例如x轴和y轴的取值范围和断点。
  • 导向(guides)

    • 表示图形的辅助元素,如图例、颜色条等。
  • 映射(mapping)

    • 定义了数据如何映射到图形的美学属性上,例如颜色、形状、大小等。
  • 主题(theme)

    • 定义了图形的外观和风格,如字体、背景色、轴线等。
  • 坐标(coordinates)

    • 表示图形使用的坐标系统,例如笛卡尔坐标、极坐标等。
  • 分面(facet)

    • 表示图形是否使用了分面,分面可以将数据的子集并排或堆叠显示。
  • 环境(environment)

    • 存储了图形的计算环境,可能包含用于计算图形的变量和函数。
  • 标签(labels)

    • 可能包含图形的标签信息,例如轴标题、图例标题等。

常用参数

除了导入结果数据的object以及需要绘制的features基因集,还可以修改颜色和点的大小和透明度

  • cols:用于绘制不同类别的小提琴图的颜色。

  • pt.size:图中代表单个细胞数据点的大小。

  • alpha:数据点的透明度。

选择需要展示的细胞群组以及分组信息:

  • idents:指定要在图中包括哪些细胞群组(例如,细胞类型)。默认情况下,包括所有群组。

  • sort:根据被绘制属性的平均表达量对身份类别(x轴上)进行排序。你也可以传递'increasing'或'decreasing'来改变排序方向。

  • group.by:根据对象元数据中的不同方式对细胞进行分组(例如,orig.ident)。

  • split.by:对象元数据中的一个因子,用于分割图表。传递'ident'可以按细胞身份分割。

  • adjustgeom_violin的调整参数,用于调整小提琴图的形状。

选择用于可视化的数据——原始counts矩阵或者标准化后的data数据:

  • slot:从哪个槽中提取表达数据(例如 "counts" 或 "data")。

  • layer:从哪个层中提取表达数据(例如 "counts" 或 "data")。

  • log:是否对特征轴(通常是x轴)使用对数刻度。

默认是选择data数据进行可视化的,当需要选择counts矩阵进行可视化时,可以使用slot参数进行指定

#默认data数据可视化结果
VlnPlot(pbmc, features = c("NKG7""PF4"))
data
#使用counts绘图
VlnPlot(pbmc, features = c("NKG7""PF4"), slot = "counts"log = TRUE)
counts

结果图美化的可选参数:

  • ncol:如果显示多个图表,设置列的数量。

  • split.plot:控制是为分割的每个组绘制多个还是单个小提琴形状。

  • stack:是否水平堆叠每个特征的图表。

  • combine:是否将图表组合成一个单一的patchworked ggplot对象。如果为FALSE,则返回一个ggplot列表。

  • fill.by:根据'feature'或'ident'对小提琴图进行着色。

  • flip:翻转图表方向(身份类别在x轴上)。

这些参数允许基于需求去自定义小提琴图的外观和展示方式,下期我们就具体来看看如何基于这些参数得到更加好看的小提琴图!


生信技能树
生物信息学学习资料分析,常见数据格式及公共数据库资料分享。常见分析软件及流程,基因检测及癌症相关动态。
 最新文章