Biopython 模块处理Seq序列 方法

Posted 路随时间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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










































































以上是关于Biopython 模块处理Seq序列 方法的主要内容,如果未能解决你的问题,请参考以下文章

利用Biopython – Pairwise Alignment计算序列相似度

biopython Sequence相关

Biopython SeqIO 读取序列文件,读取信息,写入序列

Biopython中Entrez模块--从pubmed中查找相关文献, 所有返回的结果用Entrez.read()解析

Biopython根据ID或者根据序列去除重复项

Seq2Seq实现闲聊机器人