主成分分析(Principal Component Analysis, PCA)通过将高维数据投射到低维空间,识别数据中的主要变化方向,是进行数据降维的最常见方法。在Seurat(R包)中,由RunPCA()函数计算基因表达矩阵的PC,将高维度的单细胞测序数据压缩成少量用于揭示细胞群之间的变化和差异的PC,使数据易理解和分析处理。
降维聚类
01
单细胞数据进行降维聚类是单细胞下游分析前期阶段的关键步骤,PC 的选取更是会影响后续细胞聚类分析的效果。接下来本文将介绍如何进行单细胞数据 PCA 降维,以及如何确定用于单细胞数据下游分析的 PC 数目(dim值)。
进行降维分析前,须完成单细胞数据标准化、查找高变基因、数据缩放等分析步骤,即可 "一步到位" 完成 PCA 数据矩阵降维分析。
# Input data
demo_obj <- readRDS("pbmc.rds")
demo_obj[['RNA']] <- JoinLayers(demo_obj[['RNA']])
# Normalize & Find variable feature & Scale data
demo_obj <- NormalizeData(demo_obj,normalization.method = "LogNormalize", scale.factor = 10000)
demo_obj <- FindVariableFeatures(demo_obj, selection.method = "vst", nfeatures = 2000)
demo_obj <- ScaleData(demo_obj, features = rownames(demo_obj))
# PCA降维
demo_obj <- RunPCA(demo_obj, features = VariableFeatures(object = demo_obj))
确定PC值
02
RunPCA()完成 PCA 后,通常会生成 PC 来解释数据的变化。此时,就需要根据"经验"确定选取多少个 PC,以便接下来用FindNeighbors()进行聚类分析,而这个"经验"主要参考以下分析结果:
2.1. 碎石图 - ElbowPlot()
# 绘制 ElbowPlot
ElbowPlot(demo_obj)
图片解读:在ElbowPlot()中,x轴表示主成分的编号(即PC1、PC2等),y轴表示每个主成分所解释的方差。通过观察ElbowPlot中的“肘点”位置来确定保留多少个主成分。
知识补充:方差数值反映了该主成分解释数据整体变化的程度。y轴上的方差值越大,说明该主成分解释的数据变化越多,也就是包含更多的真实信息;反之,y轴上的方差值越小,说明该主成分包含的信息量较少,更多可能是噪音或无关信息。
PC值选择技巧:通常在曲线“肘点”处选择主成分,可以理解为:选择可以捕获绝大多数真实信号的PC(“肘点”左侧处于下降趋势的点),忽略贡献较小的 PC (“肘点”右侧趋于平滑的点)。
2.2. 点图 - JackStrawPlot()
# 运行JackStraw分析
demo_obj <- JackStraw(demo_obj)
demo_obj <- ScoreJackStraw(demo_obj)
# 绘制前20个PC的JackStraw Plot
JackStrawPlot(demo_obj, dims = 1:20)
图片解读:在 JackStrawPlot 中,x轴代表实际观测到的(经验的)p值,即PCA中基于实际数据计算得出的 p 值 ,这代表不同PC的显著性水平 。y轴代表理论上我们期望在完全随机的情况下(即通过生成的1000个随机数, 模拟随机情况下的 p 值分布 ),PC会产生的 p 值分布(即“噪声”PC) 。低p值的主成分代表真实的生物学信号,而高p 值的主成分则可能是噪音。
知识补充:JackStraw分析是一种统计方法,通过随机置换数据来评估各个主成分的显著性, 当主成分的实际 p 值(x轴)明显小于理论 p 值(y轴)时,该主成分包含了有意义的生物学信息;如果实际 p 值接近理论值,主成分的贡献可能更多是噪声。
PC值选择技巧:通常选择那些显著的PC(p < 0.05)图1.或选择可以明显将实际观测p值和噪音p值区分开的PC图2.,以决定用于后续分析的 PC 数。
2.3. 热图 - DimHeatmap()
# 绘制PCA前20个PC的热图
DimHeatmap(demo_obj, dims = 1:20, cells = 500, balanced = TRUE)
图片解读:在DimHeatmap() 中,行表示基因,颜色的深浅和方向(黄色或紫色)表示基因在特定PC上的负载值。通过观察不同PC的颜色分布,判断哪些基因对PC贡献较大。颜色越深(黄色或紫色),表明该基因在该PC上的负载越强。
知识补充:PC的负载值(loadings)指每个原始变量(如基因)在某个PC上的权重或贡献度。表示该变量与PC的相关性,即这个变量在降维过程中对该PC的影响有多大。
PC值选择技巧:根据颜色强度选择保留的PC,PC的颜色越强烈,包含的数据变化和生物学信号越多。通常保留颜色对比明显、颜色分布均匀且负载值显著的PC。
知识回顾
03
PCA是单细胞数据分析中的一个重要步骤,通过PC降维使数据更易理解和处理。可以通过RunPCA()生成PC,使用ElbowPlot()、JackStrawPlot()或DimHeatmap()等方法可视化PCA结果,再结合这些结果决定后续分析中应选择的dim值,进而优化聚类效果。
小编碎碎念:
选择过少的 PC 可能会遗漏数据中的某些变化信息,而选择过多的 PC 则可能引入噪点,可以通过 ElbowPlot() 找到拐点或使所选的 PC 包含够多的“信息”。
本文由 医学中心 左丽娇 提供