vpa函数python_Biopython - 序列比对
教 程 目 錄
序列比對是按特定順序排列兩個或多個序列(DNA,RNA或蛋白質序列)的過程,以確定它們之間的相似區域.
識別相似區域使我們能夠推斷出大量信息,例如物種之間保守的性狀,遺傳上不同物種的接近程度,物種如何進化等.Biopython為序列比對提供了廣泛的支持.
讓我們在本章中了解Biopython提供的一些重要特性 :
解析序列比對
Biopython提供了模塊,Bio.AlignIO讀取和寫入序列比對.在生物信息學中,有許多格式可用于指定與早期學習的序列數據類似的序列比對數據. Bio.AlignIO提供類似于Bio.SeqIO的API,除了Bio.SeqIO處理序列數據,Bio.AlignIO處理序列比對數據.
在開始學習之前,讓我們從Internet下載樣本序列比對文件.
要下載樣本文件,請按照以下步驟 : 去;
步驟1 : 打開您喜歡的瀏覽器并轉到 http://pfam.xfam.org/family/browse 網站.它將按字母順序顯示所有Pfam系列.
第2步 : 選擇具有較少種子值的任何一個家庭.它包含最少的數據,使我們能夠輕松地進行對齊.在這里,我們選擇/點擊了PF18225并打開了 http://pfam.xfam.org/family/PF18225 并顯示有關它的完整詳細信息,包括序列比對.
步驟3 : 轉到對齊部分并以斯德哥爾摩格式(PF18225_seed.txt)下載序列比對文件.
讓我們嘗試使用Bio.AlignIO讀取下載的序列比對文件,如下所示 :
導入Bio.AlignIO模塊>>>?from?Bio?import?AlignIO
使用read方法讀取對齊. read方法用于讀取給定文件中可用的單個對齊數據.如果給定文件包含許多對齊,我們可以使用parse方法. parse方法返回可迭代的對齊對象,類似于Bio.SeqIO模塊中的parse方法.>>>?alignment?=?AlignIO.read(open("PF18225_seed.txt"),?"stockholm")
打印對齊對象.>>>?print(alignment)
SingleLetterAlphabet()?alignment?with?6?rows?and?65?columns
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVA...EGP?B7RZ31_9GAMM/59-123
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADIT...KKP?A0A0C3NPG9_9PROT/58-119
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMA...KKP?A0A143HL37_9GAMM/57-121
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMA...NKP?A0A0X3UC67_9GAMM/57-121
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIM...NRK?B3PFT7_CELJU/62-126
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVA...NRT?K4KEM7_SIMAS/61-125
>>>
我們還可以檢查對齊中可用的序列(SeqRecord)以及低于和低于;>>>?for?align?in?alignment:
...?print(align.seq)
...
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVATVANQLRGRKRRAFARHREGP
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADITA---RLDRRREHGEHGVRKKP
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMAPMLIALNYRNRESHAQVDKKP
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMAPLFKVLSFRNREDQGLVNNKP
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIMVLAPRLTAKHPYDKVQDRNRK
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVADLMRKLDLDRPFKKLERKNRT
>>>
多個對齊
通常,大多數序列比對文件都包含單個比對數據,它足以使用讀取方法來解析它.在多序列比對概念中,比較兩個或更多序列以獲得它們之間的最佳子序列匹配,并在單個文件中導致多序列比對.
如果輸入序列比對格式包含多個序列比對,然后我們需要使用parse方法而不是read方法,如下所示 :>>>?from?Bio?import?AlignIO
>>>?alignments?=?AlignIO.parse(open("PF18225_seed.txt"),?"stockholm")
>>>?print(alignments)
>>>?for?alignment?in?alignments:
...?print(alignment)
...
SingleLetterAlphabet()?alignment?with?6?rows?and?65?columns
MQNTPAERLPAIIEKAKSKHDINVWLLDRQGRDLLEQRVPAKVA...EGP?B7RZ31_9GAMM/59-123
AKQRGIAGLEEWLHRLDHSEAIPIFLIDEAGKDLLEREVPADIT...KKP?A0A0C3NPG9_9PROT/58-119
ARRHGQEYFQQWLERQPKKVKEQVFAVDQFGRELLGRPLPEDMA...KKP?A0A143HL37_9GAMM/57-121
TRRHGPESFRFWLERQPVEARDRIYAIDRSGAEILDRPIPRGMA...NKP?A0A0X3UC67_9GAMM/57-121
AINRNTQQLTQDLRAMPNWSLRFVYIVDRNNQDLLKRPLPPGIM...NRK?B3PFT7_CELJU/62-126
AVNATEREFTERIRTLPHWARRNVFVLDSQGFEIFDRELPSPVA...NRT?K4KEM7_SIMAS/61-125
>>>
這里,parse方法返回可迭代的對齊對象,可以迭代它以獲得實際的對齊.
成對序列對齊
成對序列比對一次只比較兩個序列,并提供最佳的序列比對. 成對易于理解,并且可以從結果序列比對中推斷出來.
Biopython提供了一個特殊的模塊,Bio.pairwise2使用成對方法識別比對序列. Biopython應用最佳算法來找到比對序列,它與其他軟件相同.
讓我們編寫一個例子,使用成對模塊找到兩個簡單和假設序列的序列比對.這將有助于我們理解序列比對的概念以及如何使用Biopython對其進行編程.
步驟1
導入模塊pairwise2使用下面給出的命令 :>>>?from?Bio?import?pairwise2
步驟2
創建兩個序列,seq1和seq2 :>>>?from?Bio.Seq?import?Seq
>>>?seq1?=?Seq("ACCGGT")
>>>?seq2?=?Seq("ACGT")
步驟3
調用方法pairwise2.align.globalxx以及seq1和seq2使用下面的代碼行找到對齊 :>>>?alignments?=?pairwise2.align.globalxx(seq1,seq2)
此處,globalxx方法執行實際工作并找到最佳效果給定序列中可能的比對.實際上,Bio.pairwise2提供了一系列遵循以下慣例的方法,以在不同情況下找到對齊.XY
這里,序列比對類型是指對齊類型,可以是global或local.全局類型通過考慮整個序列來發現序列比對.本地類型也通過查看給定序列的子集來尋找序列比對.這將是乏味的,但更好地了解給定序列之間的相似性.X指的是匹配分數.可能的值是x(完全匹配),m(基于相同字符的分數),d(用戶提供的帶字符和匹配分數的字典),最后是c(用戶定義的函數,用于提供自定義評分算法).
Y指間隙罰款.可能的值是x(無間隙罰分),s(兩個序列的相同懲罰),d(每個序列的不同懲罰),最后c(用戶定義的函數提供自定義間隙罰分)
因此,localds也是一個有效的方法,它使用局部對齊技術找到序列比對,用戶提供的匹配字典和用戶提供的兩個序列的空位罰分.>>>?test_alignments?=?pairwise2.align.localds(seq1,seq2,blosum62,-10,-1)
這里,blosum62指的是pairwise2模塊中可用的字典提供比賽得分. -10表示缺口開放罰分,-1表示缺口延長罰金.
步驟4
循環遍歷可迭代路線對象并得到每個人對齊對象并打印它.>>>?for?alignment?in?alignments:
...?print(alignment)
...
('ACCGGT',?'A-C-GT',?4.0,?0,?6)
('ACCGGT',?'AC--GT',?4.0,?0,?6)
('ACCGGT',?'A-CG-T',?4.0,?0,?6)
('ACCGGT',?'AC-G-T',?4.0,?0,?6)
步驟5
Bio.pairwise2模塊提供格式方法,format_alignment更好地可視化結果 :>>>?from?Bio.pairwise2?import?format_alignment
>>>?alignments?=?pairwise2.align.globalxx(seq1,?seq2)
>>>?for?alignment?in?alignments:
...?print(format_alignment(*alignment))
...
ACCGGT
|?|?||
A-C-GT
Score=4
ACCGGT
||?||
AC--GT
Score=4
ACCGGT
|?||?|
A-CG-T
Score=4
ACCGGT
||?|?|
AC-G-T
Score=4
>>>
Biopython還提供另一個模塊進行序列比對,Align.這個模塊提供了一組不同的API來簡單地設置參數,如算法,模式,匹配分數,空位罰分等.簡單查看Align對象如下&&;>>>?from?Bio?import?Align
>>>?aligner?=?Align.PairwiseAligner()
>>>?print(aligner)
Pairwise?sequence?aligner?with?parameters
match?score:?1.000000
mismatch?score:?0.000000
target?open?gap?score:?0.000000
target?extend?gap?score:?0.000000
target?left?open?gap?score:?0.000000
target?left?extend?gap?score:?0.000000
target?right?open?gap?score:?0.000000
target?right?extend?gap?score:?0.000000
query?open?gap?score:?0.000000
query?extend?gap?score:?0.000000
query?left?open?gap?score:?0.000000
query?left?extend?gap?score:?0.000000
query?right?open?gap?score:?0.000000
query?right?extend?gap?score:?0.000000
mode:?global
>>>
支持序列比對工具
Biopython通過Bio.Align.Applications提供了許多序列比對工具的接口模塊.一些工具列在下面和下面;ClustalW
MUSCLE
EMBOSS針和水
讓我們在Biopython中編寫一個簡單的例子,通過最流行的對齊工具ClustalW創建序列對齊.
第1步 : 從 http://www.clustal.org/download/current/下載Clustalw程序并安裝它.另外,使用"clustal"安裝路徑更新系統PATH.
步驟2 : 從模塊Bio.Align.Applications導入ClustalwCommanLine.>>>?from?Bio.Align.Applications?import?ClustalwCommandline
步驟3 : 通過使用輸入文件調用ClustalwCommanLine來設置cmd,在Biopython包中提供opuntia.fasta. ?https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/opuntia.fasta>>>?cmd?=?ClustalwCommandline("clustalw2",
infile?="/path/to/biopython/sample/opuntia.fasta")
>>>?print(cmd)
clustalw2?-infile?=?fasta/opuntia.fasta
第4步 : 調用cmd()將運行clustalw命令并給出生成的
對齊文件的輸出,opuntia.aln.>?>>?stdout,stderr?=?cmd()
第5步 : 閱讀并打印對齊文件,如下所示;>>>?from?Bio?import?AlignIO
>>>?align?=?AlignIO.read("/path/to/biopython/sample/opuntia.aln",?"clustal")
>>>?print(align)
SingleLetterAlphabet()?alignment?with?7?rows?and?906?columns
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273285|gb|AF191659.1|AF191
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273284|gb|AF191658.1|AF191
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273287|gb|AF191661.1|AF191
TATACATAAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273286|gb|AF191660.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273290|gb|AF191664.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273289|gb|AF191663.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA
gi|6273291|gb|AF191665.1|AF191
>>>
相關新手教程:
總結
以上是生活随笔為你收集整理的vpa函数python_Biopython - 序列比对的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 复盘第二届长安杯电子取证习题
- 下一篇: 枫叶防注入程序漏洞