# 单细胞转录组数据分析入门 - 1 - 数据与分析平台

# 关于单细胞转录组数据

# 细胞与基因表达矩阵

单细胞转录组数据的核心是一个细胞与基因的表达矩阵,通常以行代表基因,列代表细胞。矩阵中的每个数值表示某个基因在某个细胞中的表达水平。这个矩阵有如下特点:

  • 稀疏性: 多数基因的表达值为零或接近零,因为在特定细胞中只有部分基因会被活跃表达。
  • 高维度: 单细胞实验通常包含数千个基因和数千至数百万个细胞。

# 数据来源:

  • 测序原始数据: FASTQ 文件通过预处理(如 Cell Ranger)生成表达矩阵。
  • 表达值单位: 包括原始 UMI 计数、归一化值(TPM、FPKM)或对数转换值。

# 不同的表达值单位

根据数据生成方法和归一化方式,不同矩阵具有不同的特点和用途。以下是主要矩阵类型的详细介绍:

# UMI(Unique Molecular Identifier)矩阵

  • UMI 是单细胞测序中特有的一种技术,使用分子标签标记每个转录本以消除 PCR 扩增带来的冗余计数。
  • 矩阵中的值表示某基因在某细胞中的独立 UMI 数量,即真实的转录本数量。
# 特点:
  • 计量单位: 原始 UMI 计数(整数值)。
  • 优势:
    • 消除了 PCR 扩增偏差,表达水平更加真实。
    • 数据稀疏性高,通常需要归一化后使用。
  • 用途:
    • 用于直接量化基因表达,适合单细胞数据的统计分析和降维。

# FPKM(Fragments Per Kilobase of transcript per Million mapped reads)矩阵

  • FPKM 是一种传统转录组测序数据的归一化方法,考虑了测序深度和转录本长度的影响。
  • 矩阵中的值表示每千碱基转录本每百万读段的映射片段数。
# 计算公式:

FPKM=Fragments转录本长度 (kb)×Mapped Reads (百万)\text{FPKM} = \frac{\text{Fragments}}{\text{转录本长度 (kb)} \times \text{Mapped Reads (百万)}}

# 特点:
  • 计量单位: 浮点数,通常较小(如 0.1 至数百)。
  • 优势:
    • 能跨基因比较表达水平(考虑了基因长度)。
  • 劣势:
    • 对单细胞数据噪声敏感,适合大规模样本群体数据分析。
  • 用途:
    • 大量基因的定量分析,但逐渐被 TPM 替代。

# TPM(Transcripts Per Million)矩阵

  • TPM 是改进后的归一化方法,与 FPKM 类似,但通过将每个基因的表达值占总表达值的比例进行归一化,更便于跨样本比较。
# 计算公式:
  1. 对每个基因计算标准化值:

    Normalized Counts=Counts基因长度\text{Normalized Counts} = \frac{\text{Counts}}{\text{基因长度}}

  2. 将标准化值归一化为百万:

    TPM=Normalized Counts(Normalized Counts)×106\text{TPM} = \frac{\text{Normalized Counts}}{\sum(\text{Normalized Counts})} \times 10^6

# 特点:
  • 计量单位: 浮点数,通常在 0.1 至数千范围内。
  • 优势:
    • 易于跨样本比较(总和为 1,000,000)。
    • 在单细胞和群体数据中都适用。
  • 用途:
    • 用于样本间基因表达水平的直观比较。

# Counts 矩阵

  • Counts 矩阵表示转录本测序中,直接映射到基因上的原始计数值,是最基础的表达矩阵。
# 特点:
  • 计量单位: 整数值(原始读段数)。
  • 优势:
    • 无信息丢失,保留最原始的数据。
    • 适合后续归一化处理(如 UMI 或 TPM)。
  • 劣势:
    • 未归一化数据受测序深度和其他技术因素影响,难以直接用于比较。
  • 用途:
    • 作为数据分析的起点,后续需通过归一化方法(如 TPM 或 FPKM)处理。

# 矩阵类型对比

矩阵类型 单位 是否归一化 是否考虑基因长度 是否考虑测序深度 适用场景
UMI 整数值 单细胞分析,噪声低
FPKM 浮点数 传统转录组分析,噪声敏感
TPM 浮点数 跨样本比较
Counts 整数值 数据原始输入,需归一化

# 实际应用建议

  • UMI 矩阵: 用于单细胞 RNA-seq 分析时的默认选择。
  • FPKM 和 TPM 矩阵: 更多应用于传统转录组分析,TPM 在跨样本比较中表现更优。
  • Counts 矩阵: 是所有分析的起点,但需归一化处理后方可使用。

当然,在大多数的情况下,除了自己测序,我们获取的数据通常只有一种类型的矩阵,直接使用即可。

# 分析平台

当前的两大主流分析平台是 R 语言(Seurat)和 Python(Scanpy),此系列教程将主要基于 Seurat V5 来讲解。但尽管如此,此处仍然介绍一下两者的区别。

# R 语言分析平台:Seurat

  • Seurat 是由 Satija Lab 开发的单细胞转录组分析工具包,最早发布于 2015 年,目前是单细胞数据分析领域中最受欢迎的工具之一。

  • 支持与其他工具的结合,如 CellChat(细胞通讯分析)、Harmony(批次效应校正)。

  • 支持多组学数据整合(如 scRNA-seq 与 scATAC-seq)。

# 缺点

  • 由于 R 语言的固有缺陷,在面对大规模数据时(如数百万细胞)可能性能不足。

# Python 分析平台:Scanpy

  • Scanpy 是一个基于 Python 的开源单细胞数据分析工具,由 Theis Lab 开发。
  • 专注于大规模单细胞数据集的快速、高效分析,支持大规模数据处理和分析。
  • 其在面对大规模单细胞数据(百万级别)时表现优异。

# 缺点

  1. 可视化能力稍逊: 默认图形输出质量不如 Seurat,但可以通过其他 Python 库(如 Matplotlib、Seaborn)弥补。
  2. 学习曲线较陡: 对编程和 Python 生态系统的掌握有一定要求。

# Seurat 与 Scanpy 的对比

特性 Seurat (R) Scanpy (Python)
性能 数据规模适中时表现优异,处理大数据较慢 面对大规模数据时表现更高效
可视化能力 强大、直观,生成高质量出版级图形 默认可视化能力较弱
分析流程 标准化、自动化流程方便 更灵活,但需要更多编程能力
社区支持 文档详尽,社区活跃 用户群体逐渐增长,文档丰富
适用场景 数据集规模中等、偏向高质量图表的需求 大规模数据、高效计算和灵活分析需求

# 本教程的分析平台选择

本教程将主要基于 Seurat V5 进行讲解,主要是由于 R 语言的学习成本相对较低,在处理一般规模的单细胞数据时,Seurat 的性能也足够,更重要的一点是,R 语言绘图质量相对而言比较高,使人心旷神怡。

不过,在大规模数据分析场景中,Scanpy 或许是更优的选择。对于对 Python 生态有兴趣的朋友,可以将 Seurat 和 Scanpy 的知识结合,灵活使用两种工具以适应多样化的研究需求。