- Biopython 教程
- Biopython - 首页
- Biopython - 简介
- Biopython - 安装
- 创建简单应用程序
- Biopython - 序列
- 高级序列操作
- 序列 I/O 操作
- Biopython - 序列比对
- Biopython - BLAST 概述
- Biopython - Entrez 数据库
- Biopython - PDB 模块
- Biopython - 基序对象
- Biopython - BioSQL 模块
- Biopython - 群体遗传学
- Biopython - 基因组分析
- Biopython - 表型微阵列
- Biopython - 绘图
- Biopython - 聚类分析
- Biopython - 机器学习
- Biopython - 测试技术
- Biopython 资源
- Biopython - 快速指南
- Biopython - 有用资源
- Biopython - 讨论
Biopython - 序列
序列是一系列用于表示生物体蛋白质、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**lycine(甘氨酸)、**C**ysteine(半胱氨酸)和 **T**hreonine(苏氨酸)。
每个 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 - 长度为一的字母的通用字母表。它派生自 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)** - 包括 X 的扩展大写 IUPAC 蛋白质单字母字母表。
**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')