| E-CELL2 User's Manual |  | 2章 E-CELL2.20チュートリアル [ 1章 : 3章 : 4章 : 5章 ][ トップ ]

INDEX

1 E-CELL2の特徴 2 E-CELL2.20のデモンストレーション 3 E-CELL2の操作方法 3.1 EXCELでのスプレッドシート作成 3.2 ルールファイルとルール・インターメディエイト・ファイル作成 4 ユーザー定義Reactorの作成 4.1 Reactorの概略 4.2 Reactorの作成手順

# 1 E-CELL2の特徴

この章では、E-CELL2.20の特徴と操作方法について、概略を説明して いきます。E-CELLの理論的背景についての詳細は、 the E-CELL.Org(http://www.e-cell.org)で 配布(予定)のチュートリアルを参照して下さい。

細胞をモデル化するためには、構成要素の抽象化が必要になってきます。 E-CELLでは、細胞の構造と、細胞内の化学反応を表現するために、 "Substance-Reactor Model"を採用しています。 このモデルには、以下のような特徴があります。

- 細胞の状態を｢物質(Substance)の量｣の集合として捉える。
- 細胞の活動は化学反応式(Reactor)による｢Substanceの量の変化｣で 表される。
- Substanceの複数のノードが、Reactorによって連結される有向グラフ になる。

図1. Substance-Reactor Model

- 物質の局在(System)を用いて、細胞の入れ子構造を表現する。

図2. Systemを考慮したSubstance-Reactor Model

ここで注意しなければならないのは、物質(Substance)という概念が、 通常の化学分子、イオン、ラジカルのみならず、浸透圧や細胞の体積 といった、物理的要素まで含んでいることです。

E-CELLでは、細胞内が均一であることを仮定しています。従って、拡散を 取り扱うには、物質の量が異なる、複数の均一系を用いる必要があります。

E-CELLでは細胞内の様々な現象をシミュレーションするために、 酵素反応のような反応速度（流束）に基づく反応と化学平衡のような一瞬で起こる反応を混在させることができます。

まず、流束に基づく(微分方程式として解ける)化学反応は、E-CELL内部では 次のようにして扱われます。

- 通常(Normal)Reactorを使用して、化学反応式の反応速度を変更する。
- 常微分方程式を解くのに、ルンゲクッタ法を用いる。
- 代表的な反応式としては、Michaelis-Menten反応が挙げられる。

化学平衡等の(代数方程式として解ける)化学反応については、次のようにして 扱われます。

- 裏口(Postern)Reactorを使用して、Substanceの量を直接操作する。
- 迅速平衡や浸透圧の変化などがこのタイプの反応に当てはまる。

ソフトウェア工学的な見地からは、E-CELL2は以下のような特徴を 持っています。まず、C++言語で記述されている部分がどうなっているかを 見てみましょう。この部分はE-CELL2の心臓にあたり、E-CELL2が 細胞をどう表現しているかを示す、世界観(Ontology)に相当します。構成部品は オブジェクト指向モデリングの用語ではクラスと呼ばれ、各々のクラスが 作用しあって、シミュレーションを行うための計算機構が実現されます。

図3. E-CELL2の内部構成

Linux用に開発された、E-CELL1から変更された点を挙げておきましょう。

- 多重継承の廃止
- フレンド関数廃止
- AccumulatorクラスおよびIntegratorクラスのSubstanceクラスへの統合
- StepperクラスのSystemクラスへの統合

これらの処理は、Linux上で動作していたE-CELL1の移植性を高めるために 行われました。一方、GUI(Graphic User Interface)や、E-CELL2の操作を 自動化するための、スクリプトファイルを解釈する部分は、Java言語で記述されています。

E-CELL2には、対話的に操作可能なGUI版と、コマンドラインから実行 可能なバッチ版があります。2章では、GUI版についてのみ説明を行います。バッチ版の説明は 3章2.9節"E-CELL2 バッチ版の使用とLoggerの説明" にあります。GUI版とバッチ版の精度は、それぞれ64ビットと80ビットであることに注意して ください。GUI版で精度が低くなるのは、JavaのJava Native Interfaceの機構に数値計算の 精度の制約が存在するためです。

# 2 E-CELL2.20のデモンストレーション

それでは、具体的なモデルを用いて、E-CELL2を動かしてみましょう。 この節では、ヒト赤血球の代謝モデルを用いて、E-CELL2を使ってみます。 何故赤血球がシミュレーションの対象として適しているのでしょうか？ それには、以下のような理由が挙げられます。

- 成熟した赤血球細胞では、転写、翻訳、複製が行われず単純である。
- 実験材料として扱いやすく、大量の生化学的実験データの蓄積がある。

赤血球の主な代謝系は、解糖系、ペントースリン酸経路、核酸合成経路 より構成されています。この他に、酸素運搬を行うヘモグロビンが大量に 存在していて、赤血球は、これらの代謝系による自己調節機能を持った、 大量のヘモグロビンが詰まった袋になぞらえることができます。 今回のモデルでは、代謝経路の再構成を目的としていますが、将来的には、 ヘモグロビンの運搬も別のモデルで表現され得ると考えられます。

図4. ヒト赤血球の代謝経路の模式図

このヒト赤血球細胞の代謝モデルは、慶應義塾大学の中山講師、冨田教授が 中心になって構築されました。より詳細な情報については、the E-CELL.Org の研究紹介ページ( http://www.e-cell.org/poster/ynakayam/ISMB99/ppframe.htm) をご覧下さい。今回のデモンストレーションでは、正常なヒト赤血球細胞の代謝モデルを 扱っていますが、遺伝子異常による貧血のシミュレーションも行われています。 興味のある方は、中山講師(ynakayam@sfc.keio.ac.jp)にメールを送って下さい。

赤血球細胞のシミュレーションを見るには、まずCygwinを起動しましょう。 [スタート]からCygwinを選択するか、デスクトップ上のアイコンをクリック します。

図5. Cygwinのアイコン

Cygwin上で、赤血球モデル用のE-CELL2.20があるディレクトリに "cd"コマンドでカレントディレクトリを変更します。このコマンドの詳細については、UNIXのコマンド リファレンスを読むか、"man cd"と入力してマニュアルを参照して下さい。 標準的なインストールでは、"C:\E-CELL2\erythrocyte"が赤血球モデルが ある場所になります。ディレクトリの表現方法が、UNIX形式になることに 注意してください。カレントディレクトリを変更したら、"./ECELL2.BAT"と入力して"Enter"キーを 押しましょう。

図6. 赤血球モデルのある場所へカレントディレクトリを変更

赤血球モデル用のE-CELL2が起動します。E-CELL2 は、"default.ecs"というファイルがECELL2.BATと同じディレクトリにあると、 このファイルを読んでシミュレーション開始を試みます。今回の場合、図4の赤血球モデル用に default.ecsが用意されているので、自動的にデモンストレーションが開始されます。 シミュレーションのための初期値や、パラメータを記述しているファイルは、"Erythrocyte_v236.eri" です。

".ecs"で表されるファイルは一般に、E-CELL2を自動化するための スクリプトで、この中にE-CELL2を操作するための命令が書き込まれて います。詳細は、2.3節と3.4節を参照して下さい。スクリプト実行に より、図4に示した赤血球モデルのシミュレーションが開始されます。 このスクリプトでは、11秒に達した時点で計算が停止しますが、一般には、 約10,000秒経過した時点で定常状態に達します。

図7. 赤血球モデルのシミュレーション

スクリプトによる停止命令前にE-CELL2を終了させるには、コントロール パネルの"Stop"ボタンを押してシミュレーションを停止し、[File]メニュー から[Quit]を選択します。

次の節では、E-CELL2の操作方法について、一通り解説されます。 操作方法を理解したら、E-CELL2を再び起動して、色々と操作して 遊んでみましょう。

# 3 E-CELL2の操作方法

具体的な説明に入る前に、シミュレーション用の簡単なモデルを 紹介しておきます。下の図は、E-CELLモデリスト達に"Toy(おもちゃ)" と呼ばれる、最も簡単なフィードバック系です。

図8. Toyモデル

このモデルでは、5つの"S"ubstrate(基質)、 4つの"E"nzyme(酵素)、 1つの"C"omplex(複合体)が登場し、 4つのReactor(化学反応式)によりSubstrate間が結びつけられます。 Reactorは、例えばMichaelis-Menten反応のような化学反応式を体現しています。 これらの反応は、培養細胞であれば培地に相当するEnvironment(環境)の中に浮かぶ Cell(細胞)の中に存在しています。細胞は、Membrane(膜)により 外界と内部が区別され、細胞の内部はCytoplasm(細胞質)で満たされています。

これで、化学反応のネットワークを静的なグラフとして表現することが できました。

しかし、実際にシミュレーションを始めるためには、個々の反応が、 どのようなパラメータ(例えば初期値や反応速度)のもとで、どのように 反応が進むか(どの化学反応式を選ぶか)ルールを決めてあげる必要が あります。

E-CELLでは、通常".er"の拡張子で識別される、ルールファイルという シミュレーションのルールを記述します。それから、E-CELLに付属する ツールを使って、ルールファイルから、ルール・インターメディエイト・ ファイルという、E-CELLが読み込み可能なファイルを作成します。 ルールファイルは、通常".eri"の拡張子で識別されます。

E-CELLを初めて使う人が、最初からルールファイルを記述するのは 難しいので、ルールファイル作成を支援するために、スプレッド・ シートから、ルールファイルを作成するツールも提供されています。

## 3.1 EXCELでのスプレッドシートの作成

ここでは、EXCELのような表計算ソフトウェアでシミュレーション用 スプレッド・シートを作成し、E-CELL2のルール・インターメディエイト・ ファイルに変換する方法の概略を説明します。

表計算ソフトウェアには色々な種類のものがありますが、 Office XP Standard英語版のEXCELを例に取って、ルールファイルを 作成するのに最低限必要な操作方法について説明します。

図9. EXCELの画面(1)

E-CELL2のサンプルのルールファイルを読み込んでみましょう。 [File]メニューから[Open]を選び、ファイル選択画面を開きます。 フォルダのアイコンをクリックしながら、"C:\E-CELL2\standard\SAMPLE \sample\sample.txt"を探し、このファイルをEXCELに読み込んでください。

図10. EXCELの画面(2)

E-CELL2用ルールファイルは、タブ区切りで書く決まりになっているので、 "sample.txt"もタブ区切りで記述されています。上のラジオボタンを選択 して、次に進んで下さい。

図11. EXCELの画面(3)

フィールドの区切り文字を聞かれるので、タブを選択して、次へ進んで 下さい。他のエディタで各フィールドの引用符として"を利用してタブ区切り ファイルを作成した場合は、文字列の引用符として、"を指定することに 注意してください。引用符に何も使用していなければ、"{none}"を 選択してください。

図12. EXCELの画面(4)

各々のカラムのデータ形式を行う画面ですが、特に設定の必要はないので "Finish(完了)"ボタンを押して、ファイルの読み込みを開始します。

図13. EXCELの画面(5)

図8のToyモデルのネットワークの構造と、反応や物質量の初期値の 記述がEXCEL上に表示されました。ここでは、EXCELの使用方法の 説明を目的としているので、ルールの説明は後に譲ります。

実際には、ルールの記述方法に従って、新規にスプレッドシートを 作成したり、各セルの記述を編集した結果を保存することになります。

図14. EXCELの画面(6)

編集したファイルの保存方法について説明します。[File]メニューから、 [Save As]を選んで、保存しましょう。"Text(Tab delimited)" -- タブ区切り形式のテキストとして保存してください。EXCEL形式の ファイル(".xls"拡張子)として保存すると、スプレッド・シートから ルールファイルに変換することが出来ないので注意しましょう。

デフォルトのインストールでは、"C:\E-CELL2\tools\rule"に、ルール ファイル作成のためのツールが置かれます。このディレクトリに編集 したファイルを保存すると、後の作業がしやすくなります。

図15. Excelの画面(7)

保存の際に、EXCELのタブ区切りファイルの形式と不適合であるという メッセージ画面が現れますが、"Yes(はい)"ボタンを押して保存して ください。

図16. EXCELの画面(8)

以上でEXCELの操作方法の説明は終わりです。

## 3.2 ルールファイルとルール・インターメディエイト・ファイル作成

スプレッドシートからルールファイル、ルールファイルから ルール・インターメディエイト・ファイルを作成するための 手順を説明します。ルールファイルについての詳細は、4章を 参照してください。

EXCEL(あるいはStar Suiteなどの表計算ソフトウェア)を起動して、 "sample.txt"と"toy.txt"を読み込みましょう。"toy.txt"は、 Toyモデルのスプレッド・シートが一部未完成なファイルです。 これらのファイルは、チュートリアル用に"tools\rule"ディレクトリ に置いてあります。標準的なインストールでは、"C:\E-CELL2\tools\rule" 以下(Cygwinでは、"/cygdrive/c/E-CELL2/rule")にあります。

E-CELLのSubstance-Reactorモデルには、 "System"、"Substance"、 "Reactor"があると既に説明しました。 スプレッドシートの一番左のカラムは、Typeと呼ばれ、各フィールドにはこれらの内のひとつが 入ります。Systemは、細胞の構造や物質の局在を示すために使用され、 代表的なものとして、"Environment(環境)"、"Cell(細胞)"、 "Membrane(膜)"、"Cytoplasm(細胞質)"があります。System についての詳細な説明は、4.2.2節を参照して下さい。ここでは、"Inside(内部)"、 "Outside(外部)"を区別することで、細胞等の入れ子構造が表現できることを覚えておいて下さい。

Substanceは広い意味での物質を意味します。スプレッドシートの 中には、次の表のような記述があると思います。"Toy"モデルにおける Substanceは、化学反応のための材料と、反応を触媒する酵素になります。

表2.1 化学反応の材料となるSubstanceの記述例

Type | path | ID | Name | QTY
--- | --- | --- | --- | ---
Substance | /CELL/CYTOPLASM | SA | Substance A | 1000
Fix
Substance | /CELL/CYTOPLASM | SB | Substance B | 0
Substance | /CELL/CYTOPLASM | SC | Substance C | 0

PathはSubstanceが存在する場所で、UNIXのディレクトリ・パス風に 記述されます。IDは指定したSubstanceのIDで、必須項目です。 Nameは指定したSubstanceの名称です。QtyとConcはどちらか片方を 記述しなければならない項目で、QtyはSubstanceの"Quantity(個数)"、 Concは"Concentration(濃度)"の初期値です。Concの単位にはmol/l を使用します。QuantityやConcが一定と見なせる場合は、"Fix"タグ をつけて、数値を固定することが出来ます。Substanceの詳細については、4.2.3節を参照して下さい。

以下は酵素に関する記述です。

表2.2 酵素として反応を触媒するSubstanceの記述例

Type | path | ID | Name | CONC
--- | --- | --- | --- | ---
Substance | /CELL/CYTOPLASM | E.bc | Enzyme B | 0.02
Substance | /CELL/CYTOPLASM | E.cd | Enzyme C | 0.01
Substance | /CELL/CYTOPLASM | C.E.bc-SD | Complex of E.bc and SD | 0

>     <課題>
>     1. "toy.txt"中で、Substance DとSubstance Eの記述が一部
>        抜けています。"sample.txt"を見ながら埋めてみましょう。
>     2. 同様に、Isomerase of AとIsomerase of Dの記述を補って
>        下さい。

一方、Reactorは反応が実体化したもので、例えば以下のように 定義されます。

表2.3 Reactorの記述例

Type | Class | path | ID | Name | S_ID | S_path | S_coeff | P_ID | P_path | P_coeff | C_ID | C_path | Arg_tag | Arg_coeff
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Reactor | MichaelisUniUniReactor | /CELL/CYTOPLASM | E.ab-0 | A->B | SA | /CELL/CYTOPLASM | 1 | SB | /CELL/CYTOPLASM | 1 | E.ab | /CELL/CYTOPLASM | KmS | 10
KcF | 5
Reactor | MichaelisUniUniReactor | /CELL/CYTOPLASM | E.bc-0 | B->C | SB | /CELL/CYTOPLASM | 1 | SC | /CELL/CYTOPLASM | 1 | E.bc | /CELL/CYTOPLASM | KmS | 0.1
KcF | 3
Reactor | MichaelisUniUniReactor | /CELL/CYTOPLASM | E.cd-0 | C->D | SC | /CELL/CYTOPLASM | 1 | SD | /CELL/CYTOPLASM | 1 | E.cd | /CELL/CYTOPLASM | KmS | 0.1
KcF | 2

PathはReactorが存在する場所で、UNIXのディレクトリ・パス風に 記述されます。S_IDは"Substrate(基質)"で、化学反応の出発物質 を意味し、S_Pathはその存在する場所です。P_IDは"Product(産物)"で、 化学反応の結果生成した物質を意味し、P_Pathはその存在する場所です。 C_IDは"Catalyst(触媒)"で、反応を促進あるいは抑制する化学物質 を意味し、C_Pathはその存在する場所です。Arg_tag列には、Reactorの 種類によって定義されている、定数名が入力されます。Arg_coeffには、Arg_tagに対応する定数値が入力されます。

IDが!で始まるReactorは、代数式のリアクターで、微分方程式では 記述できない反応を記述するのに使用されます。"Toy"モデルでは、 "!EQ-Ebc-D"が代数式のリアクターです。Ebc+SD<->C.Ebc-Dという 反応が、EbcとSDからC.Ebc-Dが生成する反応と、C.Ebc-Dの分解する 反応の可逆反応なため、微分方程式では解くことができません。 そのため、迅速平衡用の"RapidEquibriumPReactor"を利用します。

>     <課題>
>     1. ReactorのD->Eの反応について、記述を補ってください。

Reactorの詳細については、4章2.4節"スプレッドシートの記述・ Reactorパート"を参照して下さい。 ここまでの作業が終わったら、"toy.txt"を保存して、 ルールファイルを作成する作業に入りましょう。

スプレッド・シートからルールファイルを作成するには、 次の処理をする必要があります。

>     % ./ss2er.pl < filename.txt > filename.er

"filename"には、あなたが実際に作成したファイルの 名称を入れてください。スプレッドシートからルールファイル に変換するには、"tools\rule"ディレクトリにある"ss2er.pl" というPerlスクリプトを使用します。このスクリプトの出力結果 は、通常ルールファイルを表す".er"という拡張子を付けた ファイルに書き出します。

それでは、操作の実際をCygwinを使いながら説明していきましょう。

まず、Cygwinを起動しましょう。デスクトップのアイコンを クリックするか、[スタート]からCygwinを選択してください。

図17. Cygwinのアイコン

"cd"コマンドで、"tools\rule"ディレクトリにカレントディレクトリを変更します。 標準的なインストールでは、"C:\E-CELL2\tools\rule"に、 ルール作成のためのツール類が置いてあります。 このディレクトリは、Cygwin上では下図のように認識されます。

図18. ルール作成用ツールのあるディレクトリへカレントディレクトリを変更

ss2er.plを利用して、スプレッド・シートからルールファイルを 作成します。先程完成させた、"toy.txt"を使用すると、より理解が 深まるでしょう。このスクリプトを利用するには、PerlがCygwin上 の"/usr/bin/perl"にインストールされている必要があります。 CygwinをCD-ROMからインストールした場合は、Perlが既に利用可能 になっているはずです。

この例では、"sample.txt"から"foo.er"を生成しています。 "sample.txt"は、Toyモデルのスプレッド・シートです。

図19. スプレッド・シートからルールファイルへの変換

生成されたルールファイルを、"less"というコマンドを使って 読んでみましょう。

図20. lessコマンド

このコマンドを使うと、1ページずつファイルの内容を見ることが できます。前に進むには"F"キー、戻るには"B"キーを使用します。 終了する場合は、"Q"キーを押します。

図21. lessコマンドによるルールファイルの表示(1)

"F"キーを押してみましょう。

図22. lessコマンドによるファイルの表示(2)

以上でスプレッドシートをルール・ファイルに変換することが できました。もちろん、スプレッドシートをいきなりエディタで記述することも 慣れてくれば可能になると思います。そのための訓練を積むには、"foo.er" 等を解読しながら、自分で".er"ファイルを書いてみてください。

E-CELL2でシミュレーションを行うには、ルールファイルから、 更にルール・インターメディエイト・ファイルに変換する必要が あります。

ルールファイルから、ルール・インターメディエイト・ファイルを 作成するには、次の処理を行う必要があります。

>     ./er2eri.sh filename

"filename"は、ルールファイルから、拡張子".er"を除いた部分を 入力してください。"foo.er"であれば、"s"と入力します。 ルールファイルからルール・インターメディエイト・ファイル に変換するには、"tools\rule"ディレクトリにある"er2eri.sh" というバッチファイルを使用します。このバッチファイルを実行 すると、ルール・インターメディエイト・ファイルを表す".eri" という拡張子を付けたファイルに書き出します。

それでは、操作の実際をCygwinを使いながら説明していきましょう。

バッチファイル"er2eri.sh"は、ルールファイルを作成するのに 使用した、"ss2er.pl"と同じディレクトリにあります。"er2eri.sh" を実行してみましょう。

図23. er2eri.shを実行

この例では、"foo.er"から、"foo.eri"を生成しています。"less" コマンドを用いて、ルール・インターメディエイト・ファイルを 見てみましょう。

図24. lessコマンドでルール・インターメディエイト・ファイルを表示

"foo.eri"を、E-CELL2に読み込ませてみましょう。説明を簡単に するために、"foo.eri"を、E-CELL2の標準リアクターモデル用 ディレクトリ("standard")にコピーします。コピーには"cp"コマンドを 用います。標準的なインストールでは、"C:\E-CELL2\standard"が 標準リアクター用モデルが置かれるディレクトリになります。

図25. ルール・インターメディエイト・ファイルのコピー

標準リアクターモデル用ディレクトリに"cd"コマンドでカレントディレクトリを変更し、 E-CELL2用バッチファイルを使用して、E-CELL2を起動しましょう。

図26. バッチファイルからE-CELL2を起動

ここまでは、説明を簡単にするために、ルールファイルとルール・インターメディエイト・ファイル作成支援 ツールがあるディレクトリでの作業を前提にしていました。しかし、現実的には、Cygwinのどこからでも これらのツールが使えるほうが便利です。そのためには、これらのツールが置かれているディレクトリ (デフォルトでは、"C:\E-CELL2\tools\rule"、Cygwin上では"/cygdrive/c/E-CELL2/tools/rule "になります。)にPATHを通す必要があります。PATHの通し方については、1章3.1節"Windows環境での PATH環境設定変数の設定"を参照して下さい。PATHを通すと、これまでコマンドを打つ時に使用していた、 現在いるディレクトリを示す"./"をコマンドの先頭につける必要がなくなります。

それから、Windowsでの改行コードは"CR+LF"ですが、UNIXでの改行コードは"LF"です。 従って、Windowsで作成したルールファイル等を、Linux上のE-CELL1を読み込むことが できません。"CR"を除去するためのツールを用意してあるので、必要に応じて使用してください。 ルールファイル作成支援ツールが置かれているディレクトリで、以下の操作を行ってください。第一引数が 入力元、第二引数が出力先のファイルになります。

>     ./rmcr.exe input-filename output-filename

Linux上でC Shellがもし利用可能であれば、"rmcr.csh"というスクリプトを使って、 "CR"を除去することが可能です。このスクリプトとWindows上で作成したファイルを Linuxに転送し、スクリプト実行時に、第一引数にWindowsで作成したファイルを指定すると、 そのファイルから"CR"を取り除くことができます。

ルールファイルやルール・インターメディエイト・ファイル作成に関する説明は以上です。 次のE-CELLの基本的操作を習得するステップに進みましょう。

## E-CELL2の基本的な操作方法

作成したルール・インターメディエイト・ファイルを用いて、 E-CELL2の基本的な操作を覚えましょう。E-CELL2を起動すると、 まずコントロールパネルが現れます。

図27. E-CELL2のコントロールパネル

まず、プルダウンメニューについて簡単に説明します。

図28. [File]メニュー

[File]メニューには、[Load Rule]、[Load Script]、[Load Cell State]、 [Save Cell State]、[Quit]があります。

[Load Rule]は、ルール・インターメディエイト・ファイルを 読み込む際に選択します。

[Load Script]は、E-CELL2の操作を自動化するためのスクリプトを 読み込む際に選択します。

[Load Cell State]は、途中経過を記録したファイルを読み込んで、 シミュレーションを再開する際に選択します。

[Save Cell State]は、シミュレーションの途中経過を記録した ファイルの書き出しに使用します。

[Quit]を選択すると、E-CELL2が終了します。

図29. [New Interface]メニュー

[New Interface]メニューには、[Tracer]、[SubstanceWindow]、 [ReactorWindow]があります。

[Tracer]は、Substanceの量や、Reactorの活性を描画する、[Tracer] 画面を生成するために選択します。

[SubstanceWindow]は、Substanceの操作を行う画面を開くために 選択します。

[ReactorWindow]は、Reactorの操作を行う画面を開くために選択します。

図30. [Windows]メニュー

[Windows]メニューには、[MessageWindow]と[PreferenceWindow] があります。

[MessageWindow]は、E-CELL2からのメッセージ画面を表示させるのに 使用します。

[PreferenceWindow]は、シミュレーションの1ステップの時間幅と、 [Tracer]画面更新のタイミングを設定する際に選択します。

図31. [Help]メニュー

[Help]メニューには、[Version Information]があり、これを選択すると バージョン情報が表示されます。

以上が、メニューに関する説明です。

ルール・インターメディエイト・ファイルを読み込むには、[File]メニュー -[Load Rule]を選択します。ファイルを選択する画面が表示されるので、 ルール・インターメディエイト・ファイルを意味する、".eri"で終わる ファイルのアイコンをクリックし、"Open(開く)"を選択しましょう。

図32. ルール・インターメディエイト・ファイル選択画面

指定されたファイルが正常に読み込まれると、Cygwinの画面上に、 "Condition Good."と表示されます。

図33. ルール・インターメディエイト・ファイル読み込み時メッセージ

次に、[Tracer]画面を開いて、Substanceの量をグラフとして表示する ための準備をします。[New Interface]-[Tracer]を選択するとTracer が表示されます。

図34. Tracerの画面

Tracerの左下にある"Add"ボタンを押して、[Entry Selector]を 表示します。左パネルをクリックして、Cytoplasmに位置している Substanceを選択してみましょう。

図35. Entry Selectorの画面(1)

Substanceのラジオボタンをクリックすると、Substanceが右の パネルに表示されます。Reactorを表示させることも可能です。

図36. Entry Selectorの画面(2)

複数のSubstanceやReactorを選択する方法を説明します。 まとめて選択するには、"Shift"キーを押しながら、マウスを 左クリックしてください。飛び飛びに選択するには、"Ctrl"キー を押しながらマウスを左クリックしてください。選択したら、 "Ok"ボタンを押します。この状態で、コントロールパネルの "Start"を押してシミュレーションを開始することができるように なります。

一枚のTracerには、8種類までのSubstanceやReactorを表示可能です。

図37. E-CELL2のシミュレーションの様子

ルールに従って、Substanceの量や、Reactorの活性の変化がTracerに 表示されます。Tracerに表示されたシミュレーションの結果は、Tracerの "Save"ボタンを押すと保存することが出来ます。詳細は、3.2.7節を 参照して下さい。

Substanceの量を手動で変更して、全体の系にどのような影響が及ぶか 見ることも出来ます。[New Interface]メニューから、[Substance Window] を選んでみましょう。

図38. SubstanceWindow用のEntry Selectorの画面

このEntry Selectorは、Substance専用なので、Reactorを選ぶことは できません。Substanceを選択し、"Ok"ボタンを押すと、選択された Substanceの個々の詳細情報を表示する画面が現れます。

図39. SubstanceWindowの画面

"+", "-"ボタンを押すか、"Quantity"あるいは"Concentration" テキストフィールドに値を直接入力して、注目するSubstanceの量を人為的に 増減することができます。"Fix"チェックボタンをチェックすると、 そのSubstanceの量を、一定に保つことが可能になります。SubstanceWindow の操作を終了するには、"Close"ボタンを押します。

Substanceの量を変化させて、系にどのような影響が出るか見てみましょう。

図40. Substanceの量の変更により生じた、系の振る舞いの変化の例

この例では、"Substance D"を急激に増加させています。このSubstanceを 増加させても、系の中の反応に補償されて、徐々に量が減っていくのが 分かります。

同様に、Reactorの活性を詳細表示することもできます。 コントロールパネルの、[New Interface]メニューから、[ReactorWindow] を選びましょう。Reactor用の[Entry Selector]が表示されます。

図41. ReactorWindow用のEntry Selectorの画面

SubstanceWindowのときと同様に、左パネルに表示されるSystemを クリックして、目的のReactorを探します。Reactorを選択したら、 "Ok"ボタンをクリックしましょう。

図42. ReactorWindowの画面

この画面では、あるReactorについて、その名前、使用している反応式の 種類、反応の活性値が表示されます。"Show lists"ボタンを押すと、更に 詳細な情報が表示され、"Close"ボタンを押すと画面が閉じます。

"Show lists"ボタンを押してみましょう。

図43. ReactorWindow拡大画面

上記の情報の他に、各種パラメータの初期値、反応に関与する物質について の情報が表示されます。画面を元の大きさに戻す場合は、"Hide lists"ボタン を押し、閉じるには"Close"ボタンを押します。

図44. PreferenceWindowの画面

次は、PreferenceWindowです。この画面を呼び出すには、コントロール パネルの[Windows]メニューから、[PreferenceWindow]を選びます。 この画面は、シミュレーションのための計算の1ステップの時間幅(単位: 秒) と、Tracerの画面更新を何ステップ毎に行うかを制御するために 用意されています。この時間幅を短く取ると、計算の精度は上がりますが、 シミュレーションにかかる時間は長くなります。逆に、時間幅を長く取ると、 シミュレーションにかかる時間は短くなりますが、計算の精度が荒くなり、 結果を信頼することができなくなってしまいます。初期設定では、 計算の1ステップが0.001秒、画面の更新頻度が100回に1回に設定されて います。

図45. PreferenceWindowの操作について

この画面はダイアログなので、"Ok"ボタンで決定するか"CANCEL"で閉じるか しないと、他の画面の操作を行うことができません。

図46. MessageWindowの画面

MessageWindowには、E-CELL2からのメッセージが表示されます。このウィンドウを閉じるには、右上の"x"ボタンを 押して下さい。

図47. Version Informationの画面

コントロールパネルの[Help]メニューからは、現在のところ、 [Version Information]のみ選択することができ、Version Information には、E-CELL2のバージョンの情報が表示されます。

この節の最後に、シミュレーションの状態の保存方法を説明します。 シミュレーションの途中経過を保存するには、コントロールパネル上で "Stop"ボタンを押し、[File]メニューから[Save Cell State]を選択します。

図48. Cell State Fileの保存

細胞モデル全体の状態を記述したファイルは、拡張子".cs"が付きます。 適当なディレクトリ上に、保存してください。この形式のファイルは、 コントロールパネルの[File]メニューから、[Load Cell State]を選択 することで読み込むことが可能で、保存された状態からシミュレーション を再開することが可能です。

## スクリプトファイルによる自動化

大きなシミュレーションになってくると、色々な作業をいちいち手動で 行うのが大変です。そこでE-CELLでは、"スクリプト"という機構を用意 していて、スクリプトの中に記述された命令をE-CELLに読み込ませることで、 シミュレーションを自動化することが出来ます。このスクリプトファイル には、通常".ecs"という拡張子で識別されます。

ここでは、スクリプトの書き方について簡単に説明し、E-CELL1とE-CELL2 で、スクリプトファイルの形式が異なる部分についても説明します。

まず、以下のファイルを見てください(行頭の数字は行番号です。)。

>     01  TmpDir /temp
>     02  LoadRule sample.eri
>     03
>     04  NewInterface Tracer A_B_C
>     05    AddTrace    Substance:/CELL/CYTOPLASM:SA
>     06    AddTrace    Substance:/CELL/CYTOPLASM:SB
>     07    AddTrace    Substance:/CELL/CYTOPLASM:SC
>     08    SaveAt      500
>     09
>     10  UpdateInterval 100
>     11
>     12  Run 501
>     13  SaveCellState sample-after500s.cs
>     14  Stop

      1行目: 一時ファイルを保存するディレクトリを指定します。
             /tempはカレントドライブの直下のtempディレクトリを意味し、インストール時に作成されます。
      2行目：読み込みたいルール・インターメディエイト・ファイル
    　　　   (".eri"ファイル)を指定します。
    4-8行目：Tracerに関する表示
    4-7行目：AddTraceはTracer内でのみ宣言される。
             引数にかかれたSubstance、もしくはReactorをTracerの表示に
             加える。引数は、IDだけでなくそれが存在するSystemとTypeを
             含めて示す必要があります。
      8行目：このTracer上に表示させた物質を、E-CECLL時間の500秒後に
             保存します。Tracer内でのみ宣言されます。
      9行目：NewInterfaceの終わりは、空白行が必要になります。
     10行目：Tracerに表示させることを100ステップごとに行います。
     12行目：501秒間シミュレーションを行います。
     13行目：細胞モデルの状態を"sample-after500s.cs"というファイルに
             保存します。
     14行目：シミュレーションを停止します。

上記のファイルを、"toy.ecs"のような、適当な名前で保存します (ただし、US-ASCII以外の文字を使用しないで下さい。)。保存する ディレクトリは、"sample.eri"がある、"C:\E-CELL2\standard"に しましょう。これ以外のディレクトリにE-CELL2をインストールしている 場合は、適当に読み替えてください。Cygwinを起動して、このディレクトリ(Cygwin上では、 "/cygdrive/c/E-CELL2/standard")に"cd"コマンドでカレントディレクトリを変更します。

E-CELL2の標準リアクターモデル版を起動しましょう。以下の操作をCygwin上で行います。 filename.ecsは、あなたが作成したファイルの名前を入れてください。

>     % ./ECELL2.BAT -f filename.ecs

"-f"オプションは、コマンドラインからスクリプトファイルを読み込ませる ために使用します。くり返しシミュレーションを行うのに便利なので覚えておきましょう。

何が起こりましたか？

それから、E-CELL2から実装された"Logger"という機構についても紹介して おきます。Loggerは、細胞の状態をシミュレーション中に随時記録する 機構です。細胞の状態をスナップショットで保存するよりも、先進的で、 スクリプトファイルに以下のような記述を追加することで利用できます。

>     NewInterface Logger test-log
>       AddTrace    Substance:/CELL/CYTOPLASM:SA
>       AddTrace    Substance:/CELL/CYTOPLASM:SB
>       AddTrace    Substance:/CELL/CYTOPLASM:SC
>       AddTrace    Substance:/CELL/CYTOPLASM:SD
>       AddTrace    Substance:/CELL/CYTOPLASM:E.bc
>       AddTrace    Substance:/CELL/CYTOPLASM:C.Ebc-D
>       AddTrace    Reactor:/CELL/CYTOPLASM:E.ab-0
>       AddTrace    Reactor:/CELL/CYTOPLASM:E.bc-0
>       AddTrace    Reactor:/CELL/CYTOPLASM:E.cd-0

最初に作成した、".ecs"ファイルの9行目の後にLoggerに関する記述を 追加して、E-CELL2に読み込ませてみましょう。

以下は、Loggerの特徴です。

1. カレントディレクトリーに、"Logger"というディレクトリーができ、そこに、Tracerの"SaveAt"機能で作られるのと同様の書式で、SubstanceまたはReactorごとのファイルが記録されます。
2. 実行中随時ファイルに記録するので、もしE-CELL2がクラッシュしても、記録が残ります。
3. 仮想記憶機能を使わないので、Tracerによる記録より高速です。

シミュレーションが停止したら、Loggerディレクトリ以下の".ecd"ファイル をメモ帳(notepad)などで開いてみましょう。ファイル名が個々のSubstance やReactorを示していて、"時刻"、"瞬間数"、"平均数"、"最大数"、 "最少数"、"瞬間濃度"、"平均濃度"、"最大濃度"、"最小濃度"の情報が 記載されています。

# 4 ユーザー定義Reactorの作成

標準リアクターにないような化学反応を記述したい場合は、あなた自身が、 E-CELL2用にReactorをデザインする必要があります。

## 4.1 Reactorの概略について

- ReactorとはSubstanceの量の時間的変化を計算するものである。
- そのソースはC++言語を用いて記述している。
- E-CECLLでReactorを書くとはリアクター定義(Reactor Description, RD)ファイル（filename.rd）を書くことである。
- RDファイルには、Reactorの仕様と実行される処理の内容が書かれている。
- rd2ch.pl, rd2tex.plを使ってRDファイルはtexファイル（LaTeX形式のReactor Spec Sheet）や".dll"ファイル（E-CELL Systemがロードできる形式)などに変換される。

RDファイルとはキーワードと値の組からなる行を、必要な数だけ並べて作成するものです。

RDファイルの構成は大きく

- 一般情報に関する部分
- Reactor Spec Sheetに関する部分
- Reactor Source Codeに関する部分

の3つに大別できます。

リアクター定義ファイルを作成する際には以下の約束事に注意する必要があります。

- キーワードはアルファベットの大文字又は_で構成され、スペースを含まない。
- キーワードは @ または % で始まる。 @ で始まる行は単純にその内容が読み込まれる。% で始まる行はその中身を","で区切ることによって、配列として処理される。
- # で始まる行はコメント文とみなされる。行頭の # をそのまま出力する際は、\# とするかスペースを１つ入れる。ただし、行頭以外の # はそのまま出力される。
- 行頭にキーワードのない行は、それより前の行の内容に続くものとして解釈される。（Spec Sheet に変換する際に改行したい場合、改行したい個所に\\を入れる。）
- キーワードは必要でないものに関しては省略できる。

RDファイルの例を以下に示します。

1. これはMichaelisUniUniReactorについてのファイルです。このReactorは次の反応速度式に従います。

   v = | KcF[E][S]
   KmS + [S]

   MichaelisUniUniReactorについてのファイル

   `@CLASSNAME:MichaelisUniUniReactor @BASECLASS: FluxReactor @AUTHOR: E-CECLL Tutorial @EMAIL: tutorial@e-cell.org @DATE: 2000 12/12 %VERSION: ecs-v1, 0.1 @BRIEF_DESCRIPTION:Unireactor enzyme activity of which kinetics can be described by the Henri-Michaelis-Menten equation. @DESCRIPTION:A reactor class for unireactant enzyme activity where kinetics can be described by the Henri-Michaelis-Menten equation derived from rapid equilibrium assumptions. \vspace{0.2cm} This reactor is applicable to the following reaction sequence: \begin{center} $E+S \rightleftharpoons ^{k_{1}}_{k_{-1}}ES \rightarrow^{k_{p}}E+PS \end{center} \vspace{0.3cm} @EQUATION:$$v=\frac{(K_{cF}[E] [S]}{K_{mS}+[S]}$$ %SUBSTANCE:Substrate, 1, 1 %SUBSTANCE:Product, 1, 1 %SUBSTANCE:Catalyst, 1, 1 %SUBSTANCE:Effector, 0, 0 %PARAMETER: KmS, Float, mol/l, Michaelis Constant of Substrate %PARAMETER: KcF, Float, mol/l, Catalytic Constant (Forward) @REACT_FUNC: Float S = substrate(0)->concentration(); Float E = catalyst(0)->quantity(); Float velocity = KcF * E * S; Float Den = KmS + S; velocity /= Den; process(velocity);`

2. 一般情報に関するキーワード
   - @CLASSNAME: 作成するReactorのクラス名(ファイル名から.rdを削除した形)
   - @BASECLASS: そのクラスが継承する元の基底クラス
   - @AUTHOR: 作成者名
   - @EMAIL: E-Mail address
   - @DATE: 作成日
   - %VERSION: E-CECLLSystemのバージョン ,このReactorのバージョン
   - @BRIEF_DESCRIPTION: そのReactorの簡単な説明

3. Reactor Spec Sheetに関するキーワード
   - @DESCRIPTION: そのReactorの詳しい説明
   - @EQUATION: Reactorの式を LaTeXのdisplaymath環境で以下のいずれかの方法で記述
     1. $$<数式の記述>$$
     2. \begin{displaymath}<数式の記述>\end{displaymath}
     3. \[<数式の記述>\]
   - %SUBSTANCE: Substanceの定義で、Substrate、Product、Catalyst、 Effectorの4種類が用意されています
   - @NOTES: Reactorの実装に関する注意点を書きます

4. Reactor Source Codeに関するキーワード
   - %PARAMETER: パラメータ名、パラメータの型、単位、 パラメータに関する記述を、``,''で区切って書きます
   - @PRIVATE: オブジェクトの私的要素（できる限りメンバ変数はこれで定義しましょう）
   - @PROTECTED: オブジェクトの限定公開要素（派生クラスからは参照できます）
   - @PUBLIC: オブジェクトの公開要素
   - @INITIALIZE_FUNC: ここでは主にパラメータの値域のチェックや、 シミュレーション中に変化しない値の計算などの初期設定を行います
   - @REACT_FUNC: 毎ステップ行う処理を書きます。1.反応速度を算出し、2.その速度にしたがって物質の量を増減させる、といった一連の処理を書きます。 Process()メソッドの引数は、1秒あたりの反応分子数で、 Float型です。

以上がReactorに関する簡単な説明です。Reactorの詳細については、5章を参照してください。

## 4.2 Reactorの作成手順

簡単な例を挙げて、Reactorをどのように作成していくかを説明します。 まず、Cygwinを起動して、"cd"コマンドを用いて、"tools\reactor"に カレントディレクトリを変更しましょう。このディレクトリは、標準的なインストールでは、 "C:\E-CELL2\tools\reactor"にあります。Cygwin上では、この ディレクトリは以下のようになります。

図49. Reactor作成支援ツールのあるディレクトリへのカレントディレクトリを変更

"ls"コマンドでリスト表示すると、"MyMichaelisMentenUniUni.rd"という ファイルがあるのが分かります。これを、"notepad"で開いてみましょう。 メモ帳を使って、エキスプローラから開いても構いません。リアクター定義 ファイル(RDファイル)は、通常".rd"という拡張子を持つファイルとして作成されます。 このファイルの中には、リアクターの定義が記述されています。

図50. リアクター定義ファイルの例

リアクター定義ファイルを作成する上でまず注意する必要があるのは、 拡張子を除いたファイル名が、そのまま@CLASSNAMEとならなけば ならない点です。このファイルでも一致させてあります。 MyMichelisMentenUniUniReactor.rdは、クラス名を除いては MichaelisMentenUniUniReactor.rdと内容が同一です。標準リアクター の定義ファイルは、標準的なインストールでは、"C:\E-CELL2\standard \STDR"にあります。実際にリアクター定義ファイルを作成する際は、 これらのファイルの記述を参考にすると良いでしょう。

リアクター定義ファイルから、"rd2ch.pl"を利用してC++のソースコード とヘッダファイルを生成します。

図51. rd2ch.plによるリアクター定義ファイルの変換

"MyMichaelisMentenUniUniReactor.h", "MyMichaelisMentenUniUni Reactor.cpp"が出来たことを確認しましょう。これらのファイルを "C:\E-CELL2\standard\SRCR"にコピーしましょう。標準的でない ディレクトリにE-CELL2をインストールした場合は適宜読み替えて 下さい。このディレクトリは、Reactorのソースコードとヘッダ ファイルを置くためのディレクトリです。

Reactor作成支援ツールについても、Cygwin上のどこからでも使用したいという要求が あるでしょう。その場合は、"rd2ch.pl"があるディレクトリにPATHを通す 必要があります。デフォルトでは、"C:\E-CELL2\tools\reactor"、 Cygwin上で"/cygdrive/c/E-CELL2/tools/reactor"になります。 "rd2ch.pl"は、ソースコードとヘッダファイル生成時に鋳型となるファイル を必要とします。そのファイル群は、"rd2ch.pl"があるディレクトリの 直下の"template"ディレクトリに置いてあるので、PATHを通した上で 別のディレクトリから、"rd2ch.pl"を利用する場合は、"-t 絶対PATH" で鋳型ファイルの在り処を指定して下さい。デフォルトでは、"C:\E-CELL2\tools\reactor\template" が指定するべきディレクトリになりますが、Cygwin上での操作になるので、 "/cygdrive/c/E-CELL2/tools/reactor/template"を指定してください。 PATHを通すことで、現在のディレクトリを示す"./"をコマンドの先頭に 記述する必要はなくなります。

図52. 生成したファイルの確認とコピー

標準リアクターモデル用E-CELL2があるディレクトリにカレントディレクトリを変更し、ファイルの リスト表示をしましょう。先程コピーしたファイルがあることを確認して 下さい。

図53. カレントディレクトリの変更とファイルのリスト表示

Reactorを追加するには、新規に作成した"MyMichaelisMentenUniUniReactor" クラスのソースコードとヘッダファイルをコンパイルして、"MyMichaelisMentenUniUniReactor.dll"を生成し、 適切なディレクトリに移動する必要があります。コンパイル作業と生成したファイルを移動するための ファイルが、"buildr.bat"です。このファイルを、notepadで表示して みましょう。

図54. buildr.bat表示

ここで、Borland C++ Compilerの"bin"が、PATH中で先頭に来るように ファイルの内容を書き換えてください。このディレクトリがどこにあるか 分からない場合は、以下のコマンドをCygwin上で実行してください。 正しく設定されていれば、どこにBorland C++ Compilerがインストール されているかが分かります。

>     % which bcc32

GNUに含まれるGNU make.exeではなく、Borland C++に含まれるmakeを使うようPATH設定にご注意ください。両者のmakeには互換性がありません。

バッチファイル"build.bat"は、新規に追加したReactorのソースコード とヘッダファイルをコンパイルするのに、"MAKE"というツールを使用 します。"MAKE"は、"C:\E-CELL2\standard\DLLR"にある、"Makefile" に従ってコンパイルを行うので、このファイルも書き換える必要が あります。標準的でないインストールをしている場合は、ディレクトリ・ パスを適宜読み替えてください。ディレクトリをカレントディレクトリを変更して、"ls"で ファイルを表示して、"Makefile"があるのを確認しましょう。 notepadで、Makefileを開きます。

図55. Makefileのあるディレクトリへカレントディレクトリを変更

Makefileの記述の一部を示します。"MyMichaelisMentenUniUniReactor" クラスの実体は"MyMichaelisMentenUniUniReactor.dll"になるので、 "DLLFILESR="の末尾に、このファイル名を追加して保存します。

図56. Makefileの編集

"buildr.bat"ファイルを使用するために、一階層上のディレクトリに カレントディレクトリを変更し、このバッチファイルを実行しましょう。

図57. buidr.bat実行によりコンパイル開始

Borland C++ Compilerの設定が適切に行われていれば、コンパイルは 警告は出すものの、止まることなく進行していきます。

図58. コンパイル時のメッセージ

コンパイルが終わったら、実際に"MyMichaelisMentenUniUniReactor"を 使用してみましょう。"sample.eri"がこのディレクトリにありますので、 "myToy.eri"にコピーして、notepadで開きましょう。

図59. ファイルを作業用にコピー

notepadで"myToy.eri"を開いて、"MichaelisMentenUniUniReactor"と "MyMichaelisMentenUniUniReactor"と差し替えて、ファイルを保存 しましょう。

図60. ルール・インターメディエイト・ファイルの編集

ここで、E-CELL2を起動し、"myToy.eri"を[File]メニューより [Load Rule]を選んで読み込み、シミュレーションを開始して みましょう。"sample.eri"と読んで実行したときと同じ挙動で あれば、リアクター作成は成功です。

今後は、必要に応じてReactorをデザインして、独自のシミュレーション が出来るように訓練を積んで行ってください。

ここまでで一通り、シミュレーションをどのような手順で進めていくかを 説明しました。個々の項目の詳細な説明については、3章以降を 参考にしてください。

| E-CELL2 User's Manual Last Update $Date: 2002/07/16 16:45:42 $. Copyright: Keio University and Mitsui Knowledge Industry Co., Ltd. 2002 |  | 2章 E-CELL2.20チュートリアル [ 1章 : 3章 : 4章 : 5章 ][ トップ ]