biopython处理序列
Seq对象和标准Python字符串有两个明显的区别。 首先,使用不同的方法。 ` ` Seq ` `对象支持普通字符串的许多方法,但其translate )方法在进行生物翻译时不同。 同样,还有其他生物学方法,例如reverse_complement ()。 其次,Seq对象具有一个重要的属性-alphabet。 此对象用于描述由单个字符组成的序列字符串的“mean”(含义)以及如何解释该字符串。 例如,AGTACACTGGT序列是DNA序列吗? 还是富含Alanines、Glycines、Cysteines and Threonines的蛋白质序列?
#指定此序列的类型为dna序列
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
my_seq=seq(agtactggt ),IUPAC.unambiguous_dna ) ) )。
my_seq
seq(agtacactggt )、IUPACUnambiguousDNA ) )
my_seq.alphabet
IUPACUnambiguousDNA (
# Seq对象包含类似字符串的. count ) )方法。 请记住这是在进行不重叠的计数,就像Python的字符串一样。
from Bio.Seq import Seq
' AAAA'.count('aa ) )。
2
seq(AAAA ).count ) (aa ) )。
2
#Bio.SeqUtils模块内置函数计算GC含量
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
from Bio.SeqUtils import GC
my _ seq=seq (gatcgatggctataggatcgaaatcgc (,IUPAC.unambiguous_dna ) )。
GC(my_seq )是
46.875
#分隔序列,从0开始计数
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
my _ seq=seq (gatcgatggctataggatcgaaatcgc (,IUPAC.unambiguous_dna ) )。
my_seq[4:12]
seq(gatggcc )、IUPACUnambiguousDNA ) )
#将序列对象转换为字符串
str(my_seq )为
' gatcgatgcctataggatcgaaaatcgc '
#悲伤的悟空格式化Python字符串或插入操作符(% )时,可以直接使用Seq对象和) s占位符,而不必担心序列自动换行。
fasta _ format _ string=' namen % sn ' % my _ seq
print fasta_format_string
名字
atcgatggcctataggatcgaaaatcgc
#合并序列使用“”作为合并字符串
#seq对象的大小写转换与字符串类似,包括upper和lower方法
#seq对象中内置了获得互补性和逆互补性的函数
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC
my _ seq=seq (gatcgatggctataggatcgaaatcgc (,IUPAC.unambiguous_dna ) )。
my_seq
seq (gatcgatggcctataggatcgaaatcgc (,IUPACUnambiguousDNA ) )
my_seq.complement (
seq (ctagctaccgatatatcctagctttagcg (,IUPACUnambiguousDNA ) )
my_seq.reverse_complement (
seq (gcgatttcgatcctataggcatcgatc (,IUPACUnambiguousDNA ) )
#seq中有内置的函数transcribe,将dna序列转录为rna序列
coding_dna
seq (atggccattgtaatgcccgctgaaggtgccgatag (iupacunambiguousdna ) )
messenger _ RNA=coding _ DNA.transcribe (
messenger_rna
seq (auggccauguaaugggccgcugaaggugccgauag (,IUPACUnambiguousRNA ) )
#seq中还有逆转录的函数back_transcribe
#翻译
#translate函数将seq对象转换为蛋白质数组。 默认情况下遇到终结者不会停止翻译。 默认情况下使用ncbi的标准密码子表。
#如果需要翻译线粒体序列,则需要告诉他们使用与翻译函数相关的遗传密码:
coding _ DNA.translate (table=' vertebrate mitochondrial ' )
maivmgrwkgar (,HasstopCodon ) IUPACprotein,' * ' )
也可以使用NCBI表中的标签指定要使用的遗传密码。 这将使其更加简洁。 GenBank文件中的特征注释经常包含表的标签:
coding_DNA.translate(table=2) )。
maivmgrwkgar (,HasstopCodon ) IUPACprotein,' * ' )
#悲伤的悟空发现使用了to_stop参数时,到终结者为止中止翻译,终止密码子本身不翻译
coding_dna.translate (
seq(maivmgr*kgar )、HasstopCodon ) IUPACprotein (,(* ) )
coding _ DNA.translate (to _ stop=true ) )。
seq(maivmgr )、IUPACProtein ) )