5.5.1 使用Seurat的merge功能进行整合

刘小泽写于19.10.8

前言

单细胞数据未来会朝着多样本发展,因此数据整合是一项必备技能。cellranger中自带了aggr的整合功能,而这篇文章(Differentiation dynamics of mammary epithelial cells revealed by single-cell RNA-sequencing)的作者也正是这么做得到的组合后的表达矩阵,然后用Read10X读入

关于文章

这是发表在2017年10月的NC文章。

作者的论点是:乳腺上皮细胞对研究乳腺癌的发展很重要,但目前只有很少的marker可以追踪这群细胞,因此有必要探索乳腺发育不同阶段的乳腺上皮细胞变化。

实验涉及了四个时期:8 weeks virgin =》nulliparous (NP) 未怀孕时期、14.5d gestation (G) 妊娠期第14.5天、6d lactation (L) 哺乳期第6天、11d post involution (PI) 完全退化第11天。其中每个时期都采集两只老鼠的组织细胞,所以一共8个样本,然后使用10X建库,那么最后的测序文件就是8*3 = 24

如果要对这24个文件分别去整合,使用seurat的merge函数即可,不过问题的关键是:如何用代码将这些样本区分开,然后分别构建对象,最后merge这些对象

开始操作

第一步:准备原始测序数据

我们下载第一个:GSE106273_RAW.tar(183.5 Mb) https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE106273&format=file

感觉手机下载速度就是比电脑快,这个文件在手机上下载3分钟,电脑预计时间1小时

下载后解压,整个过程直接在Rstudio中的Terminal直接完成

第二步:整理数据

思路:根据中间的分组信息(NP、G)将包含的文件放到相应的文件夹中

方法一:shell脚本

方法二:R脚本

需要注意的是,Read10X函数需要读取解压后的文件,于是还要对所有的数据文件进行解压

常见错误:

  • 说找不到Barcode文件,但明明存在Barcode:

那很有可能是因为三个10X数据的命名出了问题,一定要命名成"barcodes.tsv" "genes.tsv""matrix.mtx"

【补充:

cellranger的V2版本得到的结果分别是:barcodes.tsv、genes.tsv、matrix.mtx;

V3版本得到的结果分别是:matrix.mtx.gz、features.tsv.gz、barcodes.tsv.gz】

  • 说找不到基因文件,那么就要看看测序数据是不是解压后的

第三步:批量读取成10X对象

Read10X() + CreateSeuratObject()

第四步:组合

补充

官网的merge教程在:https://satijalab.org/seurat/v3.1/merge_vignette.html

描述了三种情况

第一种: merge两个seurat对象(原始数据)

需要注意的是,组合数据时需要注明每个数据的名称,使用add.cell.ids参数指定

第二种:merge两个以上(原始数据)

将参数y 设成一个向量,就可以指定其他的数据

第三种:merge归一化、标准化数据

默认情况,只会组合原始数据,但如果有的数据时标准化之后的呢?

其实可以通过一个参数merge.data = TRUE指定

看看第一种组合raw data和第三种组合normalized data对比:

上面的组合多个数据就结束了,接下来是检查组合后的分群结果

首先检查原样本分群结果

然后鉴定亚群,看看它们的分群结果

看到,NP有三个主群、G有三个主群、L有三个主群、PI有两个主群

在之前单细胞天地的推送中,得到了:

一点小差别就是:第一张图的L中0组在第二张图中拆分成了0、1组

为了保持参数一致,设置tsne的resolution=0.3再进行测试 但下面第三张图中L组得到的也是一大群,而且PI得到了3个主群 image-20191008224728646

对比原文的数据

它得到了3个NP、3个G、2个L、3个PI,其余的分给了Basal 4群

最后更新于

这有帮助吗?