前两期scRNA-seq分享讲到了测序的原理、应用以及测序方法,今天就进入了数据分析阶段了。scRNA-seq 与 bulk -RNA-seq 同样是RNA的通量测序数据,在前期质控与后期分析都有什么异同?今天就先聊一聊scRNA-seq的质控,让你对scRNA-seq质控有个基础而又详实的了解,避免掉坑。
前言
随着scRNA-seq数据的增长,相关的分析方法和分析工具也在不断发展壮大。具体的分析步骤会随着研究目的有所不同,但其核心的分析流程都是类似的,下边小编带大家详细的了解一下如何进行数据的预处理(pre-processing)以及质控QC,让大家知道scRNA-seq质控的关键,少走弯路。
从原始测序数据到原始计数矩/From raw sequencing data to count matrix
从测序仪中得到的常见原始测序数据有二进制式的BCL 或FASTQ 文件。对于BCL文件需要先转化为FASTQ格式,然后进行QC,Demultiplexing,通过基因组比对和定量得到count matrix。主要步骤包括有:
· Read QC:获取原始数据后的第一步就是要检查数据质量;fastqc是大家比较熟悉的工具, 可以用于bulk RNA-seq 和scRNA-seq。
· Read trimming:去除adapters和尾端低质量reads, 常用工具有trim galore。
· Demultiplexing:这一步是根据细胞barcode和 mRNA UMI来识别转录分子来源并分配reads;常用的工具有zUMIs,UMI-tools等。
· Read alignment: 目前基于bulk RNA -seq开发的比对工具都适用于单细胞测序数据, 像常用的STAR, HISAT, TopHat2或者pseudo-aligner, Kallisto等。
· Read quantification:最后就是通过对unique UMI定量得到barcode X transcripts的计数矩阵,这一步中;常用工具有zUMIs,UMI-tools,featureCounts,HTSeq等。
这一套流程与bulk RNA-seq非常类似,主要的差异体现在demultiplexing和quantification上,根据不同的protocols而有所区别。例如zUMIs适用于大部分UMI-based protocols;对于Smartseq2或者其他paired-end full transcript protocols来说,得到的数据通常是已经完成了这一步,不需要大家自己处理。类似的还有10x这样的商业化平台,会自动进行处理生成可直接用于mapping的数据, 然后用户可以通过配套的Cell Ranger来得到计数矩阵。如果大家通过公共数据库下载相关数据,通常是得到相关的计数矩阵,也可直接用于下游数据分析。
计数矩阵的质控/QC of raw count matrix
我们在之前提到过scRNA-seq有一些自身技术上的局限,例如文库构建过程中可能掺入死细胞 (dead cells);多个细胞被捕获在同一个液滴中(doublets or multiplets);较低的转录本覆盖率 (poor mrna recovery)和捕获率低(low efficiency of cnda production),导致一些基因表达无法被检测到(dropout);这些都会影响我们最后的分析结果。因此在对计数矩阵进行分析前,我们需要针对细胞进行QC, 尽可能的去除低质量细胞,避免对下游分析引入过多的噪音。
针对上面提到这些因素,我们可以通过以下三个变量的分布来甄别和剔除低质量细胞,即通过设定阈值筛选出三个变量分布中的离群点(outliers),而这些离群点有可能对应着坏死细胞或者doublets:
· 细胞的计数深度(the number of counts per barcode):完整细胞的计数深度一般应该高于500;如果所有细胞的总体分布在500-1k之间,那说明样本的测序深度总体偏低,可以考虑增加测序深度。
· 检测到的基因数(the number of detected genes per barcode):对于高质量的数据,此分布应该只包含一个峰值(peak);如果出现bimodal,不要简单使用阈值来剔除,因为除了低质量细胞,不同的细胞类型(特别是外形差异较大的细胞)的混合也会出现bimodal分布;因此这种情况下,需要结合其他的变量一起考虑。
· 检测到的线粒体基因数(the fraction of reads mapped to mitochondrial genes):对于坏死或者膜破裂的细胞,其线粒体基因数一般都偏高。
这三个变量需要综合在一起考虑,并且没有一个万能的阈值适用于所有情况,这就需要我们针对具体的变量分布状况进行分析。如下图所示,通过将这三个变量反应到一张图上来选择具体的阈值也是一个很好的方法[4]。
总的来说,如果细胞的计数深度低,检测到的基因数目少,以及线粒体基因比例大,则表明这个细胞的细胞膜很可能已经破裂;反之,如果细胞的计数深度和检测到的基因数都过高,这个细胞就很有可能是doublets or multiplets。除了直接通过观察分布之外,现在也有很多新开发的算法可以用于甄别doublets,例如Scrublet,DoubletFinder,scds等。我们之后也陆续为大家介绍具体的用法。
以上是细胞层面的QC,同样我们还可以从基因层面来进一步筛选。我们在之前的文章中提到过,对于droplet-based scRNA-seq, 并不是所有的mRNA分子都能被捕获。并且由于测序深度比较浅, 一般来说每个细胞仅能检测到10~50%的转录本,这导致细胞中许多基因计数为0。这些基因会明显的拉低细胞的平均表达值,因此我们需要也要将它们剔除。首先,在所有细胞中零表达的基因需要被剔除;此外,如果一个基因仅在少数(例如<=10)细胞中表达,我们也可以考虑将其剔除。不过这里需要特别注意,如果在你的样本中存在一些特别罕见的细胞群,那么建议可以选择较小的阈值,以免漏掉了一些重要的并只在在少数细胞中表达的基因。
对数据进行QC是为了确保在下游的分析中能得到更清晰的结果。当然我们不能未卜先知,不可能一开始就选出“完美”的阈值,因此需要随时根据下游的分析结果(例如聚类和细胞类型注释)来回头调整。例如通过聚类和细胞类型注释后,我们发现某个细胞亚群对marker genes都零表达,或者整体测序深度和检测到的基因数比其他细胞群都少,那么我们就需要考虑提高QC阈值。通常我们都是从宽松的阈值开始,根据结果再来回逐步提高。
批次矫正/Batch effect correction
批次效应是高通量数据的常见噪音。随着scRNA-seq技术的创新和成本的降低,大量的单细胞转录组数据可能会在不同时间或基于不同的protocols生成,这些因素可能会引入技术噪音,产生批次效应,掩盖潜在的生物学信号并导致错误的结果。另外,当我们想结合多个公共数据库中的单细胞数据时,也同样面临着批次矫正的问题。
由于scRNA-seq与bulk RNA-seq之间的特征差异,针对bulk RNA-seq开发的批次矫正的方法大多都不太适用于单细胞。现有的一些针对scRNA-seq开发的方法包括有
MNN (mutual nearest neighbor),kBET (k-nearest neighbor batch effect test),CCA(canonical correlation analysis)等。MNN是通过寻找批次之间最相似的细胞,并且假定这些细胞属于同一类型来进行矫正;而kBET则是基于-based method来对批次差异定量;CCA 方法是通过最大化不同批次数据间的协方差,将数据project到低维空间中,该方法在R 包Seurat 中使用。
小编总结
针对单细胞测序数据开发的方法多种多样,目前引用比较火的R包当属Seurat, 我们在之后的系列专题中会专门带大家一起深入学习, ,也可在V信"作图丫"获取同样精彩内容。
参考资料/文献
1. Luecken MD, Theis FJ. Current best practices in single-cell RNA-seq analysis: a tutorial. Mol Syst Biol. 2019;15(6):e8746. Published 2019 Jun 19. doi:10.15252/msb.20188746
2. Ding, J., Adiconis, X., Simmons, S.K. et al. Systematic comparison of single-cell and single-nucleus RNA-sequencing methods. Nat Biotechnol 38, 737–746 (2020). https://doi.org/10.1038/s41587-020-0465-8
3. https://satijalab.org/seurat/vignettes.html
4. Luecken MD, Theis FJ. Current best practices in single-cell RNA-seq analysis: a tutorial. Mol Syst Biol. 2019;15(6):e8746. Published 2019 Jun 19. doi:10.15252/msb.20188746
5. Chen G, Ning B, Shi T. Single-Cell RNA-Seq Technologies and Related Computational Data Analysis. Front Genet. 2019;10:317. Published 2019 Apr 5. doi:10.3389/fgene.2019.00317