生信从湿到干 · 交互式动画教程
⭑ 试用 OmicOne
第 5 章从 reads 到数据

Cell Ranger:从 reads 到计数矩阵

Cell Ranger 是 10x Genomics 的官方流程,把测序仪产出的 FASTQ 变成“基因 × 细胞”的计数矩阵,同时生成一页 web_summary.html。这一章是湿实验和数据分析之间的桥:summary 上的每个数字,都能追溯到前四章里的某个实验步骤。

四步:条形码、比对、UMI 计数、细胞识别

cellranger count 依次做四件事:

  1. 处理条形码和 UMI:从 Read 1 中取出条形码,与白名单比对,允许校正 1 个错配;与高丰度 UMI 只差 1 个碱基的 UMI 被视为测序错误并合并。
  2. 比对:用 STAR 把 Read 2 比对到参考基因组,再根据注释判断落在外显子、内含子还是基因间区。唯一地落在一个基因上的 reads 才算“可信比对”。Cell Ranger 7 起默认把内含子 reads 也计入。
  3. UMI 计数:对每个条形码、每个基因数不同的 UMI,得到原始矩阵 raw_feature_bc_matrix。
  4. 细胞识别:判断哪些条形码是细胞,输出过滤后的矩阵 filtered_feature_bc_matrix。

细胞识别:条形码排序曲线

条形码排序曲线:细胞与空液滴示意
正在加载数据…

把所有条形码按 UMI 数从高到低排列,用双对数坐标作图,就得到条形码排序图,又叫 knee plot。左边的高平台是含细胞的液滴,陡降之后的长尾是只装着环境 RNA 的空液滴。

较新版本的 Cell Ranger 先取明显高 UMI 的条形码,再用类似 EmptyDrops 的方法检验较低 UMI 的条形码:如果它的表达谱和环境 RNA 明显不同,也算作细胞。这样 RNA 含量低的小细胞不至于全被丢掉。拖动组件里的阈值,看看边界附近的条形码有多难判断。

web summary 上的指标

指标 含义 追溯到哪一步
Estimated Number of Cells 判定为细胞的条形码数 上样数 × 回收效率;细胞识别(第 2 章)
Mean Reads per Cell 总 reads ÷ 估计细胞数,分子包括细胞外的 reads 测序深度分配(第 4 章)
Median Genes per Cell 细胞检测到的基因数的中位数 RNA 含量、捕获效率、深度(第 3、4 章)
Median UMI Counts per Cell 细胞 UMI 总数的中位数 同上
Sequencing Saturation reads 中来自已见分子的比例 文库复杂度与深度(第 3、4 章)
Fraction Reads in Cells 有效 reads 中落在细胞条形码上的比例 环境 RNA、活率(第 1 章)
Valid Barcodes 条形码能匹配白名单的 reads 比例 凝胶珠寡核苷酸、Read 1 质量(第 3 章)
Q30 Bases(Barcode / UMI / RNA Read) 质量值 ≥ 30 的碱基比例 测序运行(第 4 章)
Reads Mapped Confidently to Transcriptome 唯一比对到一个基因的 reads 比例 RNA 质量、参考基因组、内含子设置

Cell Ranger 在指标越过内部阈值时会在页面顶部给出警告,例如 10x 期望 Fraction Reads in Cells 约 70% 以上、Valid Barcodes 约 75% 以上;具体阈值随版本可能不同,以文档为准。

这些指标要组合着读:

  • Fraction Reads in Cells 低、细胞数偏多、每细胞基因数偏低:环境 RNA 多,部分空液滴可能被当成了细胞。
  • 饱和度低、基因数低:测得不够深,加测有用。
  • 饱和度高、基因数仍低:文库复杂度不足(捕获或逆转录差),加测帮助不大。

示例数据 pbmc3k 用的是 v1 化学和很早期的 Cell Ranger(数据集页面标注为 1.1.0),当时的细胞识别算法和今天不同。

常见误区

  • 只看细胞数。 细胞数“达标”可能是空液滴被当成了细胞,要同时看曲线形状和 Fraction Reads in Cells。
  • 跨版本直接比较指标。 化学版本和 Cell Ranger 版本(例如是否计入内含子)都会改变数值。
  • 把警告当成不可用。 警告是提示去查原因,不等于数据作废;反过来,没有警告也不等于没有问题。