fastaやfastqは馴染みがあっても,fastbというフォーマットは知らない人が多いと思う.これははfastaファイルをバイナリ形式に変換したフォーマットのことで,SAMとBAMの関係と同じようなものである.

ALLPATHS-LGにおいて,アセンブリの評価のためにリファレンスゲノムを入力として与える際には,REFERENCE_DIRにgenome.fastaとgenome.fastbという2つのファイルが必要になる.genome.fastaに関しては,データベースなり自前で用意した配列を使えばいいのだが,genome.fastbに関しては手作業で変換をしなければならない.ということで,今回はfastaとfastbの変換の方法について,メモ程度ではあるが書いてみることにする.

fastaからfastbへの変換

fastaとfastbの変換には,ALLPATHS-LGをインストールした時に付属してくるFasta2Fastbを使う.使い方は簡単で,以下のように,IN=にfastaファイル名を,OUT=にfastbファイル名を指定すればよい.OUTのオプションは必須ではなく,同じファイル名のfastbファイルが生成される.

1
Fasta2Fastb IN=genome.fasta OUT=genome.fastb

このコマンドで生成されるファイルは2つあり,

  • genome.fastb
  • genome.fastb.names

が作られる.

genome.fastb.namesファイルの中にはfastaファイルの中に書かれていた各配列の名前(>で始まる行)が書かれているが,このファイルはALLPATHS-LGでは使用せず,特に意味は無さそう.

fastbからfastaへの変換

逆にfastbからfastaに戻す場合には,Fastb2Fastaというコマンドがある.使い方はFasta2Fastbと同様である.

fastbフォーマットの圧縮効率

試しにシミュレーションとして,1本の配列の長さが1Mbのfastaファイルを作成して,fastbフォーマットに変換してファイルサイズを比較してみた.結果は

  • 1Mb : 993K -> 245K

となり,約25%と四分の一ほどのサイズになった.他にも,配列の本数などを変えて幾つか実験してみたが大体同じ圧縮率になった.

他にも…

ALLPATHS-LGに付属しているFastb関連コマンドには,変換コマンド以外にもFastbMergeやFastbQualbToFastq,FastbQualbTrimReverse,FastbStatsなどが用意されている.どのコマンドも--helpを付けることで使い方が表示されるので,使う時には参考になる.

普段から圧縮が必要になるほど大規模なfastaファイルを扱うことはそうそうないとは思うが,こういう形式のファイルがあるということを覚えておいて損はないと思う.

参考

http://www.broadinstitute.org/crd/wiki/index.php/Fastb