DDBJ/GenBank parser説明書

= これは何？ =

DDBJフラットファイルの書式を文脈自由文法で表し、それをトップダウンパーサとして実装したプログラムである.
 * 与えられたファイルがDDBJフラットファイルの書式に従わない場合には、エラーを報告する. 一般的なコンピュータ言語のコンパイラ同様、エラーの種類を報告することができる.
 * 書式エラーがなければ、DDBJフラットファイルのフィールドをタブ区切りのファイルとして出力する.

注意：
 * 今のところ、まだ文脈自由文法のルールは暫定的であり、完成版ではない.
 * DDBJフラットファイル用に開発されたが、GenBankフラットファイルもほとんど同じ書式なので、今のところそのまま動作する. 将来的には両者が区別できるようにルールを加えたほうが良い.
 * 今のところ再帰降下法を用いた手書きのパーサーなので、将来的にはもっと格好よく実装したほうがいいかもしれない.

= 使い方 =

インストール
1. subversionリポジトリよりダウンロード svn co http://rgm2.lab.nig.ac.jp/svn/repos/ddbj_lib

2. maven2にて管理されているので、以下のコマンドでddbj_lib/targetディレクトリの下にjarが作られる. 先にMavenの使い方を参照して$HOME/.m2/settings.xmlを作成すること. cd ddbj_lib mvn package mvn assembly:assembly -DdescriptorId=jar-with-dependencies

単一ファイルのパース
以下のコマンドにより、infile.seqというDDBJ （またはGenBank）フラットファイルをパースして、結果をoutfile.parsed.txtというファイルに書き出す.

java -cp ddbj_lib-0.0.1-SNAPSHOT-jar-with-dependencies.jar ddbj.ddbj.flatfile.parser.Parser infile.seq outfile.parsed.txt

複数ファイルのパース
カレントディレクトリ直下のff/というディレクトリ中にある全ての*.seqファイルをパースして、結果をffout/というディレクトリの下に書き出す. ThreadPoolを使用しており、並列に実行される. 並列の度合いはNumberOfThreadsパラメータで指定できる. デフォルトは10である.

パース結果
例としてddbjhum1.seqをパースして、出力されたファイルの最初の100行だけとりだしたもの.
 * http://rgm3.lab.nig.ac.jp/Repository2/ddbj_lib__doc/parsed.example.txt

もっと完全な例が見たければ自分でパースするか、私に連絡してください.

= 内部構造 =

ソースコードを読んでください.
 * 「いまどきのコンピュータ言語の作り方」を参考にしてますので、これを読まれるとわかりやすいかもしれません.