4.8 实战八 | Smart-seq2 | 人胰腺细胞

刘小泽写于2020.7.20

1 前言

这是也是来自多个供体的人类胰腺细胞,使用Smart-seq2建库技术,数据来自Segerstolpe et al. (2016)

数据准备

library(scRNAseq)
sce.seger <- SegerstolpePancreasData()
sce.seger
# class: SingleCellExperiment 
# dim: 26179 3514 
# metadata(0):
#   assays(1): counts
# rownames(26179): SGIP1 AZIN2 ... BIVM-ERCC5 eGFP
# rowData names(2): symbol refseq
# colnames(3514): HP1502401_N13 HP1502401_D14 ...
# HP1526901T2D_O11 HP1526901T2D_A8
# colData names(8): Source Name individual ... age
# body mass index
# reducedDimNames(0):
#   altExpNames(1): ERCC

看到3500多个细胞,包含ERCC,使用Symbol ID

看下样本信息:

ID转换

选择的方式是:将没有匹配的NA去掉,并且去掉重复的行

小结一下:至此见到了三种ID转换的方式,根据最后保留的基因数量,可以排个序:

保留基因最多(保留了NA和重复):uniquifyFeatureNames 中等(保留了NA,去掉重复):ifelse(is.na(ens.id), symbols, ens.id) 最少(去掉了NA以及重复):!is.na(gene.ids) & !duplicated(gene.ids)

编辑样本信息

之前有8列样本的信息,有点冗余了。这里只保留3列关心的,并重新命名

另外把细胞类型这一列中的“cell”字符去掉,并把首字母大写

2 质控

依然是备份一下,把unfiltered数据主要用在质控的探索上

之前作者在数据中已经标注了细胞质量,可以看到有问题的细胞还是很多的:

因此就要注意了,这里的数据会不会满足“大部分细胞都是高质量的”这个假设?

还是需要试一下,看看结果先

看到HP1509101在过滤时存在过滤不完全的情况,HP1504901过滤的ERCC数量太多,推测这两个批次效果可能并不是很好,可能存在大量的低质量细胞

因此,再次指定subset 参数,重新画图

看看过滤掉多少

最后将qc过滤的与本来标注低质量的一同过滤

3 归一化

此处会有一点小问题,值得注意!

本来有ERCC,操作应该是:

但由于存在几个细胞中一个ERCC都没有,所以会报错

此时面临两个选择:要么把这几个细胞去掉;要么就不借助ERCC,用另一种去卷积方法

如果要去掉这几个细胞:

我们这里选择保守的方法,不去掉细胞,使用另一种去卷积方法:

4 找表达量高变化基因

下面构建模型想使用modelGeneVarWithSpikes,于是首先应该把那几个没有ERCC的细胞去掉;另外由于AZ这个批次相对其他批次的细胞数量过于少,因此在模型构建中也把它去掉吧

如果要批量作图检查的话

注意,这里在找完HVGs后,没有进行批次矫正,如果继续向下做,会发现什么?

5 降维聚类

降维

聚类

检查聚类分群与批次

结果真的是:批次效应影响了分群,因此最好还是做一遍fastMNN操作

tSNE图中也是显示出了强烈的批次效应

6 补充矫正批次效应

上图看到很明显的批次效应,那么如果处理后,会有什么不同吗?

利用fastMNN矫正

因为fastMNN会包含PCA降维,所以下面继续进行tSNE即可

降维聚类

再次作图,是不是明显比之前好很多?

最后更新于

这有帮助吗?