
- 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 - 高级序列操作
本章将讨论 Biopython 提供的一些高级序列功能。
互补序列和反向互补序列
核苷酸序列可以反向互补以获得新的序列。此外,互补序列可以反向互补以获得原始序列。Biopython 提供了两种方法来实现此功能:complement 和 reverse_complement。代码如下:
>>> from Bio.Alphabet import IUPAC >>> nucleotide = Seq('TCGAAGTCAGTC', IUPAC.ambiguous_dna) >>> nucleotide.complement() Seq('AGCTTCAGTCAG', IUPACAmbiguousDNA()) >>>
这里,complement() 方法允许互补 DNA 或 RNA 序列。reverse_complement() 方法对生成的序列进行互补并从左到右反转。如下所示:
>>> nucleotide.reverse_complement() Seq('GACTGACTTCGA', IUPACAmbiguousDNA())
Biopython 使用 Bio.Data.IUPACData 提供的 ambiguous_dna_complement 变量来执行互补操作。
>>> from Bio.Data import IUPACData >>> import pprint >>> pprint.pprint(IUPACData.ambiguous_dna_complement) { 'A': 'T', 'B': 'V', 'C': 'G', 'D': 'H', 'G': 'C', 'H': 'D', 'K': 'M', 'M': 'K', 'N': 'N', 'R': 'Y', 'S': 'S', 'T': 'A', 'V': 'B', 'W': 'W', 'X': 'X', 'Y': 'R'} >>>
GC 含量
基因组 DNA 碱基组成(GC 含量)被预测会显著影响基因组功能和物种生态。GC 含量是 GC 核苷酸数除以总核苷酸数。
要获得 GC 核苷酸含量,请导入以下模块并执行以下步骤:
>>> from Bio.SeqUtils import GC >>> nucleotide = Seq("GACTGACTTCGA",IUPAC.unambiguous_dna) >>> GC(nucleotide) 50.0
转录
转录是将 DNA 序列转换为 RNA 序列的过程。实际的生物转录过程是进行反向互补 (TCAG → CUGA) 以获得以 DNA 为模板链的 mRNA。然而,在生物信息学以及 Biopython 中,我们通常直接使用编码链,我们可以通过将字母 T 更改为 U 来获得 mRNA 序列。
以上的一个简单示例如下:
>>> from Bio.Seq import Seq >>> from Bio.Seq import transcribe >>> from Bio.Alphabet import IUPAC >>> dna_seq = Seq("ATGCCGATCGTAT",IUPAC.unambiguous_dna) >>> transcribe(dna_seq) Seq('AUGCCGAUCGUAU', IUPACUnambiguousRNA()) >>>
要反转转录,将 T 更改为 U,如下面的代码所示:
>>> rna_seq = transcribe(dna_seq) >>> rna_seq.back_transcribe() Seq('ATGCCGATCGTAT', IUPACUnambiguousDNA())
要获得 DNA 模板链,请反向互补反向转录的 RNA,如下所示:
>>> rna_seq.back_transcribe().reverse_complement() Seq('ATACGATCGGCAT', IUPACUnambiguousDNA())
翻译
翻译是将 RNA 序列翻译成蛋白质序列的过程。考虑如下所示的 RNA 序列:
>>> rna_seq = Seq("AUGGCCAUUGUAAU",IUPAC.unambiguous_rna) >>> rna_seq Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())
现在,将 translate() 函数应用于上面的代码:
>>> rna_seq.translate() Seq('MAIV', IUPACProtein())
上面的 RNA 序列很简单。考虑 RNA 序列 AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA 并应用 translate():
>>> rna = Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA', IUPAC.unambiguous_rna) >>> rna.translate() Seq('MAIVMGR*KGAR', HasStopCodon(IUPACProtein(), '*'))
此处,终止密码子用星号“*”表示。
在 translate() 方法中,可以停止在第一个终止密码子处。要执行此操作,可以在 translate() 中赋值 to_stop=True,如下所示:
>>> rna.translate(to_stop = True) Seq('MAIVMGR', IUPACProtein())
这里,终止密码子未包含在结果序列中,因为它不包含终止密码子。
翻译表
NCBI 的遗传密码页面提供了 Biopython 使用的翻译表的完整列表。让我们看一个标准表的例子来可视化代码:
>>> from Bio.Data import CodonTable >>> table = CodonTable.unambiguous_dna_by_name["Standard"] >>> print(table) Table 1 Standard, SGC0 | T | C | A | G | --+---------+---------+---------+---------+-- T | TTT F | TCT S | TAT Y | TGT C | T T | TTC F | TCC S | TAC Y | TGC C | C T | TTA L | TCA S | TAA Stop| TGA Stop| A T | TTG L(s)| TCG S | TAG Stop| TGG W | G --+---------+---------+---------+---------+-- C | CTT L | CCT P | CAT H | CGT R | T C | CTC L | CCC P | CAC H | CGC R | C C | CTA L | CCA P | CAA Q | CGA R | A C | CTG L(s)| CCG P | CAG Q | CGG R | G --+---------+---------+---------+---------+-- A | ATT I | ACT T | AAT N | AGT S | T A | ATC I | ACC T | AAC N | AGC S | C A | ATA I | ACA T | AAA K | AGA R | A A | ATG M(s)| ACG T | AAG K | AGG R | G --+---------+---------+---------+---------+-- G | GTT V | GCT A | GAT D | GGT G | T G | GTC V | GCC A | GAC D | GGC G | C G | GTA V | GCA A | GAA E | GGA G | A G | GTG V | GCG A | GAG E | GGG G | G --+---------+---------+---------+---------+-- >>>
Biopython 使用此表将 DNA 翻译成蛋白质以及查找终止密码子。