塩基配列の操作【Python】

Biopythonでは配列データをSeqオブジェクトとして保持します。Seqオブジェクトとすることで、核酸配列の転写・翻訳などの遺伝子情報の操作に特有の操作を行うことが可能になります。

バイオインフォマティクス環境

以下の方法で構築した環境であることを前提として説明します。

※ 検証はしていませんが、プログラム自体は基本的にmacOS、Linuxでも動作すると思われます。

Seqオブジェクトの取得

まずは、Seqオブジェクトの取得方法を説明します。

文字列からSeqオブジェクトの作成する

Seqクラスのイニシャライザに配列を表す文字列を指定することでSeqオブジェクトを作成できます。以下の例では、塩基配列(ATTAAAGGTTTA)を表すSeqオブジェクトを作成します。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTA')
print(seq)

SeqRecordオブジェクトからSeqオブジェクトを取得する

SeqRecordオブジェクトのseq属性を用いてSeqオブジェクトを取得できます。以下の例では、TogoWSを用いて取得したSeqRecordオブジェクトからSeqオブジェクトを取得します。

from Bio import TogoWS, SeqIO
with TogoWS.entry('nucleotide', 'NC_045512.2') as handle:
    record = SeqIO.read(handle, "genbank")  # SeqRecordオブジェクトの取得
    seq = record.seq      # SeqRecordオブジェクトからSeqオブジェクトの取得
    print(record.seq)

塩基配列の操作

塩基配列の反転

塩基配列を5’→3’の向きであれば3’→5’へ、3’→5’の向きであれば5’→3’へと反転させます。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTATACCTTCCCAGG')
print(seq[::-1])
GGACCCTTCCATATTTGGAAATTA

塩基配列の相補・反転相補

Seq.complementメソッドを用いて、与えられた塩基配列に対して、アデニン(A)-チミン(T)、グアニン(G)-シトシン(C)と対応させた相補配列を取得します。もともとの塩基配列の向きが5’→3’であれば、ここで取得した相補配列の向きは3’→5’になります。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTATACCTTCCCAGG')
print(seq.complement())
TAATTTCCAAATATGGAAGGGTCC

Seq.reverse_complementメソッドを用いて、与えられた塩基配列の相補配列を反転させて取得します。これによりもともとの塩基配列の向きが5’→3’なら、その相補配列も5’→3’の向きで取得できます。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTATACCTTCCCAGG')
print(seq.reverse_complement())
CCTGGGAAGGTATAAACCTTTAAT

塩基配列の転写

Seq.transcribeメソッドを用いて、与えられた塩基配列をDNAのセンス鎖としてmRNAに転写させて得られた塩基配列を取得します。ここで得られる塩基配列は与えられた塩基配列のチミン(T)をウラシル(U)に変えたものになります。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTATACCTTCCCAGG')
print(seq.transcribe())
AUUAAAGGUUUAUACCUUCCCAGG

塩基配列のアミノ酸への翻訳

Seq.translateメソッドを用いて、与えられたDNAの塩基配列から転写・翻訳を経て合成されるアミノ酸配列、もしくはmRNA配列から翻訳されて合成されるアミノ酸配列を取得します。

from Bio.Seq import Seq
seq = Seq('ATTAAAGGTTTATACCTTCCCAGG')
print(seq.translate())
IKGLYLPR

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)