Codar
下载

单细胞数据质控:双细胞、环境 RNA 与线粒体比例

单细胞质控是在聚类和注释之前,把不代表单个完整活细胞的条形码剔除或校正掉。液滴法(如 10x Genomics)测出的矩阵里混有三类问题:一是空液滴和破损细胞,表现为 UMI 少、基因少、线粒体读段比例高;二是双细胞,即一个液滴包进两个细胞,表达谱看起来像两种细胞的混合;三是环境 RNA,裂解细胞释放到悬液里的游离 RNA 被所有液滴捕获,使每个细胞都带上少量高表达基因的背景信号。典型输入是 Cell Ranger、STARsolo 或 alevin-fry 输出的计数矩阵。质控不到位,后续会出现由低质量细胞或双细胞组成的假亚群。

什么时候用

  • 拿到 10x 等液滴法原始计数矩阵,准备做聚类和注释之前
  • UMAP 上出现一群 marker 混杂、来源不明的小簇,怀疑是双细胞
  • 血红蛋白或免疫球蛋白基因在所有细胞里都有表达,怀疑环境 RNA 污染
  • 组织解离时间长、细胞活率低,需要判断有多少应激或濒死细胞
  • 多个样本合并分析前,逐样本比较测序质量是否一致
  • 下载 GEO 公共单细胞数据后,复核原作者的过滤是否足够

不适合的情况

  • 已经是作者过滤并归一化后的矩阵,再套一遍严格阈值会重复过滤,丢掉真实细胞
  • 单细胞核测序(snRNA-seq)照搬单细胞线粒体阈值:细胞核数据线粒体读段本就极少,阈值逻辑不同
  • 想用质控指标比较组间生物学差异,质控指标受实验操作影响大,不适合做结论

需要准备的数据

过滤后计数矩阵
Cell Ranger 的 filtered 矩阵或 h5 文件,须为原始 UMI 计数,不能是归一化值
未过滤原始矩阵
raw_feature_bc_matrix,含空液滴;SoupX 和 CellBender 估计背景污染时需要它
样本信息表
每个条形码所属样本、测序通道和分组;双细胞检测要按通道分开做
物种与基因命名
确认线粒体基因前缀,人类通常为 MT-,小鼠为 mt-;用 Ensembl ID 时需先映射基因名

分析步骤

  1. 1

    计算质控指标

    对每个细胞计算总 UMI 数、检测到的基因数和线粒体读段占比,必要时加血红蛋白基因占比。Scanpy 用 calculate_qc_metrics,Seurat 用 PercentageFeatureSet。先画小提琴图和散点图看分布,再定阈值。

  2. 2

    逐样本设定阈值

    低 UMI 低基因数多为空液滴或碎片,过高的 UMI 可能是双细胞。常用做法是按样本用中位数绝对偏差(MAD)找离群值,例如偏离中位数 3 到 5 个 MAD 视为离群。判断标准:过滤后各样本分布接近,没有成片砍掉某一类细胞。

  3. 3

    线粒体比例过滤

    线粒体占比高通常提示细胞膜破损、胞质 RNA 流失。阈值常见在 5% 到 20% 之间,心肌、肝脏、肾小管等高代谢组织天然偏高,需放宽。检查被过滤细胞在初步聚类中的位置,如果集中在某个真实细胞类型上,说明阈值过严。

  4. 4

    环境 RNA 校正

    用 SoupX 或 CellBender 从空液滴估计背景表达谱并从细胞中扣除。SoupX 需要初步聚类,可用 autoEstCont 估计污染比例;CellBender 基于原始矩阵建模。校正后 HBB、IGKC 等背景基因应只在对应细胞类型中表达。

  5. 5

    双细胞检测

    用 scDblFinder、Scrublet 或 DoubletFinder 模拟人工双细胞并给细胞打分。须对每个测序通道单独运行,因为双细胞只在同一通道内形成。被标记的细胞通常同时表达互斥 marker,如 CD3E 和 CD14。

  6. 6

    过滤与复核

    去除低质量细胞和双细胞后,再做一次快速聚类。检查是否还有以线粒体基因、核糖体基因或热休克基因为 top marker 的簇;如有,回到上一步调整阈值。最后记录每一步各样本保留的细胞数,便于写方法部分。

关键参数与决策

线粒体比例阈值

没有通用固定值。常见做法是先看分布再设,或用 MAD 自动判定。免疫细胞、PBMC 数据常用较严阈值,高代谢组织需放宽;snRNA-seq 中线粒体读段理论上应接近零,偏高说明核提取时混入胞质。

UMI 与基因数下限

下限用于去除空液滴和碎片,常见经验下限是几百个基因,但应看分布拐点。中性粒细胞等 RNA 含量低的细胞类型容易被一刀切掉,研究这些细胞时宜放宽下限。

预期双细胞率

双细胞率随上样细胞数增加而上升,10x 的经验值约为每回收 1000 个细胞增加 0.8% 左右。DoubletFinder 等工具需手动给出预期比例,设得过高会误删真实的过渡态细胞。

环境 RNA 污染比例

SoupX 的污染比例 rho 可自动估计,也可用 setContaminationFraction 指定。自动估计不稳时,用只在特定细胞类型表达的基因(如血红蛋白基因)辅助估计;比例过高会扣掉真实信号。

过滤顺序

常见顺序是先校正环境 RNA、再去双细胞、最后按指标过滤,但也有流程先粗过滤。关键是双细胞检测在含全部候选细胞的单个通道上运行,并且所有步骤保留原始计数供后续分析。

常见错误

  • 把多个样本合并后再跑双细胞检测:不同通道的细胞不可能形成双细胞,合并后模拟的人工双细胞失真,导致漏检或误检。
  • 所有样本统一一个固定阈值:测序深度不同的样本分布差异很大,低深度样本会被过度过滤,高深度样本里的低质量细胞却留了下来。
  • 照搬 5% 线粒体阈值处理心肌或肝脏数据:这些组织的健康细胞线粒体占比本就高,会把大量真实细胞当作破损细胞删除。
  • 环境 RNA 校正后直接把非整数矩阵送进需要整数计数的工具:SoupX 默认输出可能含小数,需要按需取整或改用对应选项。
  • 把双细胞检测分数当作唯一标准:过渡态细胞和多能祖细胞也可能被打高分,删除前应核对其 marker 是否真的互斥。
  • 只看过滤前后细胞数,不看过滤掉的是哪些细胞:如果某个细胞类型几乎全被去除,往往是阈值不适合该类型而不是数据质量问题。

结果怎么看

质控指标小提琴图

按样本展示 UMI 数、基因数、线粒体比例的分布。各样本中位数应大致接近;某个样本整体偏低或线粒体比例整体偏高,说明该样本建库或解离存在问题,应考虑单独处理或剔除。

UMI 与基因数散点图

横轴 UMI 数、纵轴基因数,按线粒体比例着色。正常细胞沿一条对数曲线分布;左下角低值、高线粒体的点多为破损细胞;UMI 高但基因数增长停滞的点可能是双细胞或高表达少数基因的细胞。

双细胞得分 UMAP

把双细胞得分或判定结果投到 UMAP 上。双细胞通常位于两个大群之间的连接处或形成小的孤立簇;如果某个大簇整体得分偏高,先检查它是否是 RNA 含量本就较高的细胞类型。

环境 RNA 校正前后对比

对比校正前后背景基因(如 HBB、LYZ、IGKC)在各簇中的表达。校正有效时,这些基因在非对应细胞类型中的表达明显下降,而在本该表达的细胞中保持;若对应细胞中的表达也大幅下降,说明扣除过度。

逐步过滤统计表

列出每个样本在每个步骤前后的细胞数和占比。某一步去除比例异常高时应回查原因;这张表也是论文方法部分和审稿回复中常被要求提供的内容。

和相近方法怎么选

SoupX 与 CellBender

SoupX 基于空液滴估计背景谱,需要聚类信息,运行快,污染比例可手动设定,便于解释。CellBender 用深度生成模型同时处理背景和空液滴识别,污染重时效果常更好,但计算量大,建议用 GPU。污染轻时 SoupX 通常够用。

scDblFinder、Scrublet 与 DoubletFinder

三者都靠模拟人工双细胞打分。scDblFinder 是 R 包,速度快、参数少;Scrublet 是 Python 工具,便于接入 Scanpy;DoubletFinder 依赖 Seurat 对象,需调 pK。它们主要识别异型双细胞,同型双细胞难以检出。

固定阈值与 MAD 自适应阈值

固定阈值简单、可复现,适合单样本或深度相近的数据;MAD 阈值按每个样本自身分布判定离群,更适合多样本、深度差异大的数据。实际中常两者结合:MAD 定初值,再按组织特性人工调整。

常见问题

单细胞线粒体比例阈值设多少合适?

没有统一标准。PBMC 等数据常用较严阈值,高代谢组织需明显放宽。建议先画线粒体比例分布,结合 MAD 离群判定和组织特性来定,再检查被过滤的细胞是否集中在某个真实细胞类型,以此修正阈值。

双细胞检测要在整合之前还是之后做?

在整合之前,且要对每个测序通道单独做。双细胞只在同一通道内产生,合并或整合后再检测会引入不可能存在的跨样本组合,结果不可靠。检测出的标签可以带到整合后的对象上用于复核。

SoupX 校正后的矩阵还能用 DESeq2 或 pseudobulk 吗?

可以,但要注意整数问题。SoupX 的调整矩阵可能含小数,用于需要整数计数的方法时可开启取整选项或自行取整。也有研究者只把校正矩阵用于聚类和可视化,差异分析仍用原始计数并在解读时考虑污染。

质控需要去除核糖体基因和细胞周期影响吗?

核糖体基因比例通常作为参考指标,不建议直接删除这些基因。细胞周期是否回归取决于研究问题:增殖本身是研究对象时不要回归;它干扰了细胞类型聚类时,可以对细胞周期打分并在后续步骤中作为协变量处理。

公共数据只给了过滤后的矩阵,还需要再质控吗?

需要复核,但不宜再套用严格阈值。先画质控指标分布,看是否残留高线粒体或疑似双细胞簇;如果没有原始矩阵,环境 RNA 校正无法用 SoupX 的标准流程,可在解读中注明这一局限。

在 Codar 里怎么做

在 Codar 里说明样本来源和数据位置后,会先确认质控方案,如线粒体阈值的定法和是否校正环境 RNA。随后完成 scRNA-seq 预处理:逐样本计算质控指标并按线粒体比例过滤,逐通道检测双细胞,用原始矩阵校正环境 RNA 污染。交付质控图、双细胞得分图、逐步过滤统计表、过滤后的数据对象和可复现脚本。

可以这样提问
我有 4 个 10x 肝组织样本的 raw 和 filtered 矩阵,帮我逐样本定线粒体阈值、去双细胞、用 SoupX 校正环境 RNA,并统计每步保留的细胞数
了解单细胞与虚拟细胞插件

相关实践案例