Biopython - 高階序列操作



本章將討論 Biopython 提供的一些高階序列功能。

互補序列和反向互補序列

核苷酸序列可以反向互補以獲得新的序列。此外,互補序列可以反向互補以獲得原始序列。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 含量

基因組 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 翻譯成蛋白質以及查詢終止密碼子。

廣告
© . All rights reserved.