单细胞转录组数据分析入门-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 是一种传统转录组测序数据的归一化方法,考虑了测序深度和转录本长度的影响。
- 矩阵中的值表示每千碱基转录本每百万读段的映射片段数。
计算公式:
$$ \text{FPKM} = \frac{\text{Fragments}}{\text{转录本长度 (kb)} \times \text{Mapped Reads (百万)}} $$
特点:
- **计量单位:** 浮点数,通常较小(如 0.1 至数百)。
- 优势:
- 能跨基因比较表达水平(考虑了基因长度)。
- 劣势:
- 对单细胞数据噪声敏感,适合大规模样本群体数据分析。
- 用途:
- 大量基因的定量分析,但逐渐被 TPM 替代。
TPM(Transcripts Per Million)矩阵
- TPM 是改进后的归一化方法,与 FPKM 类似,但通过将每个基因的表达值占总表达值的比例进行归一化,更便于跨样本比较。
计算公式:
- 对每个基因计算标准化值:
$$ \text{Normalized Counts} = \frac{\text{Counts}}{\text{基因长度}} $$
- 将标准化值归一化为百万:
$$ \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 开发。
- 专注于大规模单细胞数据集的快速、高效分析,支持大规模数据处理和分析。
- 其在面对大规模单细胞数据(百万级别)时表现优异。
缺点
- **可视化能力稍逊:** 默认图形输出质量不如 Seurat,但可以通过其他 Python 库(如 Matplotlib、Seaborn)弥补。
- **学习曲线较陡:** 对编程和 Python 生态系统的掌握有一定要求。
Seurat 与 Scanpy 的对比
| **特性** | **Seurat (R)** | **Scanpy (Python)** | | -------------- | -------------------------------------- | ---------------------------------- | | **性能** | 数据规模适中时表现优异,处理大数据较慢 | 面对大规模数据时表现更高效 | | **可视化能力** | 强大、直观,生成高质量出版级图形 | 默认可视化能力较弱 | | **分析流程** | 标准化、自动化流程方便 | 更灵活,但需要更多编程能力 | | **社区支持** | 文档详尽,社区活跃 | 用户群体逐渐增长,文档丰富 | | **适用场景** | 数据集规模中等、偏向高质量图表的需求 | 大规模数据、高效计算和灵活分析需求 |
本教程的分析平台选择
本教程将主要基于 **Seurat V5** 进行讲解,主要是由于 R 语言的学习成本相对较低,在处理一般规模的单细胞数据时,Seurat 的性能也足够,更重要的一点是,R 语言绘图质量相对而言比较高,使人心旷神怡。
不过,在大规模数据分析场景中,Scanpy 或许是更优的选择。对于对 Python 生态有兴趣的朋友,可以将 Seurat 和 Scanpy 的知识结合,灵活使用两种工具以适应多样化的研究需求。
Loading...



