实用干货|Seurat-单细胞转录组测序分析R包教学
作为单细胞数据分析神器,Seurat几乎是当前单细胞RNA-seq分析领域的不可或缺的工具,特别是基于10x Genomics公司的CellRange流程得出的结果,可以方便的对接到Seurat工具中进行后续处理,相对全面的功能,简洁的操作命令,给初学者相对友好。今天小编向大家简单介绍一下Seurat这款实用且易上手的单细胞数据分析软件。
Seurat简介
Seurat是由New York Genome Center, Satija Lab开发的单细胞数据分析集成软件包。其功能不仅包含基本的数据分析流程,如质控、细胞筛选、细胞类型鉴定、特征基因选择、差异表达分析、数据可视化等等。同时也包括一些高级功能,如时序单细胞数据分析,不同组学单细胞数据整合分析等。
Seurat第一版是为处理空间转录组而设计,第二版针对基因droplet的单细胞技术而开发的用于单细胞质控、降维、聚类、鉴定细胞类型marker等多重功能,第三版可以整合多组学,多批次,多实验方法的数据,把握了后续数据分析需要多组学整合的热点策略,符合下一步分析思路更全面,生物学解释更透彻的科研需求。目前更新的第四版为单细胞多模态分析提供新算法,从同一细胞同时测量多种数据类型的能力,称为多模态分析,代表了单细胞基因组学的一个新的和令人兴奋的前沿。在Seurat v4中,引入了加权最近邻(WNN)分析,这是一种无监督策略,用于学习每个细胞中每个模态的信息内容,并基于两种模态的加权组合来定义细胞状态。
基础分析流程介绍
以下步骤包括 Seurat 中 scRNA-seq 数据的标准预处理工作流程。包括基于 QC 指标的过滤、数据标准化和归一化,以及检测高变异基因的功能。
第一步,创建Seurat对象
Seurat软件提供了很友好的函数可以直接读取10x Genomics的输出结果。导入文件后便可以创建Seurat对象,创建完Seurat对象后,Seurat将数据保存在不同的slot中,如filter_10x_object@raw.data, filter_10x_objectt@data, filter_10x_object@meta.data, filter_10x_object@ident,其中raw.data存放的是每个细胞中每个gene的原始UMI数据,data存放的是gene的表达量,meta.data存放的是每个细胞的统计数据如UMI数目,gene数目等,ident此时存放的是project信息。由于技术原因,一个GEM中可能会包含2个或多个细胞,也可能不包含细胞,这时候可以通过观察每个barcode中的基因数目或UMI数目来判断。
第二步,数据质控
质控的参数主要有两个:1.每个细胞测到的unique feature数目(unique feature代表一个细胞检测到的基因的数目,可以根据数据的质量进行调整)2.每个细胞检测到的线粒体基因的比例,理论上线粒体基因组与核基因组相比,只占很小一部分。所以线粒体基因表达比例过高的细胞会被过滤。使用PercentageFeatureSet()函数计算线粒体 QC 指标,该函数计算来自一组功能的计数百分比。
代码运行后会得到下图所示结果,nFeature_RNA代表每个细胞测到的基因数目,nCount代表每个细胞测到所有基因的表达量之和,percent.mt代表测到的线粒体基因的比例。
图1 基因、UMI和线粒体小提琴图第三步,标准化数据
从数据集中删除不需要的细胞后,下一步是使数据标准化。默认情况下,我们采用全局标准化。接下来,我们计算数据集中显示高变异的特征子集(即,它们在某些细胞中表达强烈,在另一些单元格中表达得很低)。在下游分析中关注这些基因有助于突出单细胞数据集中的生物信号。默认情况下,我们使用每个数据集的 2,000 个基因。这些将用于下游分析,如 PCA。
第四步,细胞分类
1)归一化数据
应用线性变换('缩放'),这是在PCA等降维技术之前的标准预处理步骤。该ScaleData函数:改变每个基因的表达,使得跨细胞的平均表达为0,缩放每个基因的表达,以便跨细胞的方差为1。
2)PCA降维
我们将在缩放数据上执行PCA。默认情况下,只有先前确定的可变功能用作输入,但如果您希望选择不同的子集,则可以使用参数进行定义。Seurat 提供了几个有用的方法来可视化定义 PCA 的单元格和功能,包括,[DimPlot()],[DimHeatmap()]等。
图2 DimPlot降维图 图3 DimHeatmap降维图 图4 多个DimHeatmap降维图 图5 降维图3)定义数据集的“维度”
为了克服scRNA-seq数据的任何单一特征中的广泛技术噪声,Seurat基于其PCA分数对细胞进行聚类,每个PC基本上代表在相关特征集中组合信息的“元特征”。因此,顶部主要组件表示数据集的强大压缩。但是,我们应该选择包含多少个组件?10?20?100?在Macosko 等人中,实施了一项受JackStraw程序启发的重采样测试。我们随机置换数据的子集(默认为1%)并重新运行PCA,构建特征分数的“空分布”,并重复此过程。我们将“重要”PC识别为具有低p值特征的强大丰富的PC。
该JackStrawPlot功能提供了一种可视化工具,用于比较每台PC的p值分布和均匀分布(虚线)。“重要的”PC将显示具有低p值的特征的强烈丰富(虚线上方的实线)。在这种情况下,看起来在前10-12PC之后,重要性急剧下降。
图6 JackStrawPlot图另一种启发式方法生成"肘部图":[ElbowPlot()]根据每个(函数)解释的方差百分比对原则组件进行排名。在此示例中,我们可以观察到 PC9-10 周围的"肘部",表明大多数真实信号在前 10 个 PC 中被捕获。
图7 ElbowPlot图4)细胞聚类
Seurat采用基于图形的聚类方法,简言之,这些方法将细胞嵌入到图形结构中,例如 K 最近的邻邻(KNN) 图,在具有类似特征表达模式的单元之间绘制边缘,然后尝试将此图划分为高度互连的"集团"或"社区"。
与表象一样,我们首先根据 PCA 空间中的欧几里德距离构建 KNN 图,并根据当地社区的共享重叠(Jaccard 相似性)优化任意两个细胞之间的边缘权重。
接下来将 Louvain 算法(默认值)或 SLM 等模块化优化技术应用于迭代组细胞,以优化标准模块化功能。该函数实现此过程,并包含一个分辨率参数,该参数设置下游聚类的"数量",增加值导致更多群集。我们发现,将此参数设置在 0.4-1.2 之间通常会为大约 3K 细胞的单细胞数据集提供良好的结果。对于较大的数据集,最佳分辨率通常会增加。
5)可视化
TSNE和UMAP两种方法经常被用于可视化细胞类别。
图8 细胞分群UMAP图第五步,提取各个细胞类型的marker gene
利用 FindMarkers 命令,可以找到找到各个细胞类型中于其他类别的差异表达基因,作为该细胞类型的生物学标记基因。其中ident.1参数设置待分析的细胞类别,min.pct表示该基因表达数目占该类细胞总数的比例。利用 DoHeatmap 命令可以可视化marker基因的表达。
第六步,探索感兴趣的基因
Seurat提供了小提琴图和散点图两种方法,使我们能够方便的探索感兴趣的基因在各个细胞类型中的表达情况。这种展示方法把基因表达量映射到UMAP结果中,同样可以直观的看到基因表达的特异性。
图9 基因差异表达小提琴图 图10 基因差异表达散点图第七步,利用先验知识定义细胞类型
根据每个类群中高表达的特异基因,我们可以利用已知细胞类型特定的标记基因,对每个类群确定细胞类型。
图11 注释后的UMP图第八步,最后保存数据
以上就是基本的单细胞转录组数据分析流程,整理出来供大家参考,本文主要参考了Seurat官网给出的单细胞转录组数据分析教程,供大家学习参考。
Seurat官网地址:https://satijalab.org/seurat/v3.1/pbmc3k_tutorial.html
刘静 | 文案