歡迎關注」生信修煉手冊」!
序列比對是生物信息學分析中的常見任務,包含局部比對和全局比對兩大算法,局部比對最經典的代表是blast, 全局比對則用於多序列比對。在biopython中,支持對序列比對的結果進行讀寫,解析,以及運行序列比對的程序。
首先來看下多序列比對,多序列比對的軟體較多,比如clustalw, muscle, mafft等,輸出結果的格式也很多,比如clustal, fasta, phylip等。在biopython中,為不同格式,不同軟體提供了統一的接口,方便我們的使用
1. 讀取多序列比對結果
通過Bio.AlignIO模塊來對多序列比對結果進行讀寫,其中的parse方法用於從文件句柄中讀取多序列比對的內容,用法如下
該方法的返回值是一個迭代器,每次迭代,返回的是一個SeqRecord對象。
2. 輸出多序列比對結果
通過write方法將多序列比對的結果輸出到文件中,可以指定輸出文件的格式,用法如下
和Bio.SeqIO相同,針對格式轉換,也體用了convert方法,用法如下
3. 運行多序列比對程序
為了簡化調用,在Bio.Applicaitons模塊中,提供了各種應有的調用接口。對於多序列比對結果,默認調用位於本地PATH環境變量下的可執行程序,來執行對應的命令,以clustalw為例,用法如下
第一個參數指定可執行程序,如果可執行程序位於PATH變量下,指定可執行程序的名稱即可,否則需要指定可執行程序的完整路徑。clustalw會根據輸入文件的名稱,自動確定輸出文件的名字。當然,也可以通過參數指定輸出文件的名字。
Bio.Applicaitons模塊通過subprocess來調用程序,我們可以藉此來讀取程序的標準輸出和標準錯誤流信息。比如以muscle為例,通過直接讀取標準輸出,避免了創建臨時文件,示例如下
對於局部比對而言,biopython可以運行blast並解析其輸出
1. 運行blast
支持聯網運行和本地運行兩種模式,聯網運行時調用NCBI網站的blast程序,用法如下
在線運行只需要我們提供查詢序列即可,用的資料庫是NCBI的公共資料庫,而本地運行則要求我們在本地安裝好blast可執行程序,構建本地版本的blast資料庫才行,本地運行的用法如下
2. 解析blast的輸出
biopython中blast默認的輸出格式為xml, 解析其輸出的用法如下
對於序列比對結果的運行和解析,通過biopython可以很好的將其整合到python生態中,對於用python構建一套完整的pipeline,非常的方便。
·end·
—如果喜歡,快分享給你的朋友們吧—
原創不易,歡迎收藏,點讚,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起並肩作戰!
本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力於提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來諮詢。