问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何选择单细胞测序分析中的主成分数量:策略学习

创作时间:
作者:
@小白创作中心

如何选择单细胞测序分析中的主成分数量:策略学习

引用
CSDN
1.
https://m.blog.csdn.net/zfyyzhys/article/details/145568325

在单细胞测序分析流程中,选择合适的主成分数量对于后续分析至关重要。过多或过少的主成分都可能对分析结果产生负面影响。

过多主成分的影响

过多的主成分可能会导致模型过拟合。PCA(主成分分析)通过将原始数据投影到新的轴(主成分)上,目的是提取数据中的主要变异。如果保留过多的主成分,模型可能会捕捉到数据中的噪声而非有意义的生物学信号,导致分析结果不具有泛化能力。

过少主成分的影响

过少的主成分可能会丢失重要的生物学信息。PCA通过减少数据的维度来简化数据集,但如果去除的主成分包含了对细胞群体分类有重要意义的信息,可能导致后续分析中细胞类型或亚群体的识别不准确。

主成分数量选择策略

因此,在分析时通常会参考ElbowPlot。在ElbowPlot中,肘部位置通常对应的是方差贡献急剧下降的位置。你可以通过观察图形找到曲线弯曲的地方(即“肘部”位置),并且该位置后的主成分所解释的方差增益较小,意味着添加更多主成分可能不会对数据的解释带来显著的提升。但ElbowPlot并不会直接给出具体的数值,不过也可以从曲线由陡峭变平缓的感觉来判断大概在8-15之间可能存在最佳主成分数量值。

同时关于这个问题也已经被很多老师所讨论过了,比如生信宝典的陈同教授在既往的推文中列出了Biostars (How to Choose PCs from a HeatMap)上Kevin Blighe教授的评论——“每个主成分(PC)会解释数据集中总体变异的一个比例。因此,仅仅说“选择5个”或“选择10个”主成分是没有意义的,因为考虑到可能仅前3个主成分就能解释80%的变异,甚至前20个主成分就能解释大部分变异。因此,我只能假设(并希望)您所使用的程序能够输出或存储每个主成分所解释的变异比例”,简单来说其实只要把大部分变异度都能囊括进去的主成分数量就行啦,数值稍有差异没有关系~ 同时陈同教授也出了他的选择习惯:选择7-12个主成分,那么技能树的建明老师通常就是选择15。笔者也去Seurat官网上回溯了官方流程,事实上开发团队也并没有对此细节给出答案,在Seurat5_integration分析中他们直接选择了30作为主成分数量。所以最后得到的一个结论就是,不需要太纠结哪一个数值,只要在合理范围内就行(根据ElbowPlot判断)。

笔者的建议

那么其实笔者还会再考虑一个问题,是选择合理范围的低值?中值?还是高值?笔者其实还是倾向于选择“稍大一点”的主成分值,比如这个图片中是8-15,那么笔者会就选择15作为最佳主成分数量值。

实际操作步骤

如果真的很纠结说一定要有一个办法给出一个数量值,那么可以用一下分析工具,那么接下来咱们就试一下使用ElbowPlot,findPC和PCAtools中的findElbowPoint这三个工具。

1. 导入必要的库和数据

rm(list = ls())
library(Seurat)
library(findPC)
library(ggplot2)
load("scRNA.Rdata") # 老演员了
DimPlot(scRNA)

2. 使用ElbowPlot

ElbowPlot(scRNA,ndims=50)

从视觉上来看大概是7-13左右。

3. 使用findPC

# Seurat V5
stdev_sorted <- sort(scRNA@reductions$pca@stdev, decreasing = TRUE) 
stdev_sorted
findPC(sdev = stdev_sorted, # 主成分降序排列
       number = 50, # number数量不需要
       method = "all", # 所有的方法都看一下,默认方法是perpendicular line
       figure = T)

不同方法得到的主成分数量,所以是7-12左右,4就有点“离群”。

4. 使用PCAtools

# PCAtools
library(PCAtools)
elbow <- findElbowPoint(stdev_sorted)
elbow
# [1] 8

经典PCAtools工具得到的值是8。

参考资料

  1. Seurat: https://satijalab.org/seurat/articles/seurat5_integration
  2. Biostars (How to Choose PCs from a HeatMap): https://www.biostars.org/p/410640/
  3. findPC: https://github.com/haotian-zhuang/findPC
  4. PCAtools: https://bioconductor.org/packages/devel/bioc/vignettes/PCAtools/inst/doc/PCAtools.html#determine-optimum-number-of-pcs-to-retain
  5. 生信宝典: https://mp.weixin.qq.com/s/DJMk-UR0oJ1-v1G3t0AhcA
  6. 单细胞天地—单细胞常见图表合集
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号