ATAC-seq分析:比对(3)

news2024/10/4 1:24:43

1. 质控

在比对之前,我们建议花一些时间查看 FASTQ 文件。一些基本的 QC 检查可以帮助我们了解您的测序是否存在任何偏差,例如读取质量的意外下降或非随机 GC 内容。

2. Greenleaf

在本节中,我们将稍微处理一下 Greenleaf 数据集。

我们将处理从 FASTQ 到 BAM 的 Greenleaf 数据的一个样本,以允许我们审查 ATACseq 数据的一些特征,并创建一些处理过的文件以供审查和进一步分析。

3.参考基因组

首先,我们需要创建一个参考基因组来比对我们的 ATACseq 数据。我们可以创建一个 FASTA 文件用于从 Bioconductor BSGenome 对象进行比对。

这次我们正在处理人类数据,因此我们将使用 BSgenome.Hsapiens.UCSC.hg19 库构建 hg19 基因组。

library(BSgenome.Hsapiens.UCSC.hg19)
mainChromosomes <- paste0("chr",c(1:21,"X","Y","M"))
mainChrSeq <- lapply(mainChromosomes,
                     function(x)BSgenome.Hsapiens.UCSC.hg19[[x]])
names(mainChrSeq) <- mainChromosomes
mainChrSeqSet <- DNAStringSet(mainChrSeq)
writeXStringSet(mainChrSeqSet,
                "BSgenome.Hsapiens.UCSC.hg19.mainChrs.fa")

4. Rsubread

对于 Rsubread,我们必须在 Rsubread 的对齐步骤之前建立我们的索引。

这里我额外指定参数 indexSplit 为 TRUE 并结合 memory 参数设置为 1000 (1000MB) 以控制 Rsubread 对齐步骤中的内存使用。

library(Rsubread)
buildindex("BSgenome.Hsapiens.UCSC.hg19.mainChrs",
           "BSgenome.Hsapiens.UCSC.hg19.mainChrs.fa",
           indexSplit = TRUE,
           memory = 1000)

5. 比对准备

现在我们有了索引,我们可以比对我们的 ATACseq 读数。由于 ATACseq 数据通常是双端测序,我们需要对比对步骤进行一些小的调整。

双端测序数据通常以两个文件的形式出现,通常在文件名中带有 _1_2_R1_R2 来表示一个文件是成对的数字。

read1 <- "ATAC_Data/ATAC_FQs/SRR891269_1.fastq.gz"
read2 <- "ATAC_Data/ATAC_FQs/SRR891269_2.fastq.gz"

我们的两个匹配的双端读取文件将(通常)包含相同数量的读取,并且两个文件中的读取顺序相同。读取名称将跨文件匹配以进行配对读取,但名称中的 1 或 2 除外,以表示读取是一对中的第一个还是第二个。

require(ShortRead)
read1 <- readFastq("data/ATACSample_r1.fastq.gz")
read2 <- readFastq("data/ATACSample_r2.fastq.gz")
id(read1)[1:2]
alt
id(read2)[1:2]
alt

成对读数之间的距离在 ATACseq 中很重要,它使我们能够区分读数映射与分别指示信号的无核小体和核小体部分的短或长片段。在比对步骤之后,插入大小为我们提供了 read1 和 read2 起点之间的总距离。

alt

我们可以对 DNA 使用标准比对(对于 ChIPseq),但我们增加了最大允许片段长度以捕获代表多核小体信号的长片段。

此处设置的最大允许片段长度基于 Greenleaf 研究中使用的参数。为了控制允许的最大片段长度,我将 maxFragLength 参数设置为 2000。我还将 unique 参数设置为 TRUE 以仅包括唯一映射读取。

align("BSgenome.Hsapiens.UCSC.hg19.mainChrs",
      readfile1=read1,readfile2=read2,
      output_file = "ATAC_50K_2.bam",
      nthreads=2,type=1,
      unique=TRUE,maxFragLength = 2000)

要使用 Rbowtie2,我们还必须在比对之前构建我们的索引。在这里,我们使用 bowtie2_build() 函数指定我们的 FASTA 文件的参数来构建索引和所需的索引名称。

library(Rbowtie2)
bowtie2_build(references="BSgenome.Hsapiens.UCSC.hg19.mainChrs.fa"
              bt2Index="BSgenome.Hsapiens.UCSC.hg19.mainChrs_bowtie2")

6. 解压

一旦我们有了索引,我们必须使用 gunzip() 函数解压缩我们的 FASTQ 文件。

gunzip("ATAC_Data/ATAC_FQs/SRR891269_1.fastq.gz")
gunzip("ATAC_Data/ATAC_FQs/SRR891269_2.fastq.gz")

7. 比对

现在我们可以使用 bowtie2() 函数将我们的 FASTQ 与基因组对齐,指定我们的 read1 和 read2 到 seq1 和 seq2 参数。最后,我们可以使用 asBam() 函数将输出的 SAM 文件转换为 BAM 文件。

注意NOTE: SAM 和未压缩的FASTQ 文件会占用大量磁盘空间。完成后,最好重新压缩 FASTQ 并使用 unlink() 函数删除 SAM 文件。

library(Rsamtools)
bowtie2(bt2Index = "BSgenome.Hsapiens.UCSC.hg19.mainChrs_bowtie2",
          samOutput = "ATAC_50K_2_bowtie2.sam",
          seq1 = "ATAC_Data/ATAC_FQs/SRR891269_1.fastq",
          seq1 = "ATAC_Data/ATAC_FQs/SRR891269_2.fastq"
        )
asBam("ATAC_50K_2_bowtie2.sam")

8. 排序

比对后,我们希望对 BAM 文件进行排序和索引,以便与外部工具一起使用。首先,我们按序列顺序对比对数据进行排序(此处不是 Read Name)。然后我们索引我们的文件,允许其他程序(例如 IGV、Samtools)和我们将使用的 R/Bioconductor 包快速访问特定的基因组位置。

library(Rsamtools)
sortedBAM <- file.path(dirname(outBAM),
                       paste0("Sorted_",basename(outBAM))
                       )

sortBam(outBAM,gsub("\\.bam","",basename(sortedBAM)))
indexBam(sortedBAM)

9. 结果探索

在 ATACseq 中,我们将要检查映射读取跨染色体的分布。我们可以使用 idxstatsBam() 函数检查每条染色体上映射读取的数量。已知 ATACseq 在线粒体染色体上具有高信号,因此我们可以在此处进行检查。

library(Rsamtools)
mappedReads <- idxstatsBam(sortedBAM)

我们现在可以使用映射的读取数据框来制作跨染色体读取的条形图。在这个例子中,我们看到了线粒体基因组映射率很高的情况。

library(ggplot2)

ggplot(mappedReads, aes(seqnames, mapped, fill = seqnames)) + geom_bar(stat = "identity") +
    coord_flip()
alt

欢迎Star -> 学习目录

更多教程 -> 转录组测序分析教程合集

更多教程 -> 单细胞系列教程:合集


本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新一代OPC UA解决方案,快速实现IT与OT融合

一、OPC数据采集难题 OPC技术在现今的工业自动化中应用越来越广泛&#xff0c;为现场工业控制设备与控制软件之间的数据交换提供了统一的数据存储规范。但随着工业的不断发展&#xff0c;OPC数据采集出现了一些难题。例如&#xff0c;在传统OPC在远程连接时候一定会面临的DCOM…

Qt扫盲-Qt Designer配置QSS交互使用

Qt Designer配置QSS交互记录一、概述二、用法1. 选择2. 修改1. 菜单区2. 编辑区3. 在底部功能区4. 查询一、概述 Qt Designer {Qt Designer }是一个很好的工具来预览样式表、设置样式的效果&#xff0c;而且是所见即所得&#xff0c;用界面这种开发更快些。 我一般是在Qt Des…

【编译基础】new delete详解及内存泄漏

内存的使用&#xff0c;一文不太够 文章目录C语言1.new关键字2.delete关键字C语言1.malloc关键字2.free关键字区别内存泄漏参考博客&#x1f60a;点此到文末惊喜↩︎ C语言 1.new关键字 作用&#xff1a;C通过new关键字动态分配内存三种用法 plain new&#xff1a;最朴素的n…

JdbcUtils工具类的优化升级——通过配置文件连接mysql8.0

我之前的博文JDBC重构——JdbcUtils工具类的封装写了一个JdbcUtils的工具类&#xff0c;但是这个类也会有一个问题&#xff1a;如下图所示&#xff1a;连接数据库的代码在java中是写死的&#xff0c;如果我们想要换一个数据库进行连接&#xff0c;就会很麻烦&#xff0c;这时我…

嵌入式HLS 案例开发手册——基于Zynq-7010/20工业开发板(2)

目 录 2 led_flash 案例 19 2.1 HLS 工程说明 19 2.2 编译与仿真 20 2.3 IP 核测试 23 3 key_led_demo 案例 23 3.1 HLS 工程说明 23 3.2 编译与仿真 25 3.3 IP 核测试 27 前 言 本文主要介绍 HLS 案例的使用说明,适用开发环境: Windows 7/10 64bit、Xilinx Vivado…

从零搭建的前后端完整的直播网页方案

前言&#xff1a;由于前段时间刚租了台服务器打算自己玩玩&#xff0c;随想首页或者哪哪个页面挂个我个人的直播间应该还挺有趣的。遂探索如何在我的网站上弄一个直播。三下五除二&#xff0c;清清爽爽&#xff0c;看完此文5分钟即可直播。 整体思路 最简单直观的图解。 由上图…

VB2019创建、使用静态库(同样的使用动态库dll)

库&#xff1a; 二进制可执行文件&#xff0c;操作系统载入内存执行&#xff0c;将不怎么更改的底层打包成库后可以使整体编译更改&#xff0c;并且实现对底层的保密&#xff08;不对外或员工开放&#xff09;。库有两种&#xff1a;静态库&#xff08;.a、.lib&#xff09;和动…

【国科大模式识别】第二次作业(阉割版)

【题目一】最大似然估计也可以用来估计先验概率。假设样本是连续独立地从自然状态 ωi\omega_iωi​ 中抽取的, 每一个自然状态的概率为 P(ωi)P\left(\omega_i\right)P(ωi​) 。如果第 kkk 个样本的自然状态为 ωi\omega_iωi​, 那么就记 zik1z_{i k}1zik​1, 否则 zik0z_{i…

【无标题】测试新发文章

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Spring之后处理器

目录 一&#xff1a;概述 二&#xff1a;案例演示 三&#xff1a;Bean的后处理器----BeanPostProcessor 案例&#xff1a;对Bean方法进行执行时间日志增强 四&#xff1a;Spring ioc整体流程总结 一&#xff1a;概述 Spring的后处理器是Spring对外开发的重要扩展点、允许我…

量子计算机是什么?量子计算机和传统计算机之间有什么区别?

1.突破1000量子比特大关&#xff01; 2022年11月9日的IBM年度量子峰会上&#xff0c;IBM宣布了Osprey在量子硬件和软件方面取得的突破性进展&#xff0c;同时推出了“鱼鹰”&#xff08;Osprey&#xff09;芯片。“鱼鹰”是全球迄今为止量子比特最多的量子计算机&#xff0c;而…

软考初级信息处理

软考初级信息处理技术员还是比较简单的&#xff0c;只要多刷题&#xff0c;实操也很重要的&#xff01;备考时间讲究高效哦&#xff01; 1、考试安排&#xff1a; 2、关于信处的考点分析&#xff1a; 上午考试&#xff1a; 下午考试&#xff1a; 3、信处如何备考&#xff1a;…

从spark WordCount demo中学习算子:map、flatMap、reduceByKey

文章目录spark map和flatMap应用&#xff1a;Word CountreduceByKey的用法spark map和flatMap val rdd sc.parallelize(List("coffee panda","happy panda","happiest panda party"))&#xff08;1&#xff09;map rdd.map(_.split(" &q…

windows terminal 还是 cmder ?

前景提要 windows terminal自带的没有tab命令自动补全, cmd的自动补全垃圾; cmder虽然有自动补全, 但是界面管理不太行; 而且比较复杂&#xff1b;只想要其UI和路径换行显示; windows terminal 应用商城或https://github.com/microsoft/terminal 下载页 https://github.com/mic…

【算法刷题】哈希表题型及方法归纳

哈希表特点 常见的三种哈希结构&#xff1a; 1、数组&#xff1a;操作简单&#xff0c;方便快捷&#xff0c;但不适于进行一些更复杂的操作。 注&#xff1a;适用于用set或map的情景&#xff1a;&#xff08;1&#xff09;当数组大小受限&#xff1b;&#xff08;2&#xff0…

powerquery 连接 postgresql

1下载安装postgresql的驱动器 https://pan.baidu.com/s/1ii9PudUs9WL_clP7Ub647Q 提取码&#xff1a;hm6g 2 安装配置odbc 2.1打开控制面板 – 选择管理工具 2.2选择ODBC数据源(64位) 2.3控制面板搜索数据源-单击添加 选择postgresql unicode 2.4配置数据源信息 3.通过e…

einsum 理解

本文是参考以下两篇文章&#xff0c;再结合我自己的经验完成的&#xff1a; 文章一&#xff1a;https://zhuanlan.zhihu.com/p/358417772 文章二&#xff1a;https://zhuanlan.zhihu.com/p/27739282 Einsum介绍&#xff1a; 给定矩阵A 和矩阵B &#xff08;在Python中也可以说是…

【PCB专题】PCB板卡上的UL标识是什么?

PCB行业中重要的认证之一是UL认证。在网上直接搜索UL会出现很多与防火、安全、保险相关的词汇出现。

开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)

目录 4 USB 4G 模块测试 41 4.1 网络功能测试 42 4.2 短信功能测试 43 4.3 GPS 定位功能测试 44 4.4 通话功能测试 45 4.5 测试程序编译 46 5 USB 网口模块测试 47 前 言 本指导文档适用开发环境: Windows 开发环境: Windows 7 64bit 、Windows 10 64bit Linux 开…

C语言进阶内功修炼——深度剖析数据在内存中的存储

&#x1f412;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;别人可以拷贝我的模式&#xff0c;但不能拷贝我不断往前的激情 目录 &#x1f680;1. 数据类型介绍 &#x1f307;1.1 类型的基本归类&#xff1a; &#x1f680;2. 整形在内存中的存储 &am…