Biopython 模塊處理Seq序列 方法


Biopython 模塊
1.序列 賦值
Bio.Alphabet.IUPAC 提供蛋白質、DNA和RNA的基本定義,並提供擴展和定制基本定義的功能。
1.1 DNA 字母表

基本字母:IUPACUnambiguousDNA
每種可能下的歧義字母:IUPACAmbiguousDNA
修飾后的鹼基:ExtendedIUPACDNA

1.2 蛋白字母表
基本的IUPACProtein類 包含常見的20中氨基酸
ExtendedIUPACProtein類 包含除20種常見氨基酸外的其他氨基酸元素

如:
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> my_seq = Seq("AGTACACTGGT", IUPAC.unambiguous_dna) #基本的DNA字母表
>>> my_seq
Seq('AGTACACTGGT', IUPACUnambiguousDNA())
>>> my_seq.alphabet
IUPACUnambiguousDNA()

2 序列Seq方法
1)字符串方法
len(my_seq)
迭代 如:
>>> for index, letter in enumerate(my_seq):
... print index, letter
lower()
upper() 改變帶小寫
count() 如: Seq("AAAA").count("AA")
切片 如: my_seq[0::3] 取密碼子第一的鹼基
str() 轉換序列對象成字符串 如:
>>> str(my_seq)
'GATCGATGGGCCTATATAGGATCGAAAATCGC

2)互補,方向互補
complement() #互補
reverse_complement() #反向互補方法
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC", IUPAC.unambiguous_dna)
>>> my_seq
Seq('GATCGATGGGCCTATATAGGATCGAAAATCGC', IUPACUnambiguousDNA())
>>> my_seq.complement() #互補
Seq('CTAGCTACCCGGATATATCCTAGCTTTTAGCG', IUPACUnambiguousDNA())
>>> my_seq.reverse_complement() #反向互補方法
Seq('GCGATTTTCGATCCTATATAGGCCCATCGATC', IUPACUnambiguousDNA())

3)轉錄
transcribe()#將序列的T換成U,並調整字母表為RNA, 所以需是編碼鏈用這方法
模板鏈需先反向互補再轉錄 如: template_dna.reverse_complement().transcribe()
>>> coding_dna
Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())
>>> messenger_rna = coding_dna.transcribe() #將
>>> messenger_rna
Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

4)逆轉錄 即換U為T,轉換字母表為DNA
back_transcribe()

5)translate() 將DNA/RNA翻譯成蛋白序列,並轉換蛋白字母表
標准遺傳密碼 table id 1 ,默認使用1
線粒體序列密碼 table id 2

注:終止密碼子翻譯成*
僅翻譯到閱讀框的第一個終止密碼子,然后停止 (這更符合自然現象)則to_stop=True。
>>> coding_dna.translate()
Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))
>>> coding_dna.translate(to_stop=True)
Seq('MAIVMGR', IUPACProtein())
>>> coding_dna.translate(table=2)
Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))
>>> coding_dna.translate(table=2, to_stop=True)
Seq('MAIVMGRWKGAR', IUPACProtein())

3.Seq對象不可變即不可再次更改或刪除,如需要則需要先轉換成str或MutableSeq對象
如:
>>> mutable_seq = my_seq.tomutable()
>>> mutable_seq
MutableSeq('GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA', IUPACUnambiguousDNA())
>>> new_seq = mutable_seq.toseq()
>>> new_seq
Seq('AGCCCGTGGGAAAGTCGCCGGGTAATGCACCG', IUPACUnambiguousDNA())

4.字符串其實也可以應用Seq的方法,只是用Seq更規范數據格式。
>>> from Bio.Seq import reverse_complement, transcribe, back_transcribe, translate
>>> my_string = "GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG"
>>> reverse_complement(my_string)
'CTAACCAGCAGCACGACCACCCTTCCAACGACCCATAACAGC'
>>> transcribe(my_string)
'GCUGUUAUGGGUCGUUGGAAGGGUGGUCGUGCUGCUGGUUAG'
>>> back_transcribe(my_string)
'GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG'
>>> translate(my_string)
'AVMGRWKGGRAAG*'

參考 Biopython Doc URL: http://biopython-cn.readthedocs.io/zh_CN/latest/cn/chr03.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM