前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从GTF文件中提取TSS上下游1kb的区间,要多少行代码?

从GTF文件中提取TSS上下游1kb的区间,要多少行代码?

作者头像
生信修炼手册
发布2020-05-07 16:12:01
3.4K1
发布2020-05-07 16:12:01
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在ATAC_seq数据分析中,需要绘制reads在TSS位点附近的分布图, 如下所示

左侧为NFR reads在TSS位点两侧的分布图,右侧为单个核小体边界reads在TSS位点两侧的分布图,可以看到,NFR reads在TSS位点两侧有明显的富集趋势。

在上述热图中,每一行代表一个转录本/基因,对于TSS附近区域,换个为等长的bin,比如上图中选取了TSS上下游1kb的区域,那么可以按照100bp划分为等长的窗口,统计每个窗口内的测序深度,然后进行可视化。

要绘制这样的热图,首选要根据基因结构注释文件(通常是GFF或者GTF格式)来获取TSS附近区域的染色体区间信息。TSS表示转录起始位点,本身这个概念是针对基因而言的,但是基因有多个转录本,对应的转录起始位点可能不同,所以在统计TSS时,以转录本为单位进行统计。

本文介绍一种方法python提取TSS区间信息的方法,通过以下两个模块来实现

  1. gffutils
  2. pybedtools

gffutils用于读取GFF/GTF文件,将所有的信息存在一个sqlite数据库中,方便检索和读取,官网文档链接如下

https://pythonhosted.org/gffutils/index.html

首先需要对gtf文件建立sqlite数据库,用法如下

第一个参数为gtf文件的名称,第二个参数为生成的sqlite db文件名称。创建数据库的过程是比较慢的,但是只需创建一次,以后直接读取这个db文件就可以了。

pybedtools用于区间操作,灵活简便, 官方文档链接如下

https://daler.github.io/pybedtools/

通过pybedtools可以轻松的从bed/gtf文件中提取感兴趣的染色体区间,对于TSS位点以及上下游1kb区间的提取方法如下

上述代码加起来不超过15行,python强大的生态使得我们可以只通过几行代码就实现一个TSS区间提取的功能。小到文件提取,格式转换,大到一个成熟的pipeline, python都可以完美驾驭,而且代码简洁高效,对于从事生信的人而言,python是技能列表中的必备项。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档