28  Seurat (上) 质控与标准化:识别并剔除“假细胞”与“坏细胞”

28.1 【导语】万事之源:为何要这样做?

单细胞悬液的制备与微流控捕获过程,绝非百分之百完美。这一不完美性,会在我们的原始数据中,系统性地引入两类核心的“噪音数据”。第一类是“低质量或死亡细胞”:这些细胞的细胞膜在处理过程中已经破裂,导致其细胞质内的信使RNA(mRNA)大量逃逸。因此,它们在测序后表现为可检测到的基因数量(nFeature_RNA)极少,且由于线粒体相对完整,线粒体基因转录本的比例(percent.mt)会异常升高。

第二类噪音是“双细胞”(Doublets)或多细胞(Multiplets):即两个或多个细胞被错误地包裹进了同一个油滴(GEM)中。这会人为地创造出一个“嵌合体细胞”,其表现为UMI总数(nCount_RNA)和基因总数异常偏高。在进行任何下游的生物学分析之前,我们必须通过一套严格的质控流程,如同机场的“安检”一般,将这些“假冒伪劣”的细胞数据从数据集中剔除出去。否则,它们将作为强烈的干扰源,严重扭曲后续的降维与聚类分析,最终导致错误的细胞分群结果。

28.2 【核心实践】从原理到决策

28.2.1 【第一步:创建Seurat对象与数据读取】

所有分析的起点,是将10x Genomics的标准输出文件夹读入R,并构建Seurat分析的核心数据结构——Seurat对象。

## 加载 10x Genomics 数据
pbmc.data <- 
  Read10X(
    data.dir = 
      "filtered_feature_bc_matrix/"
  )
## 并创建 Seurat 对象
pbmc <- 
  CreateSeuratObject(
    counts = pbmc.data,
    project = "pbmc3k",
    min.cells = 3,
    min.features = 200
  )

Read10X负责读取三个核心文件,而CreateSeuratObject则将这些信息整合,并进行一个初步的、非常宽松的过滤。

28.2.2 【质控的核心“三板斧”:基于三个指标的决策】

我们后续的精细化质控,主要依据三个核心的生物学指标来进行决策。

nFeature_RNA (每个细胞检测到的基因数)

这个指标直接反映了细胞转录本的复杂度和数据的捕获效率。一个过低的nFeature_RNA值,可能代表这个细胞已经破碎,大部分RNA已经降解或丢失。而一个异常过高的值,则强烈暗示这可能是一个“双细胞”。我们的决策,是通过绘制小提琴图(VlnPlot),观察整体数据的分布,并设定一个合理的上下限阈值,例如 nFeature_RNA > 200 & nFeature_RNA < 5000

nCount_RNA (每个细胞的总UMI数)

这个指标与nFeature_RNA高度相关,是评估每个细胞文库大小的直接指标。它同样可以用来辅助识别双细胞(其UMI总数会异常高)。

percent.mt (线粒体基因转录本的比例)

后果驱动分析:当一个细胞进入凋亡或濒死状态时,其细胞质中的mRNA会迅速降解,但包裹在双层膜结构中的线粒体则相对稳定。这会导致,虽然总的RNA量下降,但来自线粒体基因的转录本,在剩余的总RNA中所占的比例会异常升高。因此,一个高比例的线粒体基因读数,是细胞“健康状况不佳”的一个强烈分子信号。我们的决策,是通常设定一个经验性的阈值(例如 < 5%< 10%),来过滤掉这些濒临死亡的细胞。

28.2.3 【第二步:标准化与高变基因识别】

标准化 (NormalizeData)

与Bulk RNA-seq类似,单细胞数据也必须进行标准化,以消除细胞间因测序深度不同而引入的技术偏差。Seurat默认采用一种名为LogNormalize的方法。其逻辑是,先将每个细胞中每个基因的UMI count除以该细胞的总UMI count,再乘以一个比例因子(默认为10000),最后对结果加1后取自然对数。

识别高变基因 (FindVariableFeatures)

这是后续所有降维分析得以成功的、一个至关重要的“降噪”决策。在一个细胞中,数万个基因并非都包含用于区分细胞类型的信息。大量的“管家基因”在所有细胞中的表达水平都相对恒定。FindVariableFeatures的作用,就是通过统计模型,找出那些在不同细胞间表现出远高于预期的、高度变异的基因(通常选择前2000个)。我们的决策是,在后续的降维分析中,只使用这些“高变基因”,因为它们最有可能携带了定义细胞身份与状态的“真实生物学信号”。

28.3 【认知升维】常见的思维陷阱与对策

28.3.1 思维陷阱一:套用固定的质控阈值

新手最常犯的错误,就是从网络教程或文献中,直接复制一套固定的质控阈值(例如 nFeature_RNA < 2500, percent.mt < 5),并将其不加思索地应用于自己的数据集。

其对策是,必须在认知中建立一条铁律:单细胞的质控阈值设定,必须是“数据驱动”的。你必须先通过VlnPlotFeatureScatter等可视化工具,仔细观察你自己数据的实际分布情况。一个好的阈值,通常设定在数据分布的“拐点”或明显与主体部分离的“离群点”区域。你设定的每一个数字,都应该能够基于你数据的分布图,给出一个合理的解释。

28.3.2 思维陷阱二:忽视批次效应

当分析的数据来自于不同的实验批次、不同的供体或不同的处理条件时,新手常常会直接将它们合并在一起进行分析。这是一个极其危险的操作,因为不同批次间固有的技术差异(即“批次效应”),其信号强度往往会远大于真实的生物学差异,导致在降维图上,细胞首先按照批次分开,而不是按照细胞类型分开。

其对策是,必须了解并使用Seurat v4及以后版本提供的、基于SCTransformIntegration的标准化与数据整合流程。这套流程是当前解决单细胞数据批次效应的“黄金标准”,也是进行任何多样本、多条件单细胞比较分析时,一个不可或缺的关键步骤。

28.4 【总结与拓展】构建你的思维框架

我们必须将单细胞数据的质控与标准化过程,视为一次极其严格的“宇航员筛选”工程。在这个思维框架中,你的核心任务,是首先通过一系列严苛的生理指标测试(nFeature_RNA, nCount_RNA, percent.mt),淘汰掉所有“身体状况不合格”的候选者(死细胞、双细胞)。然后,再通过一轮高难度的“专业能力与潜力测试”(高变基因识别),从合格者中,选拔出那些最能代表团队多样性与核心能力的“精英宇-航员”。只有这样一支精挑细选的队伍,才能为后续成功的“太空探索”任务(降维、聚类与生物学发现)奠定坚实的基础。

基于此框架,请思考一个能够挑战常规思维的启发性问题:在分析来自某些特定组织(例如,心肌或骨骼肌)的单细胞数据时,你可能会发现,几乎所有细胞的线粒体基因比例,都普遍地、系统性地偏高。在这种情况下,你认为这还一定代表细胞质量差吗?或者,这背后是否存在其他更合理的生物学解释?面对这种情况,你会如何调整你的质控策略,而不是简单地套用一个固定的percent.mt < 10%的阈值?


探索生命科学前沿,提升实战技能!欢迎微信搜索并加入「生信实战圈」,获取最新技术干货、实战案例与行业动态。 点击关注,与同行一起成长!