2006年06月17日

JOELibでバベる!

JOELibを使って簡易babelを作成してみます。元々babel自体がOELibで作られていますので、JOELibでbabelっぽいプログラムを作るのは容易だろうと想像できます。

JOELibではSimpleReaderクラスを用いてファイルの入力を行います。
SimpleReaderクラスのインスタンスの生成時に、ファイル形式の情報が必要となるため、IOTypeHolderクラスを用いて、その情報を取得します。

 IOType inType = IOTypeHolder.instance().filenameToType(inputf);

ここでは、インスタンスの数を1つに保つために、GoFのSingletonパターンが使われていると思います。

 sreader = new SimpleReader(inputs,inType);

また、ファイルの出力は、SimpleWriterクラスを用いて行います。

 IOType outType = IOTypeHolder.instance().filenameToType(outputf);
 swriter = new SimpleWriter(outputs,outType);

そして、JOEMolクラスのインスタンスの生成を次のように行います。
 
 JOEMol mol = new JOEMol(inType,outType);

分子の入力は、readNextメソッドで行い、出力はwriteNextメソッドで行っています。

 while(true){
  if(!sreader.readNext(mol))
    break;
  swriter.writeNext(mol);
 }

実行
# java jbabel inputfile outputfile

拡張子で、ファイル形式の判定を行っていますので、とてもシンプルになりました。ファイル変換だけをみればbabelと同等の機能をもっていると思います。

以下に今回のソースコードを示しております。変換可能なファイル形式は、ココに記載されています。

簡単にbabelもどきができましたね(当たり前ですか..)。個人的にJOELibのクラス構成をとても気に入っていますので、ちょくちょくメモする予定です。

Jbabel.java



banner_02.gif
人気ブログランキング(クリックして応援してね)




posted by わばのり at 07:16| Comment(0) | TrackBack(0) | JOELib | このブログの読者になる | 更新情報をチェックする

2006年06月05日

Javaでケムインフォ2

先日、Javaのケムインフォマティクス用ライブラリであるCDKを紹介しましたが、もう一つ有名なライブラリとして、JOELibがあります。JOELibは、OpenBabelのライブラリであるOELibのJava版です。とはいえ、OELibを単にJavaに置き換えたというだけでなく、JOELibにしかないクラスもあり、より拡張されたライブラリといえます。

個人的に、CDKは、多機能ではあるが、ややクラスの使い勝手が悪いところ及び一部に実装がまだ十分でないのでは?(新しい機能を積極的に取り入れているからでしょう)というところがあり、一方、JOELibはCDK程の多機能さはないが、クラスの使い勝手や実装も吟味されているという印象をもっています。

JOELibのおもしろそうなところは、Matlab interfaceを持っているところです。Matlabといえば、その汎用シミュレーションパッケージであるSimulinkも便利であり、制御系では必須のツールだと思います。さらに、最近では、システムバイオロジーの分野でも広く利用されていると思いますので、Matlab interfaceに関しては、ちょくちょく調べようと思っています。

ただ、どちらもケムインフォマティクスの基礎となるライブラリは十分に実装されていますし、JOELib中のJOEMolとCDK中のMoleculeクラスは変換可能ですので、2つのライブラリを同時に利用しながら、アプリケーションの開発もできます。

インストー方法も含め今後メモを積み重ねたいと思っています。



banner_02.gif
人気ブログランキング(クリックして応援してね)
posted by わばのり at 08:55| Comment(7) | TrackBack(0) | JOELib | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。