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