寫在前面
用過 BLAST 進行基因功能注釋的朋友應該常常遇到兩個問題:
- BLAST 輸出格式較多对蒲,選擇哪一類輸出格式更為實用?
- 輸出結果信息較多含滴,如果方便下游數據分析?
BLAST 的輸出文件格式建議
基于我個人生信數據分析項目經驗碑韵,一般用戶會選擇以下四種格式:
- pairwise
- blast tab ,即 -outfmt 6
- ASN
- XML
以下逐個解讀联喘。
Pairwise 格式
這一個是常見于絕大多數網站自行搭建的 BLAST 服務。比如擬南芥 TAIR 的 Blast 輸出蓖谢,大體如下,
清晰明了,對于少量序列腊嗡,比如 一兩個序列的 比對結果查看燕少,那么這一格式非常合適崇决。但一旦數據較多恒傻,比如我們上千個差異表達基因或者是關聯出來的基因列表盈厘,那么就不太合適注簿。于是一般會用 Table (--outfmt 6 或 7 )
Blast Tab 格式
Blast Tab 格式诡渴,這個名字惑灵,是我自己給的泣棋。因為這個格式其實就是純粹的 制表符分隔 的 表格。一般情況下澈吨,blast+ 設置輸出格式為 -outfmt 6 或者 7 (后者包含表頭)即可。大體格式可以看看下方桑阶,
直接在 Excel 中查看即可。可以看出玛歌,一列一列擺放,以 HSP (也就是 高度相似片片段)為單位译荞。這個序列的比對結果不太直觀(具體見下文)。
ASN 格式
說實話篙骡,我估計絕大部分號稱自己搞數據分析的,其實也不知道有這個格式得湘。
ASN格式臼闻,類似 JSON述呐,是 NCBI 自定義的格式思犁,存儲信息最全面褐着,可以直接使用 Blast 軟件轉換為其他格式含蓉。唯一麻煩的可能是,用戶需要轉換一次差油,有些人不喜歡。當然我也不喜歡妆偏,畢竟...XML相對容易解析挪鹏。
XML 格式
一直以來讨盒,我最新換的就是 XML 格式返顺。主要原因有:
- 相比于 Pairwise 和 ASN 格式來說伦忠,XML 更容易使用 程序解析
- 相比于 Table 格式來說气忠,XML 信息更全面
具體可看
對應所有 TBtools 用戶來說吨娜,我個人是建議陪毡,如果只是一兩條序列的 BLAST ,那么建議 Pairwise 格式桅滋,而其他所有情況,直接輸出 XML 格式。因為 TBtools 下面有系列功能可以可視化 和 解析定庵。
大體功能介紹
XML 轉換為 BLAST Tab 格式
所有 BLAST XML 輸出文件找岖,可以直接使用 TBtools许布,轉換為 BLAST Tab。非常方便袁余。
TBtools Table 格式
正如前面體積掩完,BLAST 默認的輸出以 HSP 為單位且蓬,有時候并不太合適。比如冯事,有些時候比對結果是這樣的(即超過 1 個 HSP)
這種情況下,如果是 NCBI BLAST 默認的 表格輸出,那么就是
我們完全可以想想,有不少時候渴析,可能有 N 個hsp吮龄。而這些信息,本身冗余母债。此外毡们,也無法直接看到比對覆蓋率昧辽。為此.... 很久很久以前,我就開放了一個功能红氯,自定義了一個 TBtools Table。具體如下,
可以看出,多個 HSP 的信息被整合為一行块仆,也補充了覆蓋率的計算等等庄敛。每行就是一個 Hit 科汗,更符合實際用戶觀測數據需求头滔。
僅僅如此?
當然不是兴猩。這兩天早歇,我又在折騰一些生物學問題相關的課題箭跳。于是需要看一堆基因大體注釋信息。盡管上述說到的 TBtoosl Table 相對簡潔拯刁。但還是不夠直觀逝段,畢竟一個人序列還是對應了多個 hits奶躯。所以最好的做法就是,進一步把所有的 hits 整合成 一行(這個想法在三四年前账嚎,夏老師提過,不過...我一直懶得實現)疼邀。索性寫了一下旁振,輸出結果如下涨岁。
說實話梢薪,不能太完美...
而且具體使用一樣簡單:
- 輸入BLAST的XML格式輸出文件,支持 DIAMOND XML甜攀,建議比對到 Swissprot
- 輸出文件路徑
具體界面如下赴邻,注意到新版本的 TBtools啡捶,直接整合了 三個表格轉換功能
一切瞎暑,就這么簡單....
當然了赌,其實新版本修復了一小部分 BLAST XML to Table 的小bug,建議各位更新袄秩,盡管之剧,我已經推送了自動更新.....
寫在后面
TBtools 的序列提取 和 BLAST 相關功能砍聊,是最老的功能,意味著他們的具體界面化和實現邏輯蟹肘,都是一個具有不到半年 Java 編程經驗(接觸編程剛過一年)的小孩子寫的。現在看來贰盗,多少顯得粗糙舵盈。但回過頭來胸完,這個跟不少大佬說的一樣:
- 以前赊窥,有時間狸页,但是沒經費
- 現在芍耘,有經費,但是沒時間
而大佬終歸是大佬嘛倔约。對于我,那么情況是:沒時間坝初,也沒經費浸剩。
哈哈哈哈哈哈哈哈