Biopythonでは配列データをSeqオブジェクトとして保持します。Seqオブジェクトとすることで、核酸配列の転写・翻訳などの遺伝子情報の操作に特有の操作を行うことが可能になります。
バイオインフォマティクス環境
以下の方法で構築した環境であることを前提として説明します。
- Windows10 + WSL (WindowsユーザーのためのPythonを用いたゲノム解析環境)
※ 検証はしていませんが、プログラム自体は基本的にmacOS、Linuxでも動作すると思われます。
[toc]Seqオブジェクトの取得
まずは、Seqオブジェクトの取得方法を説明します。
文字列からSeqオブジェクトの作成する
Seqクラスのイニシャライザに配列を表す文字列を指定することでSeqオブジェクトを作成できます。以下の例では、塩基配列(ATTAAAGGTTTA)を表すSeqオブジェクトを作成します。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTA' ) print (seq) |
SeqRecordオブジェクトからSeqオブジェクトを取得する
SeqRecordオブジェクトのseq属性を用いてSeqオブジェクトを取得できます。以下の例では、TogoWSを用いて取得したSeqRecordオブジェクトからSeqオブジェクトを取得します。
1 2 3 4 5 | 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’へと反転させます。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTATACCTTCCCAGG' ) print (seq[:: - 1 ]) |
GGACCCTTCCATATTTGGAAATTA
塩基配列の相補・反転相補
Seq.complementメソッドを用いて、与えられた塩基配列に対して、アデニン(A)-チミン(T)、グアニン(G)-シトシン(C)と対応させた相補配列を取得します。もともとの塩基配列の向きが5’→3’であれば、ここで取得した相補配列の向きは3’→5’になります。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTATACCTTCCCAGG' ) print (seq.complement()) |
TAATTTCCAAATATGGAAGGGTCC
Seq.reverse_complementメソッドを用いて、与えられた塩基配列の相補配列を反転させて取得します。これによりもともとの塩基配列の向きが5’→3’なら、その相補配列も5’→3’の向きで取得できます。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTATACCTTCCCAGG' ) print (seq.reverse_complement()) |
CCTGGGAAGGTATAAACCTTTAAT
塩基配列の転写
Seq.transcribeメソッドを用いて、与えられた塩基配列をDNAのセンス鎖としてmRNAに転写させて得られた塩基配列を取得します。ここで得られる塩基配列は与えられた塩基配列のチミン(T)をウラシル(U)に変えたものになります。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTATACCTTCCCAGG' ) print (seq.transcribe()) |
AUUAAAGGUUUAUACCUUCCCAGG
塩基配列のアミノ酸への翻訳
Seq.translateメソッドを用いて、与えられたDNAの塩基配列から転写・翻訳を経て合成されるアミノ酸配列、もしくはmRNA配列から翻訳されて合成されるアミノ酸配列を取得します。
1 2 3 | from Bio.Seq import Seq seq = Seq( 'ATTAAAGGTTTATACCTTCCCAGG' ) print (seq.translate()) |
IKGLYLPR
コメント