单细胞 RNA 测序(scRNA-Seq)分析一条龙(入门)

工具准备

  1. R语言:Linux下无root权限安装R语言(conda安装和普通安装)
  2. python:conda安装
  3. cellranger:后面用到会说

概述/扫盲

什么是单细胞 RNA 测序(scRNA-Seq)数据?
单细胞 RNA 测序(single-cell RNA seq,scRNA-Seq)是一种用于分析单个细胞基因表达水平的技术。即可以在单个细胞的水平上检测 RNA 表达。

  • 传统的 RNA 测序( Bulk RNA-Seq)方法只能测量样本整体的表达水平,而不能反映细胞间的异质性。

单细胞 RNA 测序(scRNA-Seq)数据的预处理流程:

  1. 原始测序结果 FASTQ文件:主要包含多对 核苷酸序列和 质量分数 的FASTQ文件。(核苷酸序列中包含区别不同细胞的信息)(质量分数表明核苷酸序列的可信程度
  2. 细胞 × 基因表达矩阵 .h5ad/.h5/10x文件:将 FASTQ 文件中的序列与参考基因组进行比对,并计算每个基因在每个细胞中的表达量,生成一个 细胞 × 基因表达矩阵,以便于后续分析。
  3. 质量控制:通过对细胞 ×基因表达矩阵进行质量检查,筛除低质量的数据,例如表达基因量小于50的细胞,提高数据质量。

image
说明: 存储细胞 × 基因表达矩阵的文件有很多种,常用的有.h5ad/.h5/10x/tsv 等等。但是存储原始测序结果的99.99%是FASTQ文件。

从什么地方收集单细胞数据?

  • GEO数据库:存储细胞 × 基因表达矩阵h5ad 文件,
    注意:提交到GEO的数据,大都是进行质量控制后的数据。

  • SRA数据库: 存储原始测序结果FASTQ 文件,

原始测序结果 FASTQ 文件

原始 RNA 测序数据大概率在 FASTQ 文件中。它是一种基于文本的格式,用于存储由单字母代码表示的读序列。 FASTQ 文件中的序列以@符号开头的readID开始,然后是序列数据行,一个简单的加号+分隔符和碱基质量分数。

它以以下格式表示:

@ReadID
READ SEQUENCE
+
SEQUENCING QUALITY SCORES

一般来说,fastq 文件是使用质量控制工具(如 FastQC)进行预处理的。这将输出一系列评估序列 reads 质量的指标。

⚠️但是fastq文件不一定是 单细胞 RNA-Seq

FASTQ 文件是一种通用的测序数据格式,广泛应用于各种类型的测序实验,包括但不限于:

  • 常规的 RNA-Seq(转录组测序)
  • DNA-Seq(基因组测序)
  • ChIP-Seq(染色质免疫沉淀测序)
  • 单细胞 RNA-Seq(如 10x Genomics 平台生成的单细胞测序数据)
  • 全外显子组测序、小片段测序等

下载fastq文件

数据库介绍

代码下载fastq数据

Browsing NCBI with rentrez 使用rentrez访问NCBI数据库

安装Toolkits,使用prefetch下载SRA数据库的fastq数据

细胞 × 基因表达矩阵

一般不会对fastq文件进行分析,需要先通过软件将fastq文件转化为 细胞 × 基因表达矩阵(一般为10x / h5ad文件),一般最常用的是Cell ranger,后面会讲解使用教程。其他工具还有:STARsolo,Doublets等等。

细胞 × 基因表达矩阵 存储方式 介绍与读取

下面几种数据存储的核心数据都是一样的,只是格式不同。

数据读入采取scanpy库进行:scanpy库是用于单细胞数据分析的 Python 库
读取请看单细胞数据_不同类型的数据介绍与Scanpy读取

.h5ad(anndata 数据格式)

.h5ad数据结构解释(anndata 数据格式)
官方网站:https://anndata.readthedocs.io/en/latest/ ,下面的内容官网都有

h5ad文件提供了一种可扩展的方式来记录数据及其注释 (annotation),主要包含X, obs, var, uns等多个部分,分别存储不同的信息。结构如下图所示

image
主要由以下几部分构成:

功能 数据类型 说明
adata.X 表达量矩阵 ndarray,scipy sparse,matrix, DataFrame X用来联系obs和var,其中行代表细胞,列代表基因,每个元素的值代表该基因在该细胞中的表达量。
adata.obs 观察值数据 DataFrame,Mapping[str, Iterable[Any]] obs从不同维度描述细胞的信息,不同数据集不同。
adata.var 特征和高可变基因数据 DataFrame,Mapping[str, Iterable[Any]] var从不同维度描述基因的结果,不同数据集不同。
adata.uns 非结构化注释 Mapping[str, Any] 其他注释

.h5 (HDF5)

Hierarchical Data Format (HDF5)文件,HDF5 是一种用于存储和组织大规模科学数据的文件格式。在单细胞数据中,可以使用 HDF5 存储表达矩阵、基因和细胞的元数据等信息。
AnnData的.h5ad文件,是基于 HDF5 的文件格式,参考h5ad即可。
注意:.h5ad和.h5两个读取方式不同

10x_mtx(cell ranger输出,三个文件)

就是cell ranger上游比对分析产生的3个文件:
├── xxx_feature_bc_matrix
│ ├── barcodes.tsv.gz:细胞标签(barcode)
│ ├── features.tsv.gz:基因ID(feature)
│ └── matrix.mtx.gz:表达数据(matrix),该文件包含了一个稀疏矩阵,其中每一行代表一个基因,每一列代表一个细胞,每个元素则表示基因在相应细胞中的表达量

具体文件格式如下:

>barcodes.tsv.gz
AAACCCAAGAAACCCA-1
AAACCCAAGAAAGTCT-1
AAACCCAAGAAATTGC-1
AAACCCAAGAACAAGG-1

============
>features.tsv.gz
ENSG00000243485	MIR1302-2HG	Gene Expression
ENSG00000237613	FAM138A	Gene Expression
ENSG00000186092	OR4F5	Gene Expression
ENSG00000238009	AL627309.1	Gene Expression

============
>matrix.mtx.gz
%%MatrixMarket matrix coordinate integer general
%metadata_json: {"software_version": "Cell Ranger cellranger-8.0.1", "format_version": 2}
36601 643092 12843054
19846 1 1
8208 2 1
31505 3 1
22399 4 1

对于R语言,一般先使用read10X()对这三个文件进行整合,得到行为基因、列为细胞的表达矩阵(为稀疏矩阵dgCMatrix格式,节约内存);然后再配合CreateSeuratObject()函数创建Seurat对象

tsv/csv/txt/tab(一个文件)

提醒:.gz是一种压缩格式,.gz前的只要是这几个数据类型,就可以使用。

这些文件本质都是txt,文件里面包含了转成10x_mtx 格式的所有信息:
image

  • 第一行是条形码(基因序列)(barcodes.tsv.gz)
  • 第一列是基因(features.tsv.gz)
  • 其余就是0/1矩阵(reads 计数)(matrix.mtx.gz)

分析fastq数据(->10x文件 / h5ad文件)

一般不会对fastq文件进行分析,需要先通过软件将fastq文件转化为10x文件/ h5ad文件,一般常用的是Cell ranger,后面会讲解使用教程。其他工具还有:STARsolo,Doublets。

使用Cell ranger分析单细胞数据

Cell Ranger 是一组分析管道,用于处理 Chromium 单细胞数据以对齐 reads,生成特征条形码矩阵,执行聚类和其他二次分析等等。 它帮助我们生成 RNA reads 计数矩阵,我们将在学习中使用。

注意:只有10x的数据才能用Cell ranger分析,除了10x数据还有其他获取单细胞RNA-seq测序的方式

点击查看广泛应用的scRNA-seq技术汇总

转自:https://shixiangwang.github.io/posts/2023-07-13-fundamentals-of-scrnaseq-analysis

Methods Transcript coverage UMI possibility Strand specific References
Tang method Nearly full-length No No Tang et al. (2009)
Quartz-Seq Full-length No No Sasagawa et al. (2013)
SUPeR-seq Full-length No No X. Fan et al. (2015)
Smart-seq Full-length No No Ramsköld et al. (2012)
Smart-seq2 Full-length No No Picelli et al. (2013)
MATQ-seq Full-length Yes Yes Sheng et al. (2017)
STRT-seq STRT/C1 5′-only Yes Yes Islam et al. (2011)
CEL-seq 3′-only Yes Yes Hashimshony et al. (2012)
CEL-seq2 3′-only Yes Yes Hashimshony et al. (2016)
MARS-seq 3′-only Yes Yes Jaitin et al. (2014)
CytoSeq 3′-only Yes Yes H. C. Fan, Fu, and Fodor (2015)
Drop-seq 3′-only Yes Yes Macosko et al. (2015)
InDrop 3′-only Yes Yes Klein et al. (2015)
Chromium 3′-only Yes Yes Zheng et al. (2017)
SPLiT-seq 3′-only Yes Yes Rosenberg et al. (2018)
sci-RNA-seq 3′-only Yes Yes Cao et al. (2017)
Seq-Well 3′-only Yes Yes Gierahn et al. (2017)
DroNC-seq 3′-only Yes Yes Habib et al. (2017)
Quartz-Seq2 3′-only Yes Yes Sasagawa et al. (2018)

一些概念:

  • GEM 孔(以前称为 GEM 组):来自单个 10x Chromium™ 芯片通道的分隔单元(凝胶颗粒悬浮液)集合。可以从一个 GEM 孔中获得一个或多个测序文库。
  • 文库(或测序文库):从单个 GEM 孔中制备的带有 10x 条形码的测序文库。借助特征条形码或 V(D)J 分析,可以从同一个 GEM 孔中创建多个文库。文库类型可能包括基因表达、抗体捕获、CRISPR 引导捕获、TCR 富集等。
  • 测序 Run(或 Flowcell): A flowcell containing data from one sequencing instrument run.(这个从英文直译上很难理解,通俗的说就是一次上机测序得到的数据流)

详细使用教程: 使用Cell ranger分析单细胞数据

质量控制

常见质量控制指标含义

以h5ad用python处理为例

(1)obs

  • n_genes_by_count:细胞中计数呈阳性的基因数量。(一个细胞中有多少种基因。)

  • total_counts:细胞的计数总数(该细胞的基因总数),这也可能称为库大小。

  • pct_counts_mt:线粒体细胞总数的比例。

(2)var

  • n_cells_by_counts:所有细胞中表达该基因的细胞数目
  • mean_counts:所有细胞中该基因表达的平均值
  • pct_dropout_by_counts:未表达该基因的细胞占细胞总数的百分比
  • total_counts:所有细胞中,基因的表达量总和

Python使用Scanpy计算质量控制指标

请看:scanpy计算n_genes_by_counts和total_counts等质量控制指标

相关教程:

R语言使用Seurat 进行分析

网上有很多,推荐一个:
使用 Seurat 进行分析:
https://shixiangwang.github.io/posts/2023-07-13-fundamentals-of-scrnaseq-analysis/#使用-seurat-进行分析

posted @ 2024-09-24 16:40  kingwzun  阅读(438)  评论(0编辑  收藏  举报