一款純Python編寫的GTF處理腳本 - GTFtools

日常數(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+


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哪亿,一起剝皮案震驚了整個(gè)濱河市粥烁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝇棉,老刑警劉巖讨阻,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異篡殷,居然都是意外死亡变勇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門贴唇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人飞袋,你說(shuō)我怎么就攤上這事戳气。” “怎么了巧鸭?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵瓶您,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我纲仍,道長(zhǎng)呀袱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任郑叠,我火速辦了婚禮夜赵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乡革。我一直安慰自己寇僧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布沸版。 她就那樣靜靜地躺著嘁傀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪视粮。 梳的紋絲不亂的頭發(fā)上细办,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音蕾殴,去河邊找鬼笑撞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛区宇,可吹牛的內(nèi)容都是我干的娃殖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼议谷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼炉爆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芬首,失蹤者是張志新(化名)和其女友劉穎赴捞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郁稍,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赦政,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耀怜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恢着。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖财破,靈堂內(nèi)的尸體忽然破棺而出掰派,到底是詐尸還是另有隱情,我是刑警寧澤左痢,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布靡羡,位于F島的核電站,受9級(jí)特大地震影響俊性,放射性物質(zhì)發(fā)生泄漏略步。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一定页、第九天 我趴在偏房一處隱蔽的房頂上張望趟薄。 院中可真熱鬧,春花似錦典徊、人聲如沸竟趾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岔帽。三九已至,卻和暖如春导绷,著一層夾襖步出監(jiān)牢的瞬間犀勒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工妥曲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贾费,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓檐盟,卻偏偏與公主長(zhǎng)得像褂萧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葵萎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容