使用ArchR分析单细胞ATAC-seq数据(第十四章)
本文首发于我的个人博客, http://xuzhougeng.top/
往期回顾:
- 使用ArchR分析单细胞ATAC-seq数据(第一章)
- 使用ArchR分析单细胞ATAC-seq数据(第二章)
- 使用ArchR分析单细胞ATAC-seq数据(第三章)
- 使用ArchR分析单细胞ATAC-seq数据(第四章)
- 使用ArchR分析单细胞ATAC-seq数据(第五章)
- 使用ArchR分析单细胞ATAC-seq数据(第六章)
- 使用ArchR分析单细胞ATAC-seq数据(第七章)
- 使用ArchR分析单细胞ATAC-seq数据(第八章)
- 使用ArchR分析单细胞ATAC-seq数据(第九章)
- 使用ArchR分析单细胞ATAC-seq数据(第十章)
- 使用ArchR分析单细胞ATAC-seq数据(第十一章)
- 使用ArchR分析单细胞ATAC-seq数据(第十二章)
- 使用ArchR分析单细胞ATAC-seq数据(第十三章)
第十四章 ArchR的足迹分析
转录因子(Transcripts factor, TF)足迹分析使得我们能够预测特定位点中TF的精确结合位置。这是因为该位置被TF结合避免了转座酶的切割,而TF结合位点的邻近位置处于开放状态。
理想情况下,TF足迹分析需要在单个位置上分析从而确定TF的准确结合位置。但实际上,这需要非常高的测序深度,甚至超过混池ATAC-seq或者scATAC-seq的所有数据。为了解决这个问题,我们可以把和待预测的TF结合相关的Tn5插入位置进行合并。例如,我们可以提取所有包含CTCF motif的peak,制作一个全基因组的CTCF的聚合TF足迹。
为了保证足迹的可靠性,我们需要确保能够可靠的预测出目标TF所对应的结合位点。ArchR使用自带的addMotifAnnotations()
函数对peak区域进行搜索,寻找能够匹配的DNA序列。考虑到motif的简并性,无法保证每个motif都有足够的peak。添加到ArchRProject
的motif注释以二值矩阵表示(0=无motif, 1=有motif)。一旦你有了这些motif注释,ArchR使用getFootPrints()
函数分析足迹,它以一个ArchRProject
对象和一个GenomicRanges
对象(记录motif的位置)作为输入。可以使用getPositions()
函数从ArchRProject
中提取这些位置。之后足迹可以使用plotFootprints()
函数可视化。
或许更重要的是,ArchR的足迹分析能够抵消已知的Tn5插入序列偏好性。ArchR使用一个hexmer位置频率矩阵和一个目标Tn5插入位置上的k-mer频率矩阵来实现该功能。
最终,该流程输出考虑到Tn5插入偏好性的足迹图。
ArchR支持motif足迹分析和用户提供特征的足迹分析,在后续都会讨论。
14.1 motif足迹分析
由于教程用到的数据集比较小,因此利用该数据集得到足迹并不是那么的清晰。使用更大的数据会得到较小变异的足迹。
在分析足迹时,我们要先获取和motif相关的所有位置。这可以通过getPositions
函数完成。该函数有一个可选参数, name
,用于传入peakAnnotation
对象中我们想要获取位置的变量名。如果name=NULL
, 那么ArchR会使用peakAnnotation
槽(slot)的第一个条目(entry)。在下面的例子中,我们没有指定name
, ArchR使用的第一个条目为CIS-BP motifs.
motifPositions <- getPositions(projHeme5)
这会创建一个GRangesList
对象,每个TF motif以不同的GRanges
对象进行区分。
motifPositions
# GRangesList object of length 870:
# $TFAP2B_1
# GRanges object with 16773 ranges and 1 metadata column:
# seqnames ranges strand | score
# |
# [1] chr1 852468-852479 + | 8.17731199746359
# [2] chr1 873916-873927 + | 8.32673820065588
# [3] chr1 873916-873927 - | 8.32673820065588
# [4] chr1 896671-896682 + | 9.96223327271814
# [5] chr1 896671-896682 - | 8.92408377606486
# … … … … . …
# [16769] chrX 153991101-153991112 + | 8.39549159740639
# [16770] chrX 154299568-154299579 + | 8.90119825654299
# [16771] chrX 154664929-154664940 - | 8.16690864294221
# [16772] chrX 154807684-154807695 + | 9.57636587154549
# [16773] chrX 154807684-154807695 - | 10.6117355833828
# ——-
# seqinfo: 23 sequences from an unspecified genome; no seqlengths
#
# …
# <869 more elements>
我们提取部分感兴趣的TF motifs用于展示。在我们提取"EBF1"会附带"SREBF1", 因此我们需要用%ni%
显式将其过滤。%ni%
函数是R自带函数%in%
的相反函数。
motifs <- c("GATA1", "CEBPA", "EBF1", "IRF4", "TBX21", "PAX5")
markerMotifs <- unlist(lapply(motifs, function(x) grep(x, names(motifPositions), value = TRUE)))
markerMotifs <- markerMotifs[markerMotifs %ni% "SREBF1_22"]
markerMotifs
# [1] “GATA1_383” “CEBPA_155” “EBF1_67” “IRF4_632” “TBX21_780” “PAX5_709”
为了准确找到TF足迹,我们需要大量的reads。因此,细胞需要进行分组生成拟混池ATAC-seq谱才能用于TF足迹分析。这些拟混池谱之前在peak鉴定时就已经保存为分组覆盖文件。 如果没有在ArchRProject
添加分组覆盖信息,则运行如下命令
projHeme5 <- addGroupCoverages(ArchRProj = projHeme5, groupBy = "Clusters2")
在计算分组覆盖度后,我们可以为之前getFootprints()
挑选的一组标记motif计算足迹。即便ArchR已经优化了足迹分析流程,我们也建议先对一部分motif分析足迹,而不是直接分析所有motif。 我们通过positions
参数来选择motif。
seFoot <- getFootprints(ArchRProj = projHeme5, positions = motifPositions[markerMotifs], groupBy = "Clusters2"
)
当我们获取了这些足迹,我们可以使用plotFootprints()
函数进行展示。该函数能够同时以多种方式对足迹进行标准化。下一节,我们会讨论标准化和实际的足迹图。
14.2 Tn5偏好的足迹标准化
使用ATAC-seq数据分析TF足迹的一大挑战就是Tn5转座酶的插入序列偏好性,这会导致TF足迹的错误分类。为了降低Tn5插入偏好性的影响,ArchR识别每个Tn5插入位置附近的k-mer序列(k由用户提供,默认是6).
对于该项分析,ArchR为每个拟混池识别单碱基分辨率的Tn5插入位点,将这些1-bp位点调整为k-bp窗口(-k/2和+(k/2-1)bp),然后使用Biostrings
包中的oligonucleotidefrequency(w=k, simplify.as="collapse")
函数创建k-mer频率表。然后,ArchR使用与BSgenome
相关的基因组文件,以相同的函数计算出全基因组范围预期的k-mers。
为了计算拟混池足迹的插入偏差,ArchR创建了一个k-mer频率矩阵,该矩阵表示为从motif中心到窗口+/-N bp(用户定义,默认为250 bp)的所有可能k-mer。然后,遍历每个motif位点,ArchR将定位的k-mer填充到k-mer频率矩阵中。然后在全基因组范围内计算每个motif位置。利用样本的k-mer频率表,ArchR可以通过将k-mer位置频率表乘以观察/期望 Tn5 k-mer频率来计算预期的Tn5插入。
以上所有这些发生在plotFootprints()
函数中。
14.2.1 减去Tn5偏好
一个标准化方式就是从足迹信号中减去Tn5偏好。该标准化方法通过设置plotFootprints()
的normMethod = "Subtract"
实现
plotFootprints(seFoot = seFoot,ArchRProj = projHeme5, normMethod = "Subtract",plotName = "Footprints-Subtract-Bias",addDOC = FALSE,smoothWindow = 5
)
默认,这些图保存在ArchRProjec
t的outputDirectory
。如果你需要绘制所有motif, 可以将其返回为ggplot2
对象,需要注意这个ggplot
对象会非常大。下面是一个从motif足迹中减去Tn5偏好信号的结果
14.2.2 除以Tn5偏好
第二种标准化方法就是将足迹除以Tn5偏好信号。该标准化方法通过设置plotFootprints()
的normMethod = "Divide"
实现
plotFootprints(seFoot = seFoot,ArchRProj = projHeme5, normMethod = "Divide",plotName = "Footprints-Divide-Bias",addDOC = FALSE,smoothWindow = 5
)
下面是一个从motif足迹中除以Tn5偏好信号的结果
14.2.3 无Tn5偏好标准化的足迹
尽管我们高度推荐将足迹根据Tn5序列插入偏好性进行标准化,当然你可以通过设置plotFootprints()
的normMethod = "None"
来省去标准化。
plotFootprints(seFoot = seFoot,ArchRProj = projHeme5, normMethod = "None",plotName = "Footprints-No-Normalization",addDOC = FALSE,smoothWindow = 5
)
下面是一个未经标准化的motif足迹结果
14.3 特征足迹
除了motif足迹分析,ArchR还允许用户分析任意定义的特征数据集。为了对功能进行说明,我们将会使用plotFootprints()
函数创建TSS插入谱(在之前数据质量控制一节中引入)。一个TSS插入谱本质上就是特殊的足迹。
我们在之前小节讨论过,足迹会用到来源于拟混池重复的分组覆盖文件。我们在之前peak鉴定时创建过这些文件。如果你没有在ArchRProject
加入分组覆盖信息, 那么需要运行如下代码
projHeme5 <- addGroupCoverages(ArchRProj = projHeme5, groupBy = "Clusters2")
我们接着创建一个没有经过Tn5偏好性校正的TSS插入谱。和之前分析一个主要不同是,我们设置了flank=2000
, 将TSS向前向后分别延伸2000 bp.
seTSS <- getFootprints(ArchRProj = projHeme5, positions = GRangesList(TSS = getTSS(projHeme5)), groupBy = "Clusters2",flank = 2000
)
我们接着用plotFootprints()
对每个细胞分组绘制TSS插入谱。
plotFootprints(seFoot = seTSS,ArchRProj = projHeme5, normMethod = "None",plotName = "TSS-No-Normalization",addDOC = FALSE,flank = 2000,flankNorm = 100
)
http://www.taodudu.cc/news/show-4553817.html
相关文章:
- 机器学习-股票
- 场内场外交易成本_什么是场内交易与场外交易?有何区别?
- 股票知识:成本价的计算
- 场内场外交易成本_开放式基金的场内交易和场外交易有什么区别?
- 量化交易:如何让回测更贴近实盘结果
- java交易撮合怎么实现_撮合交易系统服务边界与设计
- 1171 股票交易
- 日内回转交易(股票)——Python量化
- 日内回转交易策略-股票
- 高手diy android控制的智能蓝牙led灯,高手DIY Android控制智能蓝牙LED灯
- LED灯泡数据传输速率最高1GB/秒!未来它可是要取代WIFI
- 赛门铁克:看***如何能够通过LED灯泡窃取你的隐私
- 智能灯
- 基于Contiki OS的智能led照明:LIFX
- 智能电灯代码_智能电灯开关与智能电灯泡:您应该购买哪个?
- Yeelight LED智能灯泡(彩光版)代码控制
- 智能语音电灯-----2---单片机 led灯模块 先用按钮 点亮一个 led灯泡
- 手把手教你做智能LED灯(一) 功能规划与设计方案
- 灯丝LED灯泡的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- vue 实现简单的车牌键盘 包括新能源 移动端 电脑端都可以用哦!(使用了elementui) 复制下来直接可以用v-model接收到输入的值
- 赵志博陕师大计算机科学学院,肖 冰
- 向世界问好,.NET 5 从 Fur 框架开始,v1.0.0.rc2 发布
- 陕西师范大学公费师范生计算机,陕西师范大学公费师范生2019年录取分数线-陕师大公费师范专业...
- java毕业设计陕菜食谱网站源码+lw文档+mybatis+系统+mysql数据库+调试
- [陕师大校赛] A 正正的毒奶粉
- 微信群里聊下陕历博
- 陕师大计算机期末考试题,陕师大物理化学(上)历年期末考试题
- 陕师大民教育计算机试题,陕师大计算机研究生考试真题2010年试题.doc
- 陕科大计算机专业好转吗,陕西人眼里的陕科大怎么样?211为什么没给陕科大?...
- 陕师大计算机好就业吗,陕师大是好学校吗?陕师大出来好不好就业?
使用ArchR分析单细胞ATAC-seq数据(第十四章)相关推荐
- 使用ArchR分析单细胞ATAC-seq数据(第十五章)
本文首发于我的个人博客, http://xuzhougeng.top/ 往期回顾: 使用ArchR分析单细胞ATAC-seq数据(第一章) 使用ArchR分析单细胞ATAC-seq数据(第二章) 使用 ...
- 使用ArchR分析单细胞ATAC-seq数据(第十二章)
本文首发于我的个人博客, http://xuzhougeng.top/ 往期回顾: 使用ArchR分析单细胞ATAC-seq数据(第一章) 使用ArchR分析单细胞ATAC-seq数据(第二章) 使用 ...
- 使用ArchR分析单细胞ATAC-seq数据(第四章)
本文首发于我的个人博客, http://xuzhougeng.top/ 往期回顾: 使用ArchR分析单细胞ATAC-seq数据(第一章) 使用ArchR分析单细胞ATAC-seq数据(第二章) 使用 ...
- 学习笔记-第十四章 恶意代码分析实战
第十四章 恶意代码的网络特征 1.网络应对措施. 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全 设备可以利用它们,来提供网络应对措施.根据IP地址和端口,防火墙和路由器可以限 ...
- 微信小程序(第二十四章)- 数据交互前置
微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...
- 第十四章 结构和其他数据形式
GitHub地址,欢迎 star 文章目录 14.1 示例问题:创建图书目录 14.2 建立结构声明 14.3 定义结构变量 14.3.1 初始化结构 注意 初始化结构和类别储存期 14.3.2 结构 ...
- 《C Primer Plus》第十四章——结构和其他数据形式
文章目录 结构和其他数据形式 本章内容 示例问题:创建图书目录 建立结构声明 定义结构变量 初始化结构 访问结构成员 结构的初始化器 结构数组 声明结构数组 标识结构数组的成员 程序讨论 嵌套结构 指 ...
- R数据科学-第十四章使用ggplot2进行图形化沟通
准备工作: library(tidyverse) 一.标签 利用labs函数添加标签 1.添加标题 添加图形标题的目的是概括主要成果,尽量不要添加那些只对图形进行描述的标题. ggplot(mpg,a ...
- Android 第十五课 如何使用LitePal从SQLite数据库中删除数据(十四课用来保留讲解如何向SQLite数据库中存入数据)
使用LitePal删除数据的方式主要有两种,第一种就是直接调用已存对象的delete()方法,所谓已存储对象就是调用过save()方法的对象,或者说是通过LitePal提供的查询API查出来的对象,都 ...
最新文章
- PL/SQL语言基础
- Fort.js – 时尚、现代的表单填写进度提示效果
- WebService教程和分析
- 前端综合能力系列之git与gitflow
- 进程资源限制(rlimit)
- 社区 正式发布了跨平台的 CoreWCF 0.2.0
- 隐藏键盘_三星新专利:带有隐藏键盘的三折叠屏手机
- H.264视频编解码的代码移植和优化
- HetSANN:基于注意力模型,自动挖掘异质网络语义信息 AAAI2020
- JS获取当前时间,例如2019-10-01格式
- 洛谷 P4017 最大食物链计数
- PLC控制系统设计的一般步骤是什么?
- UEditor的使用
- emoji字符串 php,使用emoji字符组成任意汉字
- Java Instrument 功能使用及原理
- 计数器函数 php,PHP用函数嵌入网站访问量计数器
- 键盘输入盲打训练, 打字练习,打字游戏 打字教程推荐
- Core dump去哪里了?
- ARM之S5pv210的USB刷机
- parity使用教程