[python]biopython安装后测试代码
Biopython - 序列
序列是一系列字母,用于表示生物体的蛋白质、DNA 或 RNA。 它由 Seq 类表示。 Seq 类在 Bio.Seq 模块中定义。
让我们在 Biopython 中创建一个简单的序列,如下所示 −
>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT
在这里,我们创建了一个简单的蛋白质序列 AGCT,每个字母代表 Alanine(丙氨酸), Glycine(甘氨酸), Cysteine(半胱氨酸) 和 Threonine(苏氨酸)。
每个Seq对象都有两个重要的属性 −
-
data − 实际序列字符串 (AGCT)
-
alphabet − 用来表示序列的类型。 例如 DNA序列、RNA序列等。默认情况下,不代表任何序列,具有通用性。
字母模块
Seq 对象包含 Alphabet 属性以指定序列类型、字母和可能的操作。 它在 Bio.Alphabet 模块中定义。 字母可以定义如下 −
>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()
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 社区定义的基本序列类型。 它包含以下类 −
-
IUPACProtein (protein) − 20个标准氨基酸的IUPAC蛋白质字母表。
-
ExtendedIUPACProtein (extended_protein) − 扩展的大写 IUPAC 蛋白质单字母字母表,包括 X。
-
IUPACAmbiguousDNA (ambiguous_dna) − 大写的 IUPAC 不明确的 DNA。
-
IUPACUnambiguousDNA (unambiguous_dna) − 大写 IUPAC 明确 DNA (GATC)。
-
ExtendedIUPACDNA (extended_dna) − 扩展的 IUPAC DNA 字母表。
-
IUPACAmbiguousRNA (ambiguous_rna) − 大写 IUPAC 模糊 RNA。
-
IUPACUnambiguousRNA (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')
更多例子参考:https://www.w3ccoo.com/biopython/biopython_sequence.html
更多推荐
所有评论(0)