使用ArchR分析单细胞ATAC-seq数据(第九章)

本文首发于我的个人博客, http://xuzhougeng.top/

往期回顾:

第9章 ArchR的拟混池重复

因为scATAC-seq数据本质上只有两种值,也就是说每个位点要么开放要么不开放,所以你会发现某些情况下无法使用单个细胞进行数据分析。此外,许多我们想要做的分析也依赖于重复才能计算统计显著性。对于单细胞数据,我们通过构建拟混池重复(pseudo-bulk replicates)来解决该问题。所谓的拟混池(pesudo-bulk)指的就是将单细胞进行合并模拟成混池测序的ATAC-seq实验得到的数据。ArchR为每个目标细胞分组构建多个拟混池样本,也就得到了拟混池重复。这个模拟过程背后的假设是将单细胞进行合并结果和实际的混池结果非常接近,以至于不需要在乎背后的差异。这些细胞分组通常都是来自于单个细胞类群,或者是一直细胞类型对应的可能聚类。我们这一章会介绍如何使用ArchR生成这些拟混池重复。

9.1 ArchR如何构建拟混池重复

ArchR使用分级优先法(tiered priority approach)构建拟混池重复。使用者定义: i)最小和最大重复数(minReps/maxReps), ii)每个重复的最少和最多细胞数(minCells/maxCells), iii)缺少足够细胞用于构建足够重复时的采样率(Sampling Ratio)。举个例子,当采样率等于0.8时,每个重复中80%的细胞来自于无放回抽样(这会导致重复间出现有放回抽样)。在这种情况下,多个重复中可能有一些相同的细胞,但是为了能在缺少足够细胞的分组里得到拟混池重复,这是必要的牺牲。

我们的拟混池重复生成过程可以用如下的决策树进行描述

pseudobulkReplicate_DecisionTree

流程有些复杂,这里概述下这个流程中的几个关键注意事项。

首先,用户确定细胞的分组,ArchR通常会称之为聚类,我们可以在第五章分析分析得到。

其次,对于每一组,ArchR尝试去创建理想的拟混池重复。所谓理想的拟混池重复,指的是每个重复只有一个样本构成,这就要求每个样本得保证足量的细胞数。这样保证了重复间的样本多样性和生物学变异,是ArchR所期望得到的最佳结果,但这一过程实际上会有5种可能的结果,根据ArchR的偏好排序如下

  1. 数据拥有足够多的样本(至少要等于maxRep定义的重复),且每个样本的细胞数都大于 minCell, 于是每个样本都可以作为拟混池重复,每个重复的细胞都来自于同一个样本。
  2. 一些样本的细胞数超过minCell,因此能够单独形成一个重复。剩下的重复则是通过将余下的细胞进行混合,然后通过无放回抽样得到。
  3. 数据里没有一个样本的细胞数超过minCell, 但是总细胞数超过minCells * minReps。因此将所有的细胞进行混合,然后进行无放回抽样,抽样时不考虑细胞来源。
  4. 一个细胞分组中的总细胞数低于 minCells * minReps,但是大于minCells / Sample Ratio。此时单个样本的构建采取无放回抽样,重复间则需要有放回抽样,降低多个拟混池重复间的相同细胞数。
  5. 一个细胞分组中的总细胞数低于 minCells / Sample Ratio 。这意味着我们必须在单个重复和跨重复中都采取有放回抽样策略。这是最糟糕的情况,后续在使用这些拟混池重复做下游分析分析要特别小心。后续可以通过设置ArchR的minCells参数进行淘汰。

我们使用如下的数据集阐述这一过程

Sample  Cluster1  Cluster2  Cluster3  Cluster4  Cluster5
A       800       600       900       100       75
B       1000      50        400       150       25
C       600       900       100       200       50
D       1200      500       50        50        25
E       900       100       50        150       50
F       700       200       100       100       25

我们设置的参数为minRep=3,maxRep=5, minCells=300, maxCells=1000sampleRatio=0.8,也就是最少有3个重复,最多是5个重复,每个重复至少有300个细胞,最多是1000个细胞,当细胞数不满住要求,抽样率设置为0.8.

9.1.1 Cluster1

对于Cluster1, 我们的6个样本(大于maxRep)的细胞数都高于minCells(300)。这是最理想的情况,对应上述第一种情况,我们将会得到5个拟混池重复,保证每个重复都来自独立的样本。

Rep1 = 800 cells from SampleA
Rep2 = 1000 cells from SampleB
Rep3 = 1000 cells from SampleD
Rep4 = 900 cells from SampleE
Rep5 = 700 cells from SampleF

对于这些重复,我们需要注意两个事情:(1) 因为我们的样本数足够多,能够保证每个重复都来自独立的样本,所以可以淘汰其中细胞数最少的SampleC。(2)由于maxCells设置为1000,因此最多只能有1000个细胞。

9.1.2 Cluster2

对于Cluster2, 我们有3个样本的细胞数超过minCells, 另外3个样本的细胞数都不够。这对应上述第二种情况,我们会以如下的方法构建拟混池重复。

Rep1 = 600 cells from SampleA
Rep2 = 900 cells from SampleC
Rep3 = 500 cells from SampleD
Rep4 = 350 cells [50 cells from SampleB + 100 from SampleE + 200 from SampleF]

在这个例子中,Rep4由其他几个样本的细胞混合后通过无放回抽样得到

9.1.3 Cluster3

对于Cluster3,我们只有两个样本超过minCells, 不满足minReps。但是如果我们将剩余的样本的细胞进行混合形成额外的重复,它的细胞数就超过了minCells。最终我们得到了3个拟混池重复,对应上述的情况3。我们将得到如下重复

Rep1 = 900 cells from SampleA
Rep2 = 400 cells from SampleB
Rep3 = 250 cells [100 cells from SampleC + 50 from SampleD + 50 from SampleE + 50 from SampleF]

和Cluster2类似,Cluster3的Rep3由其他几个样本的细胞混合后通过无放回抽样得到

9.1.4 Cluster4

对于Cluster4,总细胞数是570个,小于minCells * minReps(900). 在这个情况下,我们无法保证有足够多的细胞通过无放回抽样的方式保证每个重复都有最小的细胞数。但是,总的细胞数依旧依旧大于minCells / sampleRatio(375个细胞),这意味着每个重复中细胞可以来自于无放回抽样,重复之间的细胞需要放回抽样。这对应着上述的情况4,我们将得到如下重复

Rep1 = 300 cells [250 unique cells + 25 cells overlapping Rep2 + 25 cells overlapping Rep3]
Rep2 = 300 cells [250 unique cells + 25 cells overlapping Rep1 + 25 cells overlapping Rep3]
Rep3 = 300 cells [250 unique cells + 25 cells overlapping Rep1 + 25 cells overlapping Rep2]

在这个情况中,ArchR会尽可能降低任意两个拟混池重复的相同细胞。

9.1.5 Cluster5

对于Cluster5,总共是250个细胞,同时小于minCells * minReps(900)和minCells / sampleRatio(375). 这意味着每个样本都需要有放回的抽样,重复之间也需要有放回抽样,才能得到拟混池重复。这是上述说到的第5种情况,是其中最糟糕的情况。对于这类拟混池重复,在后续的分析中需要谨慎使用。我们将得到如下的重复:

Rep1 = 300 cells [250 unique cells + 25 cells overlapping Rep2 + 25 cells overlapping Rep3]
Rep2 = 300 cells [250 unique cells + 25 cells overlapping Rep1 + 25 cells overlapping Rep3]
Rep3 = 300 cells [250 unique cells + 25 cells overlapping Rep1 + 25 cells overlapping Rep2]

9.2 构建拟混池重复

通过上一节了解ArchR构建拟混池重复的逻辑后,我们就可以开始实际操作了。在ArchR中,我们通过调用addGroupCoverages()函数来构建拟混池重复。它的关键参数groupBy,定义了拟混池重复需要使用的分组。这里我们用的是上一章scRNA-seq数据标记的细胞类型,也就是Cluster2

projHeme4 <- addGroupCoverages(ArchRProj = projHeme3, groupBy = "Clusters2")

得到这些拟混池重复后,我们就能从数据中鉴定peak了。就像之前所说的,我们不希望使用所有的细胞鉴定peak,而是单独根据每一组细胞(例如聚类)单独鉴定peak,这样才有可能分析出不同组的特异性peak。这一章得到数据就为后续鉴定peak提供了良好的开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350