「Eos」の版間の差分

提供: Eospedia
移動: 案内検索
(2011年〜)
(2011年〜)
行9: 行9:
 
=== 2011年〜 ===
 
=== 2011年〜 ===
 
 [[ユーザ]]と[[開発者]]というカテゴリに加え、[[エキスパート]]という階層を対象として加えることとした。エキスパートとは、例えば、電子顕微鏡画像処理やスクリプト言語レベルでのプログラミングが可能な層を指している。まだまだ開発途上であるが、スクリプト言語の層を充実させ、GUIなどの表示に関するものも含めた階層を示すことを目指している。
 
 [[ユーザ]]と[[開発者]]というカテゴリに加え、[[エキスパート]]という階層を対象として加えることとした。エキスパートとは、例えば、電子顕微鏡画像処理やスクリプト言語レベルでのプログラミングが可能な層を指している。まだまだ開発途上であるが、スクリプト言語の層を充実させ、GUIなどの表示に関するものも含めた階層を示すことを目指している。
 +
 
 [[ロードマップ]]を別途示しているが、今後の発展の方向性を示している。
 
 [[ロードマップ]]を別途示しているが、今後の発展の方向性を示している。
  

2013年5月16日 (木) 19:27時点における版

Eos(イオス)は若林 健之安永 卓生により、1996年に開発され、公開された電子顕微鏡画像解析ソフトウェアである。もともと50個程度のプログラムの集合であったが、学生を含めて、その後のソフトウェアの開発に伴い、現在は400近くのプログラムの集合体からなる、電子顕微鏡画像処理に関する統合環境となっている。

Eosの概要

 Eosの名称は、Extensible Object-oriented Systemの頭文字をとったもので、ギリシャ神話の暁の女神であるエーオースにかけて命名した。ここから多くのプログラムが開発されていくことに願いを込めている。迅速な開発と多くのコマンドの発信、統合によるユーザにとっても有効なプログラムの開発といった思いが強かった。現在では、こうしたプログラム環境のことをプラットフォームと呼ぶことが定着しているが、開発当時は普及した言葉では無かったために、「環境」と呼んでいた。

1996年〜2011年

 Eosの特徴は、4つのサポート(Support)を提供していることである。上記の内の二つは、開発者向けに、残りの二つはユーザ向けに提供している。前者の開発者向けのサポートは、オブジェクト指向型ライブラリプロトタイプ・ソースコードであり、後者のユーザー向けのサポートは、それぞれ実行できるコマンド群(Small Tools)と、それらを統合した統合プログラムである。統合プログラムには、Display2のようなコマンドの一つとして提供しているものと、makeのためのMakefile(今後、将来はPIONEで、GUI付きで統合予定)である。

2011年〜

 ユーザ開発者というカテゴリに加え、エキスパートという階層を対象として加えることとした。エキスパートとは、例えば、電子顕微鏡画像処理やスクリプト言語レベルでのプログラミングが可能な層を指している。まだまだ開発途上であるが、スクリプト言語の層を充実させ、GUIなどの表示に関するものも含めた階層を示すことを目指している。

 ロードマップを別途示しているが、今後の発展の方向性を示している。

ユーザ向けサポート

 Eosは、電子顕微鏡画像処理を行うユーザー向けに、2012年時点で400に近いプログラムを提供し、また、それらを統合して、電子線トモグラフィーや単粒子解析などを行うための統合プログラムを提供している。

コマンド群(Small Tools)

 Eosの発想は、UNIXのそれに近い。UNIXでは、ls/cat/grep/sedなどの各々特定の仕事に特化したコマンドが提供され、シェルスクリプトの形でそれらをまとめ、より大きな仕事を行う。Eosでも、基本的には、小さいプログラムを組み合わせて、大きな仕事(単粒子解析や電子線トモグラフィー)などを統合プログラムにより行う。前処理・後処理に利用する一般的な画像処理、3次元再構成のためのコマンド、電子顕微鏡画像の補正に関わるもの、など、コマンド一覧機能別コマンド一覧の詳細は各々別ページを参考にしてもらいたい。

統合プログラム(Integration Tools)

 Eosでは、電子線トモグラフィーなどの大きな仕事はこの統合プログラムを用いて行う。また、オブジェクト指向型ライブラリをAPIとして用いる統合コマンドも提供している。前者は、コマンド群を用いた統合化を、後者の多くは、ライブラリにより提供されるAPIによる統合化を提供している。

Makefileによる提供

 電子顕微鏡画像の補正、電子線トモグラフィー、単粒子解析(参照有単粒子解析、ランダムコニカル傾斜、コモンライン型3次元再構成など)、らせん対象性をつかった3次元再構成等の基本Makefileを提供している。これらのMakefileは、更に個々のユーザー(ここでは、エキスパートと呼ぶ)により、改良され、個々の解析に利用されている。Eosでは基本的なMakefileを主として提供する。

統合コマンド

 Display2ctfDisplaymolviesmoletのように、オブジェクト指向型ライブラリやコマンド群をAPIとして用い、統合したプログラムも提供する。Display2はImageJを目指して、smoletはetomoや3dmodを目指して、作成を続けているものである。


開発者向けサポート

 Eosのもう一つの大きな目的は、必要なプログラムの迅速開発です。特に、開発が専門家でない研究者ができるだけ早く、必要なアルゴリズムを試行できる、適用できることを目的として、1996年に、それまでの開発プログラムをまとめる形で、開発しました。その頃の知識でまとめ上げ、また、C++等のオブジェクト指向言語がまだ発展途中で仕様が固まっていない頃のお話ですので、C++とシェルスクリプト(Awk含む)にて開発をしました。現在、改めて見直すと古い仕様であったり、今では問題となるような部分もあります。現在、継続的にそれぞれのリファクタリングを実施し、かつ、オブジェクト指向系のスクリプト言語(ruby等)で全体を包む作業を進めています。また、この15年で、当初、pvmで開発していた並列処理の部分も時代と共に異なるアーキテクチャの並列処理分散処理となってきましたので、それに対応する仕組みを考えています。

オブジェクト指向型ライブラリ

 こちらは画像処理のためのAPI群の固まりです。構造体の受け渡しによりデータのやりとりを行う事を念頭にいれて作成してきました。詳細なAPIに関しては、オブジェクト指向型ライブラリもしくは、機能別オブジェクト指向型ライブラリをご覧下さい。

プロトタイプ・ソースコード

 こちらはC言語のプロトタイプソースコードの提供を行うものです。OptionControlFileという定義ファイルを元に、入出力引数とその値のやりとりのためのプロトタイプソースコードを提供します。