日常數(shù)據(jù)分析中韧献,我們遇見最多的可能就是序列末患,例如基因組序列,CDS序列等等锤窑,它們一般以fasta格式存儲(chǔ)璧针。由于序列一般按照從5’->3’存儲(chǔ),并且每個(gè)堿基都可以給一個(gè)數(shù)字編號(hào)渊啰,因此探橱,理論上,我們僅需要兩個(gè)文件绘证,就能夠從基因組中提取我們感興趣的任意序列:一個(gè)基因組序列文件隧膏,一個(gè)帶坐標(biāo)的注釋文件。
今天我們介紹一款發(fā)表在Bioinformatics上的GTF注釋文件處理工具 – GTFtools
圖1. GTFtools發(fā)表在Bioinformatic雜志上
一嚷那、什么是GTF格式胞枕?
Gene transfer format(GTF)格式用于存儲(chǔ)基因和轉(zhuǎn)錄本的信息,以制表符(\t)分割魏宽,包括9列(以ensembl human gtf v107為例):
圖1. Human GTF示例
1)染色體腐泻,存儲(chǔ)基因/轉(zhuǎn)錄本所在的染色體,例如human的染色體是1-22队询,X派桩,Y等
2) 來(lái)源,一般是數(shù)據(jù)庫(kù)或者軟件名字蚌斩,例如用stringtie組裝出來(lái)的GTF這一列就是stringtie铆惑。
3)基因組特征(feature),常見的包括:gene,transcript鸭津,exon,CDS肠缨,start_codon逆趋,stop_codon,five_prime_utr晒奕,three_prime_utr等
4)起始坐標(biāo)闻书,一般是1-based
5)終止坐標(biāo)
6)score,統(tǒng)計(jì)值等脑慧,沒有的話可以用·填充
7)正負(fù)鏈魄眉。+表示正鏈,-表示負(fù)鏈闷袒,坑律?表示不清楚正負(fù)鏈信息,·表示正負(fù)鏈信息沒意義
8)phase囊骤,當(dāng)描述CDS時(shí)晃择,需要指定翻譯起始位置,例如0也物,1宫屠,2三種
9)屬性列,由一一對(duì)應(yīng)的鍵和值表示滑蚯,并且必需有g(shù)ene_id和transcript_id這兩個(gè)屬性浪蹂,多個(gè)屬性以分號(hào)分割,理論上可以添加任意屬性告材,包括feature的描述坤次,編碼蛋白,功能创葡,版本等等浙踢。
二、GTF解析工具GTFtools
雖然規(guī)定了GTF的格式灿渴,然而洛波,實(shí)際使用中,由于不同軟件骚露,不同研究所產(chǎn)生的GTF格式略有差異蹬挤,因此這給我們數(shù)據(jù)分析帶來(lái)了極大的挑戰(zhàn),具不完全統(tǒng)計(jì)棘幸,GTF解析工具包括:GTFtools焰扳,GTFutil,gffread,TBtools,GFFtools-GX吨悍,gtfparse扫茅,pyGTF等等。
今天我們推薦的是中南大學(xué)老師開發(fā)的GTFtools工具育瓜,一款純python寫的GTF處理工具葫隙。它可以計(jì)算或者提取基因模型的各種特征。
官網(wǎng):http://www.genemine.org/gtftools.php
就一個(gè)python腳本躏仇,直接下載使用恋脚。
圖3. GTFtools常見功能示意圖
主要功能及示例:
1)計(jì)算merged外顯子
合并同一個(gè)基因的所有splice isoforms的外顯子,并生成bed格式文件焰手,可以用來(lái)計(jì)算具有多個(gè)isoforms的基因的非重疊外顯子長(zhǎng)度
python gtftools.py -m merged_exons.bed demo.gtf
2)計(jì)算independent introns
python gtftools.py -d independent_introns.bed demo.gtf
3)計(jì)算基因長(zhǎng)度
由于一個(gè)基因可能有多個(gè)isoforms糟描,因此作者提供了4種基因長(zhǎng)度計(jì)算方法:mean,median书妻,max及merged exons船响,其中merged exons就是TCGA count轉(zhuǎn)tpm時(shí)所用的長(zhǎng)度 。
python gtftools.py -l gene_length.txt demo.gtf
4)計(jì)算isoform長(zhǎng)度
python gtftools.py -r isoform_length.txt demo.gtf
5)輸出基因坐標(biāo)和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區(qū)域
python gtftools.py -q splice_regions.bed demo.gtf
9)提取外顯子信息
python gtftools.py -e exons.bed demo.gtf
10)提取內(nèi)含子信息
python gtftools.py -i introns.bed demo.gtf
11)提取基因間區(qū)信息
python gtftools.py -b intergenic_regions.bed demo.gtf
12)提取UTR信息
python gtftools.py -u utr.bed demo.gtf
更多功能,請(qǐng)下載使用
三崇呵、GTF小技巧
1)GTF注釋是不斷更新的缤剧,例如ensembl human的目前最新是v107,因此做分析時(shí)域慷,一定要明確GTF版本號(hào)和基因組版本號(hào)荒辕,并且兩者要匹配
2)GTF要與基因組對(duì)應(yīng)。使用GTF前需要檢查下是否與你所使用的基因組序列文件里邊的染色體名字匹配犹褒,例如線粒體的要看清楚是chrMT還是chrM抵窒,有些加chr,有些不加chr
3)一般情況下我們關(guān)注的是chr1-22叠骑、X李皇、Y、M這些染色體宙枷,random等不感興趣的可以去掉
4)存在大量非標(biāo)準(zhǔn)的GTF掉房,有些可以用程序直接轉(zhuǎn),有些可能需要人工調(diào)整慰丛,這需要經(jīng)驗(yàn)和腳本編寫能力
5)GTF文件一般很大卓囚,記得壓縮和索引
微生信助力發(fā)文章,谷歌引用620+诅病,知網(wǎng)引用450+