Seurat4.0系列教程:大数据集整合的方法

对于非常大的数据集,标准工作流程可能计算成本高得令人望而却步。在此工作流程中,我们可采用如下两种方法提高效率和运行时间:

  1. Reciprocal PCA(RPCA)
  2. 基于参考的整合

主要的效率改进是使用了FindIntegrationAnchors()。首先,我们使用 Reciprocal PCA(RPCA) 而不是 CCA 来寻找锚点。在使用Reciprocal PCA 确定任意两个数据集之间的锚点时,我们将每个数据集投影到其他 PCA 空间中,并根据相同的邻近要求寻找锚点。所有下游整合步骤保持不变,我们能够"更正"(或协调)数据集。

此外,我们使用基于参考的整合。在标准工作流中,我们识别所有数据集之间的锚点。虽然这给数据集在下游整合中同等的权重,但它也可能使计算变得密集。例如,在整合10 个不同的数据集时,我们需要执行 45 次不同的对比。作为替代方案,我们在此介绍了指定一个或多个数据集作为整合分析的"参考",其余数据集被指定为"查询"数据集。在此工作流中,我们不会在成对查询数据集之间识别锚点,从而减少比较次数。例如,在整合10 个数据集将其中指定的 1 个数据集集成为参考时,我们仅执行 9 次比较。基于参考的整合可应用于log标准化或 SCTransform标准化的数据集。

可选的工作流程包括以下步骤:

  • 创建一个seurat对象用来整合
  • 针对每个数据集分别执行标准化、基因选择和归一化
  • 在列表中的每个对象上运行 PCA
  • 整合数据集,并进行联合分析

总的来说,我们观察到标准工作流程和此处演示的工作流程之间惊人的相似结果,但计算时间和内存显著减少。如果数据集存在高度差异(例如,跨模式映射或跨物种映射),则只能使用一小部分基因来进行整合,您可以使用 CCA 得到更好的结果。

例如,我们将使用来自人类细胞图集的"免疫细胞图谱"数据,这些数据可以在这里[1]找到。

library(Seurat)

获取数据后,我们首先执行标准化和变异基因选择。

bm280k.data <- Read10X_h5("../data/ica_bone_marrow_h5.h5")
bm280k <- CreateSeuratObject(counts = bm280k.data, min.cells = 100, min.features = 500)
bm280k.list <- SplitObject(bm280k, split.by = "orig.ident")
bm280k.list <- lapply(X = bm280k.list, FUN = function(x) {
    x <- NormalizeData(x, verbose = FALSE)
    x <- FindVariableFeatures(x, verbose = FALSE)
})

接下来,选择基因用来后续整合,并在列表中的每个对象上运行 PCA。

features <- SelectIntegrationFeatures(object.list = bm280k.list)
bm280k.list <- lapply(X = bm280k.list, FUN = function(x) {
    x <- ScaleData(x, features = features, verbose = FALSE)
    x <- RunPCA(x, features = features, verbose = FALSE)
})

由于此数据集包含男性和女性,我们将选择一男一女(BM1 和 BM2)用于基于参考的工作流程。通过检查XIST基因的表达来确定性别。

anchors <- FindIntegrationAnchors(object.list = bm280k.list, reference = c(1, 2), reduction = "rpca", 
    dims = 1:50)
bm280k.integrated <- IntegrateData(anchorset = anchors, dims = 1:50)
bm280k.integrated <- ScaleData(bm280k.integrated, verbose = FALSE)
bm280k.integrated <- RunPCA(bm280k.integrated, verbose = FALSE)
bm280k.integrated <- RunUMAP(bm280k.integrated, dims = 1:50)
DimPlot(bm280k.integrated, group.by = "orig.ident")

参考资料

[1]

在这里: https://data.humancellatlas.org/explore/projects?filter=%5B%7B%22facetName%22:%22organ%22,%22terms%22:%5B%22immune%20system%22%5D%7D%5D&catalog=dcp1

(0)

相关推荐

  • 首次揭秘!不做实验也能发10 SCI,CNS级别空间转录组套路全解析(附超详细代码!)

    江山代有套路出 大家好,我是晨曦,上次的推文给大家介绍了单细胞图谱类文章,相信大家不管是看过那篇推文,还是看了我们挑圈联靠其它单细胞的相关推文,对于单细胞,不管是从流程还是从分析方式上都应该不陌生了吧 ...

  • 单细胞工具箱|Seurat官网标准流程

    学习单细胞转录组肯定先来一遍Seurat官网的标准流程. 数据来源于Peripheral Blood Mononuclear Cells (PBMC),共2700个单细胞, Illumina Next ...

  • (3条消息) Learning Robust Low

    Learning Robust Low-Rank Representation (2012) 注释: 本篇主要学习LRR和online LRR理论.本文由RPCA的提出讲起:再叙述论文提出的onlin ...

  • Seurat学习与使用(一)

    简介Seurat是一个r包,被设计用于单细胞rna-seq数据的细胞质控和分析.Seurat旨在使用户能够识别和解释单细胞转录组数据中的异质性来源,同时提供整合不同类型的单细胞数据的函数.目前Seur ...

  • Seurat4.0系列教程4:整合分析

    scRNA-seq整合简介 对两个或两个以上单细胞数据集的整合分析提出了独特的挑战.特别是,在标准工作流下,识别存在于多个数据集中的基因可能存在问题.Seurat v4 包括一组方法,以匹配(或&qu ...

  • Seurat4.0系列教程7:数据可视化方法

    我们将使用之前从 2,700个 PBMC 教程中计算的 Seurat 对象在 演示可视化技术.您可以从这里[1]下载此数据集 SeuratData::InstallData("pbmc3k& ...

  • Seurat4.0系列教程3:合并数据集

    在此,我们将合并两个 10X PBMC 数据集:一个包含 4K 细胞,一个包含 8K 细胞.数据集可以在这里[1]找到. 首先,我们在数据中读入并创建两个Seurat对象. library(Seura ...

  • Seurat4.0系列教程13:使用RPCA快速整合数据

    这是一个稍微修改的工作流程,用于整合 scRNA-seq 数据集.不再使用("CCA") 来识别锚点,而是使用 Reciprocal PCA("RPCA").在 ...

  • Seurat4.0系列教程14:整合scRNA-seq and scATAC-seq数据

    单细胞转录学改变了我们描述细胞状态的能力,但深入的生物学解释需要的不仅仅是分群.随着测量不同细胞模式的新方法的出现,一个关键的分析挑战是整合这些数据集,以更好地了解细胞身份和功能.例如,用户可以在同一 ...

  • Seurat4.0系列教程22:空间转录组的分析、可视化与整合

    Seurat4.0系列教程告一段落,但这决不是终点.这个系列教程只是给大家打开一扇窗,知道Seurat4.0有这些功能可用,少走弯路,起到一个抛砖引玉的作用,后续还要自己深入研究.不要像我当初入门单细 ...

  • Seurat4.0系列教程1:标准流程

    时代的洪流奔涌而至,单细胞技术也从旧时王谢堂前燕,飞入寻常百姓家.雪崩的时候,没有一片雪花是无辜的,你我也从素不相识,到被一起卷入单细胞天地.R语言和Seurat已以势如破竹之势进入4.0时代,天问一 ...

  • Seurat4.0系列教程5:交互技巧

    此文演示了一些与 Seurat 对象交互的功能.为了演示,我们将使用在第一个教程中创建的 2,700 个 PBMC 对象.为了模拟我们有两个复制的情景,我们将随机分配每个集群中一半的细胞自" ...

  • Seurat4.0系列教程6:常用命令

    Seurat 标准流程 标准 Seurat 工作流采用原始的单细胞表达数据,旨在数据中查找clusters.此过程包括数据标准化和高变基因选择.数据归一化.高变基因的PCA.共享近邻图形的构建以及使用 ...