無論是Windows,MacOS, Linux桌面的用戶,你都可以也會使用。
寫在前面
伴隨基因組測序的普及,越來越多物種的基因組測序項目開展并報道,為科研工作者提供了更為全面的參考序列信息。目前,單純植物類已公布的基因組,應在400~500個物種之間。這帶來了更多的數據,也帶來了更多的信息分析挑戰。物種基因組公布,往往(至少)會公布兩個文件:
- 物種基因組序列文件,如 genome.fa
- 物種序列特征注釋文件【或更常見的 基因結構注釋信息文件】,如 genome.gff3 / genome.gtf
對于具有編程基礎或熟悉 Linux 操作系統的數據分析人員,往往可以通過編寫腳本或使用諸如 gffreads 等命令行工具來進行序列提取【如:所有基因的 CDS 序列】。但對于可以從數據中受益的更多人而言,這并不是一個完美選項。
三年前,TBtools 釋放了 ** GTF/GFF3 Sequences Extract** 功能,應為極少見的【至少我沒見過其他】 可實現基于 GTF/GFF3 注釋信息 從全基因組序列中提取 指定特征序列集合 的GUI工具。
【注,其中 Start 摁鈕為灰色,即不可用,下文有說明】
常見用途
- 提取所有 CDS 序列集合(可用 TBtools 直接翻譯成 蛋白序列集合)
- 提取所有 Exon 序列集合(即注釋文件中所有轉錄本序列)
- 提取所有 Gene 序列結合(即基因的所有Exon和Intron序列)
- 提取所有 Promoter 序列集合(或為 UTR及上游1~2kb;或為 ATG及上游1~2kb等)
TBtools 提取出的序列可以保證 ID 完全統一,方便后續任何分析【如基因結構可視化,基因定位在染色體上等等】。當然,TBtools 也提供了 GTF/GFF3 信息整理工具,可方便用于直接整理 ID 重命名的映射文件,隨后可用 Fasta Rename 直接進行批量重命名。
以下,大體介紹下兩個常見用途(提取 CDS 或 提取 Promoter)的操作姿勢
使用到的文件
【注:如果文件是.gz .rar .tar.gz 等后綴的壓縮文件,請先解壓縮再使用】
使用第一步
GFF3/GTF文件中存儲的序列特征很多,對于 GUI 操作,用戶往往需要全面了解文件中可供提取的序列特征,如CDS, Exon等。所以使用這一功能的第一步,即 a) 導入GFF3/GTF文件 b) 點擊初始化
可以看到,點擊初始化之后,Feature ID等均有了變化
同時還會彈出一個文本對話框,這個對話框,事實上用戶輔助用戶選擇 Feature Tag 和 Feature ID。
- Feature Tag,一般是 CDS, Exon, mRNA, Transcript, Gene等,用戶往往已經知道自己要提取什么,不需要輔助
- Feature ID,以 CDS 和mRNA為例。我們很清楚,真核生物中,大多數基因均是斷裂基因,即 Exon-Intron-Exon... CDS即Exon的部分,所以CDS本身在基因序列的尺度上,也是被 Intron 所分隔。當我們需要提取 CDS 的時候,往往我們說的并不是提取 一截CDS,而是把某個轉錄本對應的幾截甚至幾十截 CDS 按照正確的順序和方向連接起來之后的真實的 CDS 全長。于是 ,如何連接,這個時候,就需要用戶指定一個 ID,如下,
可以看到 GFF3 注釋文件中,同一個轉錄本 ATG01010.1 擁有幾截CDS。這些 CDS 可以以 Parent 這個 Feature ID 來歸組,并組合成 ATG01010.1 的 CDS 全長。事實上,這個文件比較簡單,因為 CDS 并沒有更多的 Feature ID 可以選擇。在其他物種中,常常會出現各種各種的 Feature ID,比如直接是 ID=。
可以看到圖片中還有 mRNA,在這個注釋文件中,每一個mRNA基友 ID= 也有 Parent=,前者事實上是這個 mRNA 獨有的標簽,后者則記錄了這個 mRNA 屬于是哪一個基因的轉錄本之一。此時,如果是要提取這個mRNA的序列【包括Exon和Intron】,那么設置 Feature ID 為 ID 則是正確的。如果選擇 Feature ID 為 Parent,則只會得到不理想的結果。一個基因多個轉錄本會有完全相同的 Parent 便簽,這些轉錄本會按順序串聯起來,這并不沒有生物學意義。
于是,可以開始不同的提取操作了,但是在開始之前,還有一件事情一定不能忘記。
注意事項
TBtools 所有 GUI 功能的設計與使用遵從一個基本邏輯:set [I]nput files,set [O]utput files if needed,click [S]tart button,簡稱 IOS。
所以,下述任何操作,即點擊 Start 之前,先設置輸出文件。
提取物種所有 CDS 序列
【注意,必須先設置 輸出文件】
很快,可以看到輸出文件。其中包括了物種【注釋文件中包括】的所有CDS序列全長。
如果需要 蛋白序列 集合,那么只需要直接用 TBtools 的 批量翻譯功能即可。
提取所有轉錄本的 Promoter 序列
Promoter 往往指 UTR上游1~2kb 的區間,這并不絕對,因為順式作用元件同樣可以存在于 Intron 甚至是 Exon 上。目前,大多數物種的基因結構注釋信息并不完善,在常見的數據分析中,除少數模式生物,如擬南芥,水稻,人類等,在提及對 Promoter 序列的分析,往往直接使用 翻譯起始密碼子ATG上游1~2kb的序列。此處,也以同樣的方式處理【注,這并不是我本人的生物學認定,僅為演示用】。
于是可以得到,
于是,在所有 CDS 全長的前面,增加了 1000bp 的序列,即上述提及的 Promoter 序列。
很多時候,大家需要的是不包含CDS序列的,純粹的 Promoter 序列,這個時候,只需要勾選多一個選項即可,
于是得到
于是,對于其他序列特征,如Exon全長,miRNA前體等等,參考以上就可以了。
其他參數詳解
這個功能基本完善于兩三年前,但是參數還是比較豐富。
其中:
- 僅提取不多于指定Feature數目的序列,比如,有時候我們只需要 單外顯子 轉錄本的,那么這個時候,指定最多允許1個Exon即可。
- 僅提取不少于指定Feature數據的序列,與1. 正好相反
- 保留注釋信息在輸出的 Fasta 文件 ID,中,有時候我們希望得到信息相對全面的文件
- 提取 Feature 5’ 端上游指定長度的序列,如上述的 CDS 上游1kb
- 提取 Feature 3’ 端下游指定長度的序列
- 只保留上游或下游序列
補充
當然,你可能還有各式各樣的需求。
你只是需要部分基因的Promoter,那就用 TBtools 的 Fasta Extract,
你想要提取GFF3中每個轉錄本對應的基因ID,
你又想要批量對提取之后的序列進行重命名
你還要想什么?用好搜索框!不用拼命翻菜單。
寫在后面
昨天半夜醒來,毫無困意。推文寫得七七八八,加上前述也聽聞 follower 要在他們的軟件里面實現類似的功能,那么索性推出,方便作為他們的參考。整體上,這個功能自從推出后,幾乎沒有更新過。不過我個人的使用頻次較高,主要原因在于,越多物種的基因組數據要分析,越多項目需要開展,那么 ID 的一致和統一就越顯得重要,而 TBtools 在這塊上從設計之初就很在意。
有時候,我們更多地應該從程序解析或者機械自動化的角度去思考問題,設計和實現功能;而不是純粹考慮輸出結果如何迎合人類偏好。因為,人的欲望是復雜的,甚至是無規律可循。于是,剩下的,就只有斷層。
當然,這也是為什么,很多類似生信小工具很少人愿意去寫,比如 TBtools 的 Fasta 序列操作(包括提取,重命名,格式化等等)。為什么在 TBtools 之前沒有輕便的工具【事實上,除去JRE和一些Wrapper程序,TBtools的整體大小只有幾Mb】?
其實道理就這么簡單,因為簡單而且繁雜的事情,做數據分析/軟件開發方向的絕大多數人,并不在意或者并不愿意,因為這看起來并沒什么技術含量,就跟我現在一直在做的多數工作一樣。
不過,有沒有技術含量,跟值不值得,喜不喜歡,似乎并沒有關系。市面上,又有多少是有技術含量的呢?如果你認真起來。