4.5 实战五 | CEL-seq2 | 人胰腺细胞

刘小泽写于2020.7.20

1 前言

第一代CEL-Seq由以色列理工学院研究团队于2012发表在Cell Reports

CEL-Seq的全称是:Cell expression by linear amplification and sequencing,采用线性扩增的测序方法,其主要优势在于错误率比较低,但是和PCR一样都存在序列偏向性。另外还具有以下优点:

  • 使用barcode允许多种类型的细胞同时分析;

  • 每个细胞在一个管中进行处理,避免了样本之间的污染

后来在2016年,CEL-seq2诞生,与早期版本相比具有低成本、高灵敏度,并缩短了实验操作实验时间

数据准备

这里使用的数据是: Grun et al. (2016) 中不同人类供体的胰腺细胞

library(scRNAseq)
sce.grun <- GrunPancreasData()

sce.grun
# class: SingleCellExperiment 
# dim: 20064 1728 
# metadata(0):
#   assays(1): counts
# rownames(20064): A1BG-AS1__chr19 A1BG__chr19 ...
# ZZEF1__chr17 ZZZ3__chr1
# rowData names(2): symbol chr
# colnames(1728): D2ex_1 D2ex_2 ... D17TGFB_95
# D17TGFB_96
# colData names(2): donor sample
# reducedDimNames(0):
#   altExpNames(1): ERCC

rowData(sce.grun)
# DataFrame with 20064 rows and 2 columns
# symbol         chr
# <character> <character>
#   A1BG-AS1__chr19    A1BG-AS1       chr19
# A1BG__chr19            A1BG       chr19
# A1CF__chr10            A1CF       chr10
# A2M-AS1__chr12      A2M-AS1       chr12
# A2ML1__chr12          A2ML1       chr12
# ...                     ...         ...
# ZYG11A__chr1         ZYG11A        chr1
# ZYG11B__chr1         ZYG11B        chr1
# ZYX__chr7               ZYX        chr7
# ZZEF1__chr17          ZZEF1       chr17
# ZZZ3__chr1             ZZZ3        chr1

ID转换

先将symbol转为Ensembl ID

接下来有两种处理方式:

第一种:将Ensembl ID加到原来数据中

第二种:将没有匹配的NA去掉,并且去掉重复的行(因为可能存在一个symbol对应多个Ensembl ID的情况)【这里就试一下这种方法】

2 质控

前几次实战的质控都很顺利,但并不意味着实际操作中这一步就可以跑跑代码解决 这一次,就遇到了一个常规代码解决不了的问题,需要思考+调整

数据备份

把unfiltered数据主要用在质控的探索上

看到这里的数据中没有线粒体基因

倒是有几个donor的批次信息

我们之前进行质控的时候,一般采用的先使用perCellQCMetrics 指定线粒体计算,然后用 quickPerCellQC 指定ERCC+线粒体进行过滤的策略。现在既然没有线粒体的信息,那么在第一步的perCellQCMetrics就不需要加subset参数了

然后进行过滤,并让函数注意批次信息

作图

【重点】发现了问题

质控并非是一帆风顺的,遇到问题应该知道如何探索解决

看到ERCC那个图,很明显D10和D3没有被正确过滤,它们中高ERCC的细胞还是没有被去掉

质控过滤有一个前提条件:大部分的细胞都是高质量的,但显然这里的D10、D3不符合这个要求,因此我们需要再次只根据D17、D2、D7这三个“好一点的样本”进行过滤

这次再作图看看

看到这次对D10、D3的过滤力度大了很多,基本满意

最后把过滤条件应用在原数据

3 归一化

也是使用预分群+去卷积计算size factor的方法

看看两种归一化方法的差异

也是再一次证明了去卷积方法比常规的方法更加精细,对批次层面也会纳入考量

4 找表达量高变化基因

既然有批次的信息,那就加到构建模型中去,而且有ERCC,就选用modelGeneVarWithSpikes这个方法

5 矫正批次效应

使用FastMNN方法:Correct for batch effects in single-cell expression data using a fast version of the mutual nearest neighbors (MNN) method.

检查一下结果,使用lost.var ,值越大表示丢失的真实生物异质性越多

  • It contains a matrix of the variance lost in each batch (column) at each merge step (row).

  • Large proportions of lost variance (>10%) suggest that correction is removing genuine biological heterogeneity.

6 降维 + 聚类

降维

聚类

最后作图看看批次效应矫正如何

最后更新于

这有帮助吗?