Biopython-advanced-sequence-operations

提供:Dev Guides
移動先:案内検索

Biopython-高度なシーケンス操作

この章では、Biopythonが提供する高度なシーケンス機能のいくつかについて説明します。

補数および逆補数

ヌクレオチド配列を逆補完して、新しい配列を取得できます。 また、補完されたシーケンスを逆補完して元のシーケンスを取得することもできます。 Biopythonは、この機能を実行するための2つの方法- 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をタンパク質に変換し、停止コドンを見つけます。