📅  最后修改于: 2020-11-09 04:58:23             🧑  作者: Mango
序列是一系列字母,用于表示生物体的蛋白质,DNA或RNA。它由Seq类表示。 Seq类在Bio.Seq模块中定义。
让我们在Biopython中创建一个简单的序列,如下所示-
>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT
在这里,我们已经创建了一个简单的蛋白质序列AGCT和每个字母表示A lanine,G甜菜碱,C ysteine和T hreonine。
每个Seq对象都有两个重要的属性-
数据-实际序列字符串(AGCT)
字母-用于表示序列的类型。例如,DNA序列,RNA序列等。默认情况下,它不代表任何序列,本质上是通用的。
Seq对象包含Alphabet属性,用于指定序列类型,字母和可能的操作。它在Bio.Alphabet模块中定义。字母可以定义如下-
>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()
字母模块提供以下类来表示不同类型的序列。字母-所有类型的字母的基类。
SingleLetterAlphabet-具有大小为1的字母的通用字母。它从Alphabet派生,所有其他字母类型也从它派生。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import single_letter_alphabet
>>> test_seq = Seq('AGTACACTGGT', single_letter_alphabet)
>>> test_seq
Seq('AGTACACTGGT', SingleLetterAlphabet())
ProteinAlphabet-通用单字母蛋白质字母。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_protein
>>> test_seq = Seq('AGTACACTGGT', generic_protein)
>>> test_seq
Seq('AGTACACTGGT', ProteinAlphabet())
NucleotideAlphabet-通用单字母核苷酸字母。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_nucleotide
>>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq
Seq('AGTACACTGGT', NucleotideAlphabet())
DNAAlphabet-通用单字母DNA字母。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> test_seq = Seq('AGTACACTGGT', generic_dna)
>>> test_seq
Seq('AGTACACTGGT', DNAAlphabet())
RNAAlphabet-通用单字母RNA字母。
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_rna
>>> test_seq = Seq('AGTACACTGGT', generic_rna)
>>> test_seq
Seq('AGTACACTGGT', RNAAlphabet())
Biopython模块Bio.Alphabet.IUPAC提供了IUPAC社区定义的基本序列类型。它包含以下类-
IUPAC蛋白质(蛋白质)-IUPAC蛋白质字母,包含20个标准氨基酸。
ExtendedIUPACProtein(extended_protein) -扩展的大写IUPAC蛋白单字母字母,包括X。
IUPAC歧义DNA (ambiguous_dna) -大写IUPAC歧义DNA。
IUPAC明确DNA( unambiguous_dna) -大写IUPAC明确DNA(GATC)。
ExtendedIUPACDNA(extended_dna) -扩展的IUPAC DNA字母。
IUPACAmbiguousRNA(ambiguous_rna) -大写IUPAC歧义RNA。
IUPAC不确定RNA( unambiguous_rna) -大写IUPAC明确RNA(GAUC)。
考虑一下IUPACProtein类的简单示例,如下所示-
>>> from Bio.Alphabet import IUPAC
>>> protein_seq = Seq("AGCT", IUPAC.protein)
>>> protein_seq
Seq('AGCT', IUPACProtein())
>>> protein_seq.alphabet
此外,Biopython通过Bio.Data模块公开所有与生物信息学相关的配置数据。例如,IUPACData.protein_letters具有IUPACProtein字母的可能字母。
>>> from Bio.Data import IUPACData
>>> IUPACData.protein_letters
'ACDEFGHIKLMNPQRSTVWY'
本节简要说明了Seq类中可用的所有基本操作。序列类似于Python字符串。我们可以按顺序执行Python字符串操作,例如切片,计数,串联,查找,拆分和剥离。
使用以下代码获取各种输出。
依次获取第一个值。
>>> seq_string = Seq("AGCTAGCT")
>>> seq_string[0]
'A'
打印前两个值。
>>> seq_string[0:2]
Seq('AG')
打印所有值。
>>> seq_string[ : ]
Seq('AGCTAGCT')
执行长度和计数操作。
>>> len(seq_string)
8
>>> seq_string.count('A')
2
要添加两个序列。
>>> from Bio.Alphabet import generic_dna, generic_protein
>>> seq1 = Seq("AGCT", generic_dna)
>>> seq2 = Seq("TCGA", generic_dna)
>>> seq1+seq2
Seq('AGCTTCGA', DNAAlphabet())
在这里,上述两个序列对象seq1,seq2是通用DNA序列,因此您可以添加它们并生成新序列。您不能添加字母不兼容的序列,例如下面指定的蛋白质序列和DNA序列-
>>> dna_seq = Seq('AGTACACTGGT', generic_dna)
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> dna_seq + protein_seq
.....
.....
TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()
>>>
要添加两个或多个序列,请先将其存储在Python列表中,然后使用“ for循环”进行检索,最后将其添加在一起,如下所示-
>>> from Bio.Alphabet import generic_dna
>>> list = [Seq("AGCT",generic_dna),Seq("TCGA",generic_dna),Seq("AAA",generic_dna)]
>>> for s in list:
... print(s)
...
AGCT
TCGA
AAA
>>> final_seq = Seq(" ",generic_dna)
>>> for s in list:
... final_seq = final_seq + s
...
>>> final_seq
Seq('AGCTTCGAAAA', DNAAlphabet())
在以下部分中,根据要求给出了各种代码以获取输出。
更改顺序的大小写。
>>> from Bio.Alphabet import generic_rna
>>> rna = Seq("agct", generic_rna)
>>> rna.upper()
Seq('AGCT', RNAAlphabet())
要检查Python成员资格和身份运算符。
>>> rna = Seq("agct", generic_rna)
>>> 'a' in rna
True
>>> 'A' in rna
False
>>> rna1 = Seq("AGCT", generic_dna)
>>> rna is rna1
False
在给定序列内查找单个字母或字母序列。
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.find('G')
1
>>> protein_seq.find('GG')
8
执行分割操作。
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.split('A')
[Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()),
Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())]
按顺序执行剥离操作。
>>> strip_seq = Seq(" AGCT ")
>>> strip_seq
Seq(' AGCT ')
>>> strip_seq.strip()
Seq('AGCT')