使用ArchR分析单细胞ATAC-seq数据(第九章)-程序员宅基地

技术标签: python  java  数据分析  编程语言  大数据  

本文首发于我的个人博客, 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提供了良好的开始。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012110870/article/details/107907579

智能推荐

5个超厉害的资源搜索网站,每一款都可以让你的资源满满!_最全资源搜索引擎-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏41次。生活中我们无时不刻不都要在网站搜索资源,但就是缺少一个趁手的资源搜索网站,如果有一个比较好的资源搜索网站可以帮助我们节省一大半时间!今天小编在这里为大家分享5款超厉害的资源搜索网站,每一款都可以让你的资源丰富精彩!网盘传奇一款最有效的网盘资源搜索网站你还在为找网站里面的资源而烦恼找不到什么合适的工具而烦恼吗?这款网站传奇网站汇聚了4853w个资源,并且它每一天都会持续更新资源;..._最全资源搜索引擎

Book类的设计(Java)_6-1 book类的设计java-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏18次。阅读测试程序,设计一个Book类。函数接口定义:class Book{}该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是 书籍名称、 价格、 作者、 出版年份 。裁判测试程序样例:import java.util.*;public class Main { public static void main(String[] args) { List <Book>_6-1 book类的设计java

基于微信小程序的校园导航小程序设计与实现_校园导航微信小程序系统的设计与实现-程序员宅基地

文章浏览阅读613次,点赞28次,收藏27次。相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低学校的运营人员成本,实现了校园导航的标准化、制度化、程序化的管理,有效地防止了校园导航的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正建筑速看等信息。课题主要采用微信小程序、SpringBoot架构技术,前端以小程序页面呈现给学生,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生信息、校园简介、建筑速看、系统信息等功能,从而实现智能化的管理方式,提高工作效率。

有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

九大角度全方位对比Android、iOS开发_ios 开发角度-程序员宅基地

文章浏览阅读784次。发表于10小时前| 2674次阅读| 来源TechCrunch| 19 条评论| 作者Jon EvansiOSAndroid应用开发产品编程语言JavaObjective-C摘要:即便Android市场份额已经超过80%,对于开发者来说,使用哪一个平台做开发仍然很难选择。本文从开发环境、配置、UX设计、语言、API、网络、分享、碎片化、发布等九个方面把Android和iOS_ios 开发角度

搜索引擎的发展历史

搜索引擎的发展历史可以追溯到20世纪90年代初,随着互联网的快速发展和信息量的急剧增加,人们开始感受到了获取和管理信息的挑战。这些阶段展示了搜索引擎在技术和商业模式上的不断演进,以满足用户对信息获取的不断增长的需求。

随便推点

控制对象的特性_控制对象特性-程序员宅基地

文章浏览阅读990次。对象特性是指控制对象的输出参数和输入参数之间的相互作用规律。放大系数K描述控制对象特性的静态特性参数。它的意义是:输出量的变化量和输入量的变化量之比。时间常数T当输入量发生变化后,所引起输出量变化的快慢。(动态参数) ..._控制对象特性

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

推荐文章

热门文章

相关标签