SeqIO

SeqIO クラスでは様々な形式(フォーマット)のファイルを取り扱うことができる。読み込みと書き込みの両方をサポートしているため、SeqIO を利用することで、ファイルのフォーマットの変換も簡単に行えるようになる。

FASTA 形式のファイルを読み込む例。1 つ目の引数にファイルのパスを、2 つ目の引数にファイルの形式を指定する。

from Bio import SeqIO

fa = SeqIO.parse("sample.fa", "fasta")

SeqIO に指定できる形式としては以下の様なものがある。その他にも多くのファイル形式に対応している。詳細は BioPython wiki に書かれている。

  • genbank : GenBank 形式
  • fastq : Sanger FASTQ 形式
  • nexus : NEXUS 形式、マルチアラインメント
  • swiss : UniProt 形式(フラットファイル形式)
  • uniprot-xml : UniProt XML 形式

ファイルの読み込み

SeqIO は基本的にファイルの読み込みと書き出しの機能を提供している。読み込んだ内容は、そのファイル形式に応じて、様々なクラスのオブジェクトに保存される。例えば、SeqIO で GenBank 形式のファイルを読み込むと、ファイル中の各エントリーは SeqRecord クラスのオブジェクトに保存され、また、Feature 情報は SeqFeature に保存される。

FASTA 形式のファイルを読み込んで、配列の ID を出力する例。

from Bio import SeqIO

# for 文を利用してマルチ FASTA ファイルを読み込む
seqio = SeqIO.parse("complete.1.genomic.fa", "fasta")
for seq_record in seqio:
        print seq_record.id

ファイルの書き出し

SeqIO の write メソッドを利用して、ファイルの書き出しを行える。GenBank 形式のファイルを読み込んで、FASTA 形式で書き出しを行うといったことが可能である。

from Bio import SeqIO

# 読み込み
seqio = SeqIO.parse("sample.gbff", "genbank")

# 書き出し
SeqIO.write(seqio, "sample.fa", "fasta")