基因组Python可视化

一款纯Python编写的GTF处理脚本 - GTFtools

2022-09-07  本文已影响0人  微生信

日常数据分析中,我们遇见最多的可能就是序列,例如基因组序列,CDS序列等等,它们一般以fasta格式存储。由于序列一般按照从5’->3’存储,并且每个碱基都可以给一个数字编号,因此,理论上,我们仅需要两个文件,就能够从基因组中提取我们感兴趣的任意序列:一个基因组序列文件,一个带坐标的注释文件。


今天我们介绍一款发表在Bioinformatics上的GTF注释文件处理工具 – GTFtools

图1. GTFtools发表在Bioinformatic杂志上


一、什么是GTF格式?

Gene transfer format(GTF)格式用于存储基因和转录本的信息,以制表符(\t)分割,包括9列(以ensembl human gtf v107为例):

图1. Human GTF示例


1)染色体,存储基因/转录本所在的染色体,例如human的染色体是1-22,X,Y等

2) 来源,一般是数据库或者软件名字,例如用stringtie组装出来的GTF这一列就是stringtie。

3)基因组特征(feature),常见的包括:gene,transcript,exon,CDS,start_codon,stop_codon,five_prime_utr,three_prime_utr等

4)起始坐标,一般是1-based

5)终止坐标

6)score,统计值等,没有的话可以用·填充

7)正负链。+表示正链,-表示负链,?表示不清楚正负链信息,·表示正负链信息没意义

8)phase,当描述CDS时,需要指定翻译起始位置,例如0,1,2三种

9)属性列,由一一对应的键和值表示,并且必需有gene_id和transcript_id这两个属性,多个属性以分号分割,理论上可以添加任意属性,包括feature的描述,编码蛋白,功能,版本等等。


二、GTF解析工具GTFtools

虽然规定了GTF的格式,然而,实际使用中,由于不同软件,不同研究所产生的GTF格式略有差异,因此这给我们数据分析带来了极大的挑战,具不完全统计,GTF解析工具包括:GTFtools,GTFutil,gffread,TBtools,GFFtools-GX,gtfparse,pyGTF等等。

今天我们推荐的是中南大学老师开发的GTFtools工具,一款纯python写的GTF处理工具。它可以计算或者提取基因模型的各种特征。

官网:http://www.genemine.org/gtftools.php

就一个python脚本,直接下载使用。

图3. GTFtools常见功能示意图


主要功能及示例:

1)计算merged外显子

合并同一个基因的所有splice isoforms的外显子,并生成bed格式文件,可以用来计算具有多个isoforms的基因的非重叠外显子长度

python gtftools.py -m merged_exons.bed demo.gtf

2)计算independent introns

python gtftools.py -d independent_introns.bed demo.gtf

3)计算基因长度

由于一个基因可能有多个isoforms,因此作者提供了4种基因长度计算方法:mean,median,max及merged exons,其中merged exons就是TCGA count转tpm时所用的长度 。

python gtftools.py -l gene_length.txt demo.gtf

4)计算isoform长度

python gtftools.py -r isoform_length.txt demo.gtf

5)输出基因坐标和ID mappings

python gtftools.py -g genes.bed demo.gtf

6)提供SNP信息,输出cis-SNPs

python gtftools.py -p snp_list.txt demo.gtf > cisSNP.bed

7)提取基因上下游信息

例如提取基因上游2000,下游1000的信息

python gtftools.py -g gene.bed -f 2000-1000 demo.gtf

8)提取5’和3’splice site区域

python gtftools.py -q splice_regions.bed demo.gtf

9)提取外显子信息

python gtftools.py -e exons.bed demo.gtf

10)提取内含子信息

python gtftools.py -i introns.bed demo.gtf

11)提取基因间区信息

python gtftools.py -b intergenic_regions.bed demo.gtf

12)提取UTR信息

python gtftools.py -u utr.bed demo.gtf

更多功能,请下载使用


三、GTF小技巧

1)GTF注释是不断更新的,例如ensembl human的目前最新是v107,因此做分析时,一定要明确GTF版本号和基因组版本号,并且两者要匹配

2)GTF要与基因组对应。使用GTF前需要检查下是否与你所使用的基因组序列文件里边的染色体名字匹配,例如线粒体的要看清楚是chrMT还是chrM,有些加chr,有些不加chr

3)一般情况下我们关注的是chr1-22、X、Y、M这些染色体,random等不感兴趣的可以去掉

4)存在大量非标准的GTF,有些可以用程序直接转,有些可能需要人工调整,这需要经验和脚本编写能力

5)GTF文件一般很大,记得压缩和索引

微生信助力发文章,谷歌引用620+,知网引用450+

上一篇下一篇

猜你喜欢

热点阅读