Biopython 简明教程

Biopython - Advanced Sequence Operations

在本章中,我们将讨论 Biopython 提供的某些高级序列特征。

Complement and Reverse Complement

可以对核苷酸序列进行反向互补以获取新序列。此外,互补序列可以进行反向互补以获取原始序列。Biopython 提供了两种方法来执行此功能 − complementreverse_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 Content

预测基因组 DNA 碱基组分(GC 含量)会显著影响基因组功能和物种生态。GC 含量是 GC 核苷酸数除以总核苷酸数。

要获取 GC 核苷酸含量,请导入以下模块并执行以下步骤:

>>> from Bio.SeqUtils import GC
>>> nucleotide = Seq("GACTGACTTCGA",IUPAC.unambiguous_dna)
>>> GC(nucleotide)
50.0

Transcription

转录是将 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())

Translation

翻译是将 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())

此处,终止密码子不包含在结果序列中,因为它不包含终止密码子。

Translation Table

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 翻译成蛋白质,以及找到终止密码子。