ATAC-seq分析:Peak Calling(8)

1. 寻找开发区域

ATACseq 的一个共同目标是识别转录因子结合和/或转录机制活跃的无核小体区域。该核小体游离信号对应于小于一个核小体的片段(如 Greenleaf 论文中定义 < 100bp)。

然而,为了识别开放的染色质,我们可以简单地使用在测序中正确配对的所有读数(< 2000bp)。

2. 无核小体区域

有许多方法可用于从 ATACseq 数据中调用无核小体区域,其中许多方法借鉴自 ChIPseq 分析。一种非常流行且标准的 ATACseq 峰值调用程序是 MAC2。

2.1. 单端数据

使用 ATACseq 的单端测序,我们不知道片段有多长。因此,与 ChIPseq 相比,要识别开放区域,MACS2 峰值调用需要一些不同的参数。采用的一种策略是将读取 5' 末端移动 -100,然后从该位置延伸 200bp。考虑到我们的无核小体片段的预期大小,这应该提供适合 MACS2 窗口大小的核小体区域的堆积。

这是我们用来执行此操作的 MACS 系统调用。

MACS2 callpeak -t singleEnd.bam --nomodel --shift -100
                --extsize 200 --format BAM -g MyGenome

在 R 中,我们可以使用 Herper 运行这个系统调用,这样我们就可以访问我们安装的 MACS2。 MACS2 已安装到 ATACseq_analysis 中。所以我们可以使用 with_CondaEnv() 从 R 中使用这个环境。

with_CondaEnv("ATACseq_analysis",
                      system2(command="macs2",args =c("callpeak", 
                      "-t", "singleEnd.bam",
                      "--nomodel",
                      "--shift","-100",
                      "--extsize", "200",
                      "--format", "BAM",
                      "-g", "hs")),
                        stdout = TRUE))

或者对于核小体占据的数据,我们可以调整移位和延伸以将信号集中在核小体中心(包裹在 147bp DNA 中的核小体)。

MACS2 callpeak -t singleEnd.bam --nomodel --shift 37
               --extsize 73 --format BAM -g MyGenome
  • R
with_CondaEnv("ATACseq_analysis", system2(command = "macs2", args = c("callpeak",
    "-t", "singleEnd.bam", "--nomodel", "--shift", "37", "--extsize", "73", "--format",
    "BAM", "-g", "hs")), stdout = TRUE)

2.2. 双端数据

如果我们对配对末端数据进行了测序,那么我们确实知道片段长度,并且可以向 MACS2 提供 BAM 文件,这些文件已经过预过滤以正确配对(如果您想区分核小体和无核小体区域,则提供片段大小)。

我们必须告诉 MACS2 数据是使用格式参数配对的。这很重要,因为默认情况下 MACS2 会猜测它是单端 BAM。

MACS2 callpeak -t pairedEnd.bam -f BAMPE 
               --outdir path/to/output/
               --name pairedEndPeakName -g MyGenome
  • R
with_CondaEnv("ATACseq_analysis", system2(command = "macs2", args = c("callpeak",
    "-t", "pairedEnd.bam", "--format", "BAMPE", "--outdir", "/Documents/ATAC_MACS2_calls/",
    "--name", "pairedEndPeakName", "-g", "hs")), stdout = TRUE)

对于此处的配对末端数据,我们从无核小体区域 BAM 文件中调用无核小体区域的峰。

MACS2 callpeak  -t ~/Downloads/Sorted_ATAC_50K_2_openRegions.bam
                --outdir ATAC_Data/ATAC_Peaks/ATAC_50K_2
                --name Sorted_ATAC_50K_2_Small_Paired_peaks.narrowPeak
                -f BAMPE -g hs
  • R
with_CondaEnv("ATACseq_analysis", system2(command = "macs2", args = c("callpeak",
    "-t", "~/Downloads/Sorted_ATAC_50K_2_openRegions.bam", "--outdir", "ATAC_Data/ATAC_Peaks/ATAC_50K_2",
    "--name", "Sorted_ATAC_50K_2_Small_Paired_peaks.narrowPeak", "-f", "BAMPE", "-g",
    "hs")), stdout = TRUE)

在之后,我们将获得 3 个文件。

  • Name.narrowPeak – 适用于 IGV 和进一步分析的格式
  • Name_peaks.xls – 适合在 excel 中查看的峰值表。(实际上不是 xls,而是 tsv)
  • summits.bed – 用于查找 motifs 和绘图的峰顶位置

3. QC

通常我们想做一些 QC 来检查低质量、重复和信号分布。在我们删除任何数据之前,我们可以快速评估我们的峰值读取、重复率、低质量读取和来自 ChIPQC 的伪像区域中的读取。

library(ChIPQC)
library(rtracklayer)
library(DT)
library(dplyr)
library(tidyr)

blkList <- import.bed("~/Downloads/ENCFF001TDO.bed.gz")
openRegionPeaks <- "~/Downloads/ATAC_Workshop/ATAC_Data/ATAC_Peaks/Sorted_ATAC_50K_2_Small_Paired_peaks.narrowPeak"

qcRes <- ChIPQCsample("~/Downloads/ATAC_Workshop/ATAC_Data/ATAC_BAM/Sorted_ATAC_50K_2_openRegions.bam",
    peaks = openRegionPeaks, annotation = "hg19", chromosomes = "chr20", blacklist = blkList,
    verboseT = FALSE)

我们可以使用 ChIPQC 包来捕获我们的 ATACseq 数据的一些重要指标,例如来自 QCmetrics() 函数的峰值读取和黑名单中的读取以及来自 flagtagcounts() 函数的重复读取数。

myMetrics <- QCmetrics(qcRes)
myMetrics[c("RiBL%", "RiP%")]
flgCounts <- flagtagcounts(qcRes)
DupRate <- flgCounts["DuplicateByChIPQC"]/flgCounts["Mapped"]
DupRate * 100

4. 黑名单删除

来自测序的人工制品和不完美的基因组构建可能会混淆我们的结果。这些工件已被整理到区域的“黑名单”中。

由于列入黑名单的区域可能会混淆我们的分析,因此我们删除了在那里被调用的所有峰值。

过早删除黑名单可能会隐藏数据中的一些 QC 问题。在您的分析中应始终考虑黑名单,并建议在考虑 QC 后从这些区域中删除数据。

MacsCalls <- granges(qcRes[seqnames(qcRes) %in% "chr20"])

data.frame(Blacklisted = sum(MacsCalls %over% blkList), Not_Blacklisted = sum(!MacsCalls %over%
    blkList))

MacsCalls <- MacsCalls[!MacsCalls %over% blkList]

本文由mdnice多平台发布

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

推荐阅读更多精彩内容