专栏首页生信修炼手册划重点|ATAC的peak shift需要这样做

划重点|ATAC的peak shift需要这样做

ATAC使用Tn5转座酶来完成文库的构建工作,Tn5转座酶在连接adapter序列时,会存在9bp的gap,如下图所示

上图来自来文献ATAC-seq: A Method for Assaying Chromatin Accessibility Genome-Wide

从图上可以看出,为了填补gap区域,有一个5分钟的延伸过程,gap补齐之后在进行PCR扩增。

Tn5转座酶的这一特性对于ATAC的分析产生了重大影响,在ATAC中我们通过peak区域在染色体上的位置来判断蛋白结合区域,而peak区域的识别是根据序列在基因组上的比对位置得到的。

在下机数据中,序列是经过了gap补齐的,不是最初始的断裂点了。利用补齐之后的下机序列,我们得到的peak位置和真实的切割位置之间存在了偏倚,为了还原真实的染色质开放区域,在进行peak calling之前,我们需要对reads比对的参考基因组位置进行偏移。

在以下链接中,指出了偏移的具体操作

https://galaxyproject.github.io/training-material/topics/epigenetics/tutorials/atac-seq/tutorial.html

具体的,对于正链上的reads需要向右偏移4bp, 比对的起始位置加4,对于负链上的reads, 则向左偏移5bp, 比对的起始位置减5bp。在Encode给出的ATAC pipeline中,对于原始的bam文件,首先利用bedtools转换成bed文件,只保留reads比对上参考基因组的位置,然后再进行比对位置的偏移,具体的代码如下

def tn5_shift_ta(ta, out_dir):
    prefix = os.path.join(out_dir,
                          os.path.basename(strip_ext_ta(ta)))
    shifted_ta = '{}.tn5.tagAlign.gz'.format(prefix)
    cmd = 'zcat -f {} | '
    cmd += 'awk \'BEGIN {{OFS = "\\t"}}'
    cmd += '{{ if ($6 == "+") {{$2 = $2 + 4}} '
    cmd += 'else if ($6 == "-") {{$3 = $3 - 5}} print $0}}\' | '
    cmd += 'gzip -nc > {}'
    cmd = cmd.format(
        ta,
        shifted_ta)
    run_shell_cmd(cmd)    return shifted_ta

对于chip_seq的数据分析,拿到bam文件之后直接peak calling就可以了,对于ATAC_seq而言,一定要偏移之后再进行peak calling。

本文分享自微信公众号 - 生信修炼手册(shengxinxiulian),作者:lzyg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 个性化调整坐标轴的颜色和位置

    之前的文章中介绍了修改默认情况下,matplotlib绘制的图片都是有一个正方形的方框,示意如下

    生信修炼手册
  • 使用ChIPseeker进行peak注释

    首先我们需要输入peak文件,支持两种格式,第一种是BED格式,最少只需要3列内容记录peak的染色体位置就可以了,示意如下

    生信修炼手册
  • 跟着ENCODE学习ATAC文库的质控标准

    ENCODE称之为基因组百科全书,该数据库包含了基因组学,转录组学,表观遗传学等许多组学的数据。在提供公共数据的同时,还开源了许多组学数据分析的pipeline...

    生信修炼手册
  • Eclipse中Project的Deployment Assembly(部署程序集)消失了

    可能的原因主要有2个: 1. 该项目不是web项目,所以不存在Deployment Assembly 属性。在Eclipse中,怎样将一个非web projec...

    似水的流年
  • Eclipse中Project的Deployment Assembly(部署程序集)消失了

    1. 该项目不是web项目,所以不存在Deployment Assembly 属性。在Eclipse中,怎样将一个非web project变成一个web pro...

    似水的流年
  • Eclipse中Project的Deployment Assembly(部署程序集)消失了

    1. 该项目不是web项目,所以不存在Deployment Assembly 属性。在Eclipse中,怎样将一个非web project变成一个web pro...

    似水的流年
  • 推进粤港澳产学深度合作,腾讯与深圳大学等共建国家级大数据科技创新平台

    日前,大数据系统计算技术国家工程实验室在深圳大学正式揭牌成立,近100名专家、学者共同见证了揭牌仪式。大数据系统计算技术国家工程实验室是经国家改委批准,由深圳大...

    腾讯高校合作
  • 分布式进阶__动物园园长 zookeeper

    数据的发布/订阅(配置中心:disconf) 、 负载均衡(dubbo利用了zookeeper机制实现负载均衡) 、

    矿泉水
  • 动物园园长 zookeeper

    用户2141593
  • struts2中action的class属性值意义

    struts2单独使用时action由struts2自己负责创建;与spring集成时,action实例由spring负责创建(依赖注入)。这导致在两种情况下s...

    ydymz

扫码关注云+社区

领取腾讯云代金券