1. 切割位点

ATACseq 应该在较小的保护区(如转录因子结合位点)周围生成较短的片段(我们的无核小体区域)。

因此,我们可以在不同组织/细胞类型/样本中寻找围绕感兴趣基序的切割位点堆积。

为了从我们的 BAM 文件中生成切割位点,我们首先将读取大小调整为 1bp,并根据链进行 4/-5 bp 的偏移,以调整插入 Tn5 转座酶的预期偏移。

在这里,我们将识别通过任意截止的 CTCF 基序,然后使用 soGGi 在它们周围绘制切割位点。我们将跳回我们的 Greenleaf 数据集来执行此操作。

2. 查找 motifs

我们需要确定 CTCF 基序在基因组中的位置,因此首先我们需要知道 CTCF 基序是什么样的。

motifDB 包包含来自公共数据库(例如 JASPAR)的有关 Motif 的信息。在这里,我们使用带有我们感兴趣的主题 (CTCF) 的 query() 函数来提取 CTCF 主题。

library(MotifDb)library(Biostrings)library(BSgenome.Hsapiens.UCSC.hg19)CTCF <- query(MotifDb, c("CTCF"))CTCF

CTCF

我们可以为 CTCF 提取一个点权重矩阵,它指定了 DNA 碱基出现在 CTCF 基序中的可能性。在这里,我们从 Human JASPAR Core 数据库中提取 CTCF 的主题。

names(CTCF)

CTCF
ctcfMotif <- CTCF[[1]]ctcfMotif[, 1:4]

ctcfMotif

3. PWMs 可视化

我们可以使用 seqLogo 包和 seqLogo 函数可视化主题中 DNA 碱基的频率。

library(seqLogo)seqLogo(ctcfMotif)

ctcfMotif

4. PWMs 搜索

我们现在可以将 matchPWM() 函数与我们新获得的 CTCF PWM 一起使用。在这里,我们将使用 BSgenome 库中为人类 BSgenome.Hsapiens.UCSC.hg19 提供的序列搜索 Chr20 上的序列。结果是一个 Views 对象,类似于 IRanges 对象。

myRes <- matchPWM(ctcfMotif, BSgenome.Hsapiens.UCSC.hg19[["chr20"]])myRes

myRes

我们需要将 Views 对象转换为 GRanges,以便我们可以在 soGGi 中使用它们来绘制切割站点。

toCompare <- GRanges("chr20", ranges(myRes))toCompare

toCompare

5. 切割位点分析

要绘制切割位点,我们希望只考虑读取的 5' 端,并且需要调整已知的 5' 读取偏移量到实际 T5 切割位点。

这将涉及捕获读数的 5' 端并将正链和负链上的读数分别移动 4bp 或 -5bp。

首先,我们读入我们的无核小体区域 BAM 文件并提取读取对。

BAM <- "~/Downloads/ATAC_Workshop/ATAC_Data/ATAC_BAM/Sorted_ATAC_50K_2_openRegions.bam"atacReads_Open <- readGAlignmentPairs(BAM)read1 <- first(atacReads_Open)read2 <- second(atacReads_Open)read2[1, ]

read2

现在我们可以根据链将两个读取对的 5' 端移动 4bp 或 -5bp。这从两个读数中产生了我们所有切割位点的 GRanges。

Firsts <- resize(granges(read1), fix = "start", 1)First_Pos_toCut <- shift(granges(Firsts[strand(read1) == "+"]), 4)First_Neg_toCut <- shift(granges(Firsts[strand(read1) == "-"]), -5)

Seconds <- resize(granges(read2), fix = "start", 1)Second_Pos_toCut <- shift(granges(Seconds[strand(read2) == "+"]), 4)Second_Neg_toCut <- shift(granges(Seconds[strand(read2) == "-"]), -5)

test_toCut <- c(First_Pos_toCut, First_Neg_toCut, Second_Pos_toCut, Second_Neg_toCut)test_toCut[1:2, ]

test_toCut

现在我们可以使用 coverage() 函数使用切割位点位置的 GRanges 生成整个基因组切割位点的 RLElist。

cutsCoverage <- coverage(test_toCut)cutsCoverage20 <- cutsCoverage["chr20"]cutsCoverage20[[1]]

cutsCoverage20

我们可以使用带有 soGGi 的 RLElist 围绕我们发现的 CTCF 图案生成切割位点图。

我们将格式更改为 rlelist,并将 distanceAround 参数更改为 500bp。

CTCF_Cuts_open <- regionPlot(cutsCoverage20, testRanges = toCompare, style = "point",    format = "rlelist", distanceAround = 500)

现在我们可以使用 plotRegion() 函数绘制切割点。

plotRegion(CTCF_Cuts_open, outliers = 0.001) + ggtitle("NucFree Cuts Centred on CTCF") +    theme_bw()

CTCF_Cuts_open

本文由 mdnice 多平台发布

ATAC-seq分析:Motifs分析(11)相关推荐

  1. ChIP-seq 分析:GO 功能测试与 Motifs 分析(12)

    动动发财的小手,点个赞吧! 1. 包加载 我们可以使用 rGREAT 包中提供的 GREAT Bioconductor 接口. library(rGREAT) 2. GO和功能测试 要提交作业,我们可 ...

  2. [译] APT分析报告:11.深入了解Zebrocy的Dropper文档(APT28)

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵! ...

  3. R语言也可以进行ATAC数据的完整分析啦!

    欢迎关注"生信修炼手册"! 个人认为,R语言有两个强项,统计和绘图.在生物信息数据分析中,R语言更多时候是发挥一个科学计算和可视化的作用.当然,R语言的功能远不止于此,不仅可以作为 ...

  4. python可视化文本分析(1)—分析QQ班群聊天记录宏观

    公众号文章链接 前一段时间就想做简单的可视化文本分析玩,今天就花点时间先对整体班级的QQ群聊天信息做一个简单的分析. 打算分两步做,本文是最简单的第一步过程 1:分析整个聊天记录的时间分配.并且用ma ...

  5. linux服务器宕机分析/性能瓶颈分析

    linux服务器宕机分析/性能瓶颈分析 服务器宕机原因很多,资源不足.应用.硬件.系统内核bug等,以下一个小例子 服务器宕机了,首先得知道服务器宕机的时间点,然后分析日志查找原因 1.last re ...

  6. FFMpeg中apiexample.c例子分析——编码分析

    FFMpeg中apiexample.c例子分析--编码分析apiexample.c例子教我们如何去利用ffmpeg库中的api函数来自己编写编解码程序. (1)首先,main函数中一开始会去调用avc ...

  7. 软件方法(下)分析和设计第8章连载[20210816更新]分析 之 分析类图——知识篇

    墙上挂了根长藤,长藤上面挂铜铃 <长藤挂铜铃>:词:元庸,曲:梅翁(姚敏),唱:逸敏,1959 您在阅读<软件方法>时如果发现错误,欢迎通过微信umlchina2告知.如果作者 ...

  8. R语言生存分析可视化分析

    生存分析指的是一系列用来探究所感兴趣的事件的发生的时间的统计方法. 生存分析被用于各种领域,例如: 癌症研究为患者生存时间分析, "事件历史分析"的社会学 在工程的"故障 ...

  9. php 生存分析,生存分析与R--转载

    生存分析与R 生存分析是将事件的结果和出现这一结果所经历的时间结合起来分析的一类统计分析方法.不仅考虑事件是否出现,而且还考虑事件出现的时间长短,因此这类方法也被称为事件时间分析(time-to-ev ...

  10. 静态代码分析工具列表分析---代码分析工具列表(30款工具)

    本文是一个静态代码分析工具的清单,共有30个工具.包括4个.NET工具.2个Ada工具.7个C++工具.4个Java工具.2个JavaScript工具.1个Opa工具.2个Packaging工具.3个 ...

最新文章

  1. 剑指offer:表示数值的字符串
  2. 淮北师范大学计算机学院在哪个校区,2021年淮北师范大学信息学院有几个校区,大一新生在哪个校区...
  3. c语言logo,真好玩 C语言输出Yahoo动态logo
  4. Squid服务日志分析
  5. 个人作业(alpha)
  6. .so文件反编译_java加密防止反编译-VirboxProtector
  7. 删除logs mysql_关于删除MySQL Logs的一点记录
  8. 计算机的发展与组成ppt,第章计算机的发展与组成.ppt
  9. qtextedit 默认文案_Qt设置QTextEdit和QLabel的字体颜色 | 学步园
  10. 实时查看Linux IO复用情况
  11. win7 docker centos安装mysql_CentOS 7 使用docker安装mysql
  12. 积募解读 | 私募资产配置基金管理人来了,到底可以做什么?
  13. hihoCoder-1000-A+B
  14. 基于hadoop的商品推荐引擎
  15. LIN总线、CAN总线、FlexRay总线和MOST总线
  16. react 使用recoil 减少不必要的组件渲染
  17. 数据分析常用方法和工具
  18. 3. ESP8266开发板自动连接室内Wi-Fi
  19. Hapi.js 起步 - 写给前端开发的 Node Web 框架入门
  20. 传统分布式架构部署(apache+tomcat集群)

热门文章

  1. 小米4 第三方re奇兔_【搞事】小米上架39元充电器 20W可适配iPhone 12系列
  2. tomcat的原理及作用
  3. rchlinux安装过程指南
  4. 通达OA 工作流执行出现的异常现象处理(图文)
  5. Linux | Linux系统目录
  6. 为什么要做一款ERP软件——开源软件诞生7
  7. 【JavaWeb】小白也能看懂的服务器推送技术(WebSocket和SSE)
  8. 参考国标2015电动汽车与BMS的协议实现双机CAN通讯
  9. 联系Z485无线网络有个红叉
  10. Python调用API进行地理编码