序列比對在biopython中的處理

2021-01-15 騰訊網

歡迎關注」生信修煉手冊」!

序列比對是生物信息學分析中的常見任務,包含局部比對和全局比對兩大算法,局部比對最經典的代表是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·

—如果喜歡,快分享給你的朋友們吧—

原創不易,歡迎收藏,點讚,轉發!生信知識浩瀚如海,在生信學習的道路上,讓我們一起並肩作戰!

本公眾號深耕耘生信領域多年,具有豐富的數據分析經驗,致力於提供真正有價值的數據分析服務,擅長個性化分析,歡迎有需要的老師和同學前來諮詢。

相關焦點

  • biopython簡介
    biopython和bioperl, biojava項目類似,都是Open Bioinformatics Foundation組織的項目之一,旨在提供一個編程接口,方便生物信息數據的處理。
  • 為什麼 Biopython 的在線 BLAST 這麼慢?
    用過網頁版本 BLAST 的童鞋都會發現,提交的序列比對往往在幾分鐘,甚至幾十秒就可以得到比對的結果;而通過調用 API 卻要花費幾十分鐘或者更長的時間!這到底是為什麼呢?NCBIWWW 基本用法首先,我們來看一下提供了基於 API 在線比對的 Biopython 模塊。
  • 應用BioPython解析和可視化蛋白質的結構
    胺基酸的序列為蛋白質的一級結構;多個胺基酸的局部結構為二級結構(如α螺旋、β摺疊、β轉角和無規則捲曲等);三級和四級結構為更為高級的空間結構。蛋白質的空間結構由一級結構為基礎,空間結構決定著蛋白質的生物活性。
  • 如何進行基因組序列比對?
    至於具體分析過程中使用哪個版本的參考基因組序列,可根據自己需求進行選擇。 SAM文件格式是Heng Li於2009年提出的用於存儲比對結果信息的文本文件(以tab鍵分割),並同時發布了一款用於處理SAM文件的軟體SAMtools(PMID:19505943)。
  • 序列比對軟體
    今天小編特意給大家整理分享了有關序列比對綜合分析的軟體,聰明的你們快來試試有沒有心儀的軟體工具。FASTA軟體包的最新版本包括特殊翻譯的搜索算法,當將核苷酸與蛋白質序列數據進行比較時,該算法可以正確處理移碼錯誤(六幀翻譯的搜索不能很好地處理)。除了快速的啟發式搜索方法外,FASTA軟體包還提供SSEARCH,這是最佳Smith-Waterman算法的實現。
  • 常用在線序列比對工具
    算法在向更快、更精確、能處理更多數據這些方向進行緩慢而有力的發展。常用的在線序列比對工具主要由EMBL-EBI提供,包括但不限於Needle, Water, Clustal Omega, Muscle, Mafft, T-coffee等,以及NCBI提供的blast2seq工具;常用的序列相似性搜索工具有NCBI提供的BLAST、UCSC提供的BLAT等。
  • 使用biopython可視化染色體和基因元件
    基因組結構元件的可視化有多種方式,比如IGV等基因組瀏覽器中以track為單位的展示形式,亦或以circos為代表的圈圖形式,比如在細胞器基因組組裝中,基因元件常用圈圖形式展示,示例如下
  • 多序列比對——Clustal
    多序列比對是對3個以上生物序列(蛋白質、DNA、RNA等)進行比對,分析序列的同源性,根據比對的結果來構建系統進化樹。
  • 序列比對綜合分析軟體
    Geneious 8.0.3序列綜合分析軟體;MACAW 2.05多序列構建與分析軟體。Clustal W 2.1用來對核酸與蛋白序列進行多序列比對(multiple sequence alignment)的軟體。FASTA 36.3.6f。將一條序列與另一條序列進行比較或在資料庫中查找同源序列並輸出。
  • 序列比對及Blast的應用
    因此,序列比對問題變成在矩陣裡尋找最佳比對路徑,目前最有效的方法是Needleman-Wunsch動態規划算法,在此基礎上又改良產生了Smith-Waterman算法和SIM算法。在FASTA程序包中可以找到用動態規划算法進行序列比對的工具LALIGN,它能給出多個不相互交叉的最佳比對結果。 在進行序列兩兩比對時,有兩方面問題直接影響相似性分值:取代矩陣和空位罰分。
  • 新手上路,一文秒懂Blast結果圖(附序列比對網址)
    一般來說,序列間的相似度越高,它們是同源序列的可能性就越高。 其中,序列比對無疑是評估序列相似性的最簡單方法。顯然,Blast就是序列比對檢測的中堅力量。Blast自1990年首次亮相以來,憑藉從各大資料庫(EST、PDB資料庫等)獲取信息的能力,迅速成為序列比對界的領頭羊。
  • Biopython —— 你不知道的 NCBI 訪問方式
    介紹Biopython 是由 Python 編寫的一組免費可用的計算生物學工具,解決一些生物信息學需求。Biopython 致力於通過創造高質量和可重複利用的 Python 模塊及類,使 Python 在生物信息學中的應用變得更加容易。
  • 如何獲取蛋白序列並進行序列比對?
    今天我們就來說一下具體的方法,先介紹蛋白序列的獲取和序列比對。以Sox家族的蛋白為例,我們首先通過Uniprot資料庫(http://www.uniprot.org/)獲取蛋白序列:我們直接在搜索框中輸入sox,單擊search:
  • 一文秒懂Blast結果圖(附序列比對網址)!教你快速上手,絕對實用!
    一般來說,序列間的相似度越高,它們是同源序列的可能性就越高。其中,序列比對無疑是評估序列相似性的最簡單方法。顯然,Blast就是序列比對檢測的中堅力量。Blast自1990年首次亮相以來,憑藉從各大資料庫(EST、PDB資料庫等)獲取信息的能力,迅速成為序列比對界的領頭羊。
  • 乾貨時間 | 序列比對,科研必備的幾款軟體!
    BLAST(Basic Local Alignment Search Tool)可以說是短序列比對中最常用的比對工具了,它不僅支持核酸和蛋白的雙序列比對,而且可以在蛋白質資料庫或DNA資料庫中進行相似性比較,找到與查詢序列相似的序列。
  • 【科研工具】做序列比對,這個工具最好用!
    BLAST很常用,但在實際工作中,BLAST做序列比對有一些不足之處,例如比對分析速度偏慢,比對結果不直觀、難於處理,比對不能顯示基因內含子及其基因定位等等。相比之下,BLAT比對簡單方便,速度更快,可以做單一或多個序列的同時比對,還可以輸出直觀的比對結果。
  • 宏基因組實戰7. bwa序列比對, samtools查看, bedtools豐度統計
    bwa序列比對安裝bwa# 工作目錄,根據個人情況修改wd=~/test/metagenome17cd $wdsudo apt-get install bwa samtools下載數據mkdir mappingcd mapping# 可以接之前的學習,或在百度雲中下載
  • 科學家發明蛋白序列比對新工具
    :HHblits,這是一種能極大增加蛋白功能性分析技術的軟體,能通過新穎的序列尋找方法,更快更準確的識別資料庫中具有相似序列的蛋白,比現有的方法能快2500倍!因此對於序列相似的蛋白來說,生物信息學方法能預測出其進化相關性,從而預測出相似的結構和功能。 所以蛋白結構分析是蛋白研究的一個重要方面,蛋白結構比對也成為了常規手段之一,研究人員常常在公眾資料庫中比對蛋白結構,通過分析這些相似的已知結構來分析蛋白的功能,Söding博士說,「這種序列分析方法是生物信息學領域的一種基礎研究手段。」
  • python圖像處理-gif動圖
    圖片合成動圖導入os庫,利用listdir方法將lion文件夾中的圖片全部讀取出來,循環打開每一張圖片,接著將圖片對象添加到frames列表中,最後利用save方法,保存為一張動圖。動圖分解成一張張圖片先使用open方法打開動圖,接著使用ImageSequence將打開的圖片對象轉換成可迭代的圖片序列,通過for循環將圖片一張張保存到本地,名字可以自定義。
  • 【陪你學·生信】九、多序列比對-Multiple Sequence Alignment(MSA)
    聽上去都是生物研究中需要分析的基礎項。那麼怎麼做?就是將目標序列與資料庫中多條同源序列的相似部分擺放在同一欄,同一位置。有一些工具可以幫助我們進行多序列比對,但是最好再根據結構、進化、功能、序列相似性人工矯正一下比對結果。