1. 从BAM文件到切割位点:理解ATAC-seq信号的核心
大家好,我是老张,在表观基因组学领域摸爬滚打了十来年,尤其是跟ATAC-seq数据打交道特别多。很多朋友做完ATAC-seq的基础分析,比如找到开放染色质区域(Peak Calling)之后,就觉得差不多了。但其实,真正的宝藏往往藏在更深的细节里——那就是切割位点的信号。今天,我就来跟大家聊聊,如何利用Motifs分析,从这些切割信号中挖出转录因子结合的“指纹”,这绝对是ATAC-seq数据分析的进阶玩法。
首先,咱们得搞清楚,ATAC-seq信号到底是怎么来的。它测的不是DNA本身,而是转座酶Tn5切割并插入测序接头的位点。你可以把Tn5想象成一个特别有“眼力见”的剪刀,它特别喜欢在染色质开放、没有核小体挡路的地方下剪子。所以,我们测序得到的片段,其两端的坐标就精确记录了Tn5的切割位置。当我们把成千上万个这样的切割事件在基因组上堆叠起来,就形成了切割位点图谱。关键来了:在转录因子结合位点这种小范围的保护区周围,由于空间狭窄,Tn5能插入的片段长度会受到物理限制,因此会产生大量非常短的片段(也就是我们常说的“无核小体区域”片段)。这些密集的短片段切割信号,就像黑夜中的灯塔,标记着潜在的调控元件。
所以,切割位点分析的核心思想,就是不去看整个测序片段,而是聚焦于每一个切割事件(即片段的5‘端),看看它们在特定基因组位点(比如某个转录因子Motif附近)是如何分布的。通过比较不同样本间切割模式的差异,我们甚至能推断转录因子的结合状态和动态变化。这比单纯看Peak的有无要精细得多。为了进行这个分析,第一步就是从BAM文件里准确地提取出切割位点。这可不是简单地取读段的起点,因为Tn5酶在切割DNA并连接接头时,会产生一个固定的偏移。实测下来,这个偏移是:对于正链上的读段,实际切割位点在测序读段5‘端起点的下游4bp处;对于负链上的读段,则在起点的上游5bp处。如果你不进行这个校正,你的信号就会“歪”那么几个碱基,后续分析可就失之毫厘,谬以千里了。
2. 实战第一步:从BAM文件中精准提取切割位点
理论说完了,咱们上手操作。假设你已经有了一个比对好的BAM文件,比如我们处理好的Sorted_ATAC_50K_2_openRegions.bam。我个人的习惯是,先用Rsamtools或者GenomicAlignments包把数据读进R环境里。这里我用readGAlignmentPairs函数,因为它能很好地处理双端测序数据,保持读对的配对信息。
library(GenomicAlignments)
# 替换为你的BAM文件路径
BAM <- "~/your_project/Sorted_ATAC_50K_2_openRegions.bam"
atacReads_Open <- readGAlignmentPairs(BAM)
读进来之后,我们分别提取第一端(read1)和第二端(read2)的读段。ATAC-seq的双端读段,每一端都代表了一个Tn5的切割事件,所以两端我们都要处理。
read1 <- first(atacReads_Open)
read2 <- second(atacReads_Open)
接下来就是关键的偏移校正步骤。我们先把每个读段的范围“压缩”到只剩其5‘端的一个单碱基位置,这可以用resize(granges(read), fix=“start”, width=1)来实现。然后,根据这个单碱基点所在的链,进行偏移校正。我写个函数可能更直观:
# 定义一个函数来处理单个读段
adjust_cut_sites <- function(gr) {
# 压缩到5‘端
gr_5prime <- resize(granges(gr), fix="start", width=1)
# 初始化一个结果对象
result <- granges(gr_5prime)
# 对正链读段,起点向右移动4bp
pos_strand <- strand(gr) == "+"
if


373

被折叠的 条评论
为什么被折叠?



