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
|
|
このコマンドで生成されるファイルは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ファイルを扱うことはそうそうないとは思うが,こういう形式のファイルがあるということを覚えておいて損はないと思う.