Cell Ranger处理scRNA-seq数据
cellranger count
cellranger count
是10x Genomics提供的Cell Ranger软件包中的一个核心命令,用于处理单细胞RNA序列(scRNA-seq)数据。该命令执行了一系列复杂的数据处理步骤,从原始测序数据(FASTQ文件)出发,最终生成细胞的基因表达矩阵以及其他相关的分析结果。这些步骤主要包括:
- 质量控制:检查原始测序数据的质量,包括读取的质量分数和序列的内容,以确定数据是否适合进一步分析。
- 条形码处理:识别和处理细胞和UMI(Unique Molecular Identifier,独特分子标识符)条形码。这包括纠正可能的错误读取以及识别和去除非细胞或背景条形码。
- 基因组比对:将读取(reads)比对到参考基因组或转录组上。这一步骤是通过使用高效的比对工具(如STAR)完成的,以确定每个读取来源于基因组的哪个位置。
- UMI计数:为每个基因在每个细胞中统计UMI数量。这个步骤涉及到识别重复的UMI(可能是由PCR扩增引起的)并将它们合并为单一事件,从而准确计算每个基因的表达水平。
- 生成特征-条形码矩阵:基于UMI计数,为每个细胞(每个唯一的条形码)和每个基因生成一个矩阵,其中矩阵的每个元素代表该细胞中该基因的表达量。
- 细胞检测:基于UMI计数和其他标准(如基因的丰富度)确定哪些条形码代表真实的细胞。这个步骤帮助区分真正的单细胞数据和可能的背景或噪声。
- 质量控制报告生成:生成详细的质量控制报告,包括基因表达水平的分布、检测到的细胞数量、UMI分布等指标,帮助用户评估数据质量和实验效果。
- 初步数据分析:进行一些基本的数据分析,如降维(t-SNE、UMAP)、聚类分析等,以便快速了解样本中细胞的异质性和潜在的细胞类型。
执行cellranger count
后,会在指定的输出目录中生成多个文件和文件夹,这些文件包含了从原始FASTQ
文件到基因表达矩阵的处理结果,以及质量控制报告。下面是一些主要的输出文件及其作用:
- outs/目录:这是
cellranger count
执行完成后数据输出的主要目录,包含了多个子文件夹和文件,用于存储分析结果。 - **filtered_feature_bc_matrix/**:该目录包含了过滤后的特征-条形码矩阵,即每个细胞的基因表达矩阵。这个矩阵仅包括被认为是有效细胞的那些条形码。通常包含以下文件:
matrix.mtx.gz
:压缩的稀疏矩阵文件,记录了基因表达数据。features.tsv.gz
:包含矩阵中每一行对应的基因或特征的信息。barcodes.tsv.gz
:包含矩阵中每一列对应的细胞条形码的信息。
- **raw_feature_bc_matrix/**:该目录包含了原始特征-条形码矩阵,即包括所有读取到的条形码,不论其是否被认定为来自有效细胞。其结构与filtered_feature_bc_matrix/相同。
- metrics_summary.csv:一个包含关键质量控制指标的CSV文件,如检测到的细胞数量、平均唯一分子标识符(UMI)计数等。
- web_summary.html:一个交互式的HTML报告,总结了实验的主要结果和质量控制指标,包括细胞检测数量、基因检测数量以及UMI计数的分布图。这个报告对于快速评估实验质量很有用。
- cloupe.cloupe:为Cell Ranger的Loupe Browser准备的文件,这是一个可视化和分析单细胞RNA测序数据的工具。该文件使用户能够在Loupe Browser中查看和探索数据。
- analysis/目录:包含了一些自动化的初步分析结果,例如t-SNE或UMAP降维、聚类分析等,这些分析有助于理解细胞间的异质性。
- possorted_genome_bam.bam:包含了所有reads的比对结果的BAM文件,这些reads已经根据它们映射到的基因组位置进行排序。这个文件对于进一步的数据分析和验证非常重要。
分析流程
filtered_feature_bc_matrix/
目录下的文件包含了过滤后的特征-条形码矩阵,是单细胞RNA测序(scRNA-seq)分析中一个重要的数据集,反映了每个细胞中每个基因的表达量。这些文件通常用于后续的数据分析,包括细胞聚类、差异表达基因分析、细胞类型标注。
数据预处理
- 归一化:对基因表达矩阵进行归一化,以消除测序深度等因素的影响。
- 筛选基因:去除表达量过低的基因,因为这些基因的表达可能不稳定或不具代表性。
- 计算细胞的质量控制指标:例如,每个细胞中检测到的基因数量、UMI计数等,以去除低质量的细胞。
分析
降维分析
- PCA(主成分分析):用于降低数据维度,提取数据的主要变异来源。
- t-SNE或UMAP:进一步降维并可视化细胞之间的相似性,帮助识别细胞亚群。
b.聚类分析
使用降维后的数据进行聚类,例如使用k-means或基于图的聚类方法(如Louvain算法),以识别相似的细胞亚群。
c.差异表达基因分析
对不同聚类(假定代表不同的细胞类型或细胞状态)的细胞进行差异表达基因分析,以识别每个细胞群体的标志性基因。
d.细胞类型标注
根据差异表达基因的知识库(如已知的标志性基因)对细胞亚群进行标注,确定细胞的可能类型。
e.通路和功能分析
利用差异表达基因进行通路和功能富集分析,探索细胞在生物学过程中的作用。
可视化
- 细胞分布图:使用
t-SNE
或UMAP
结果绘制细胞的2D分布图
,可按聚类结果或特定基因的表达进行着色。 - 热图:展示不同细胞群体中重要基因的表达模式。
- 小提琴图或箱线图:展示特定基因在不同细胞群体中的表达分布。
例子
# 安装并加载Seurat包
install.packages("Seurat")
library(Seurat)
# 从表达矩阵创建Seurat对象
data <- CreateSeuratObject(counts = your_expression_matrix)
# 数据过滤
data <- subset(data, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)
# 数据标准化
data <- NormalizeData(data)
# 查找高变基因
data <- FindVariableFeatures(data)
# 运行PCA进行降维
data <- RunPCA(data)
# 根据PCA结果运行t-SNE
data <- RunTSNE(data)
# 聚类分析
data <- FindClusters(data)
# 可视化t-SNE结果
DimPlot(data)
运行
$ Rscript demo.R