「Eos」の版間の差分

提供: Eospedia
移動: 案内検索
(1996年〜2011年)
 
(3人の利用者による、間の14版が非表示)
行5: 行5:
  
 
=== 1996年〜2011年 ===
 
=== 1996年〜2011年 ===
 [[Eos]]の特徴は、4つのサポート(Support)を提供していることです。上記の内の二つは、[[開発者]]向けに、残りの二つは[[ユーザ]]向けに提供している。前者の[[開発者]]向けのサポートは、[[オブジェクト指向型ライブラリ]]と[[プロトタイプ・ソースコード]]であり、後者の[[ユーザー]]向けのサポートは、それぞれ実行できる[[コマンド群]]([[Small Tools]])と、それらを統合した[[統合プログラム]]である。[[統合プログラム]]には、[[Display2]]のようなコマンドの一つとして提供しているものと、[[make]]のためのMakefile(今後、将来は[[PIONE]]で、GUI付きで統合予定)である。
+
 [[Eos]]の特徴は、4つのサポート(Support)を提供していることである。上記の内の二つは、[[開発者]]向けに、残りの二つは[[ユーザ]]向けに提供している。前者の[[開発者]]向けのサポートは、[[オブジェクト指向型ライブラリ]]と[[プロトタイプ・ソースコード]]であり、後者の[[ユーザ]]向けのサポートは、それぞれ実行できる[[コマンド群]]([[Small Tools]])と、それらを統合した[[統合コマンド]]である。[[統合コマンド]]には、[[Display2]]のようなコマンドの一つとして提供しているものと、[[make]]のためのMakefile(今後、将来は[[PIONE]]で、GUI付きで統合予定)である。
  
 
=== 2011年〜 ===
 
=== 2011年〜 ===
 [[ユーザ]]と[[開発者]]というカテゴリに加え、[[エキスパート]]という階層を対象として加えることとした。まだまだ開発途上である。エキスパートとは、電子顕微鏡画像処理やスクリプト原語レベルでのプログラミングが可能な層を指している。
+
 [[ユーザ]]と[[開発者]]というカテゴリに加え、[[エキスパート]]という階層を対象として加えることとした。エキスパートとは、例えば、電子顕微鏡画像処理やスクリプト言語レベルでのプログラミングが可能な層を指している。さらに、当初は、シェルスクリプトを通して、makeにて統合化する仕組みで動かしていたが、計算機環境そのものがクラウド化、協調計算システム化する時代へと変化してきたことに伴い、それを支援するプラットフォームへと変革を図ることとした.
 +
 まだまだ開発途上であるが、スクリプト言語の層を充実させ、GUIなどの表示に関するものも含めた階層を示すことを目指している。
  
 +
 [[ロードマップ]]を別途示しているが、今後の発展の方向性を示している。
  
 
== ユーザ向けサポート ==
 
== ユーザ向けサポート ==
行15: 行17:
  
 
=== コマンド群(Small Tools) ===
 
=== コマンド群(Small Tools) ===
 Eosの発想は、UNIXのそれに近い。UNIXでは、ls/cat/grep/sedなどの各々特定の仕事に特化したコマンドが提供され、[[シェルスクリプト]]の形でそれらをまとめ、より大きな仕事を行う。Eosでも、基本的には、小さいプログラムを組み合わせて、大きな仕事(単粒子解析や電子線トモグラフィー)などを[[統合プログラム]]により行う。前処理・後処理に利用する一般的な画像処理、3次元再構成のためのコマンド、電子顕微鏡画像の補正に関わるもの、など、[[コマンド一覧]]や[[機能別コマンド一覧]]の詳細は各々別ページを参考にしてもらいたい。
+
 Eosの発想は、UNIXのそれに近い。UNIXでは、ls/cat/grep/sedなどの各々特定の仕事に特化したコマンドが提供され、[[シェルスクリプト]]の形でそれらをまとめ、より大きな仕事を行う。Eosでも、基本的には、小さいプログラムを組み合わせて、大きな仕事(単粒子解析や電子線トモグラフィー)などを[[統合コマンド]]([[Integration Tools]])により行う。前処理・後処理に利用する一般的な画像処理、3次元再構成のためのコマンド、電子顕微鏡画像の補正に関わるもの、など、[[コマンド一覧]]や[[機能別コマンド一覧]]の詳細は各々別ページを参考にしてもらいたい。
  
=== 統合プログラム(Integration Tools) ===
+
 加えて、それぞれのコマンド群を、ブラウザGUIを通して実行するためのツールの開発を行い、[[Zephyr]]として公開した。。
 Eosでは、電子線トモグラフィーなどの大きな仕事はこの統合プログラムを用いて行う。また、オブジェクト指向型ライブラリをAPIとして用いる統合コマンドも提供している。前者は、コマンド群を用いた統合化を、後者の多くは、ライブラリにより提供されるAPIによる統合化を提供している。
+
 
 +
=== [[統合コマンド]]([[Integration Tools]]) ===
 +
 Eosでは、電子線トモグラフィーなどの大きな仕事はこの[[統合コマンド]]を用いて行う。また、オブジェクト指向型ライブラリをAPIとして用いる統合コマンドも提供している。前者は、コマンド群を用いた統合化を、後者の多くは、ライブラリにより提供されるAPIによる統合化を提供している。
  
 
==== Makefileによる提供 ====
 
==== Makefileによる提供 ====
 
 電子顕微鏡画像の補正、電子線トモグラフィー、単粒子解析(参照有単粒子解析、ランダムコニカル傾斜、コモンライン型3次元再構成など)、らせん対象性をつかった3次元再構成等の基本[[Makefile]]を提供している。これらのMakefileは、更に個々のユーザー(ここでは、エキスパートと呼ぶ)により、改良され、個々の解析に利用されている。Eosでは基本的な[[Makefile]]を主として提供する。
 
 電子顕微鏡画像の補正、電子線トモグラフィー、単粒子解析(参照有単粒子解析、ランダムコニカル傾斜、コモンライン型3次元再構成など)、らせん対象性をつかった3次元再構成等の基本[[Makefile]]を提供している。これらのMakefileは、更に個々のユーザー(ここでは、エキスパートと呼ぶ)により、改良され、個々の解析に利用されている。Eosでは基本的な[[Makefile]]を主として提供する。
 +
 +
==== [[PIONE]]による提供 ====
 +
 現在、分散環境で実行できることを目指して、新しい統合プログラム([[PIONE]])の開発が急ピッチで進んでいる。既に、β版は公開されており、画像処理部分の移植が進んでいる。
  
 
==== 統合コマンド ====
 
==== 統合コマンド ====
 
 [[Display2]]、[[ctfDisplay]]、[[molvie]]、[[smolet]]のように、オブジェクト指向型ライブラリやコマンド群をAPIとして用い、統合したプログラムも提供する。Display2は[[ImageJ]]を目指して、[[smolet]]はetomoや3dmodを目指して、作成を続けているものである。
 
 [[Display2]]、[[ctfDisplay]]、[[molvie]]、[[smolet]]のように、オブジェクト指向型ライブラリやコマンド群をAPIとして用い、統合したプログラムも提供する。Display2は[[ImageJ]]を目指して、[[smolet]]はetomoや3dmodを目指して、作成を続けているものである。
 
  
 
== 開発者向けサポート ==
 
== 開発者向けサポート ==
行31: 行37:
  
 
=== [[オブジェクト指向型ライブラリ]] ===
 
=== [[オブジェクト指向型ライブラリ]] ===
 こちらは画像処理のためのAPI群の固まりです。構造体の受け渡しによりデータのやりとりを行う事を念頭にいれて作成してきました。詳細なAPIに関しては、[[オブジェクト指向型ライブラリ]]もしくは、[[機能別オブジェクト指向型ライブラリ]]をご覧下さい。
+
 こちらは画像処理のためのAPI群の固まりです。構造体の受け渡しによりデータのやりとりを行う事を念頭にいれて作成してきました。詳細なAPIに関しては、[[オブジェクト指向型ライブラリ]]、[[ライブラリ(API)一覧]]もしくは、[[機能別ライブラリ(API)一覧]]をご覧下さい。
  
 
=== [[プロトタイプ・ソースコード]] ===
 
=== [[プロトタイプ・ソースコード]] ===
 
 こちらはC言語のプロトタイプソースコードの提供を行うものです。[[OptionControlFile]]という定義ファイルを元に、入出力引数とその値のやりとりのためのプロトタイプソースコードを提供します。
 
 こちらはC言語のプロトタイプソースコードの提供を行うものです。[[OptionControlFile]]という定義ファイルを元に、入出力引数とその値のやりとりのためのプロトタイプソースコードを提供します。

2015年5月13日 (水) 18:24時点における最新版

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

Eosの概要

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

1996年〜2011年

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

2011年〜

 ユーザ開発者というカテゴリに加え、エキスパートという階層を対象として加えることとした。エキスパートとは、例えば、電子顕微鏡画像処理やスクリプト言語レベルでのプログラミングが可能な層を指している。さらに、当初は、シェルスクリプトを通して、makeにて統合化する仕組みで動かしていたが、計算機環境そのものがクラウド化、協調計算システム化する時代へと変化してきたことに伴い、それを支援するプラットフォームへと変革を図ることとした.  まだまだ開発途上であるが、スクリプト言語の層を充実させ、GUIなどの表示に関するものも含めた階層を示すことを目指している。

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

ユーザ向けサポート

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

コマンド群(Small Tools)

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

 加えて、それぞれのコマンド群を、ブラウザGUIを通して実行するためのツールの開発を行い、Zephyrとして公開した。。

統合コマンド(Integration Tools)

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

Makefileによる提供

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

PIONEによる提供

 現在、分散環境で実行できることを目指して、新しい統合プログラム(PIONE)の開発が急ピッチで進んでいる。既に、β版は公開されており、画像処理部分の移植が進んでいる。

統合コマンド

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

開発者向けサポート

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

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

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

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

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