E-CELL2 User's Manual
4章 E-CELL2ルールファイルの作成 [ 1章 : 2章 : 3章 : 5章 ][ トップ ]

INDEX

1 はじめに
2 スプレッドシートの記述
2.1 見出し語について
2.2 Systemパート
FQEN,FQPN
2.3 Substanceパート
Fix機能
2.4 Reactorパート
2.5 Includeパート
3 スプレッドシートの保存と変換
3.1 スプレッドシートの保存
3.2 erファイルへの変換

1 はじめに
本章は、2章3節``E-CELL2の操作方法''を補完するためのリファレンスである。 この章の説明を読む前に、必ず2章3節を熟読されたい。 ルールファイルとは、目的のシミュレーションをE-CEll2で実行するための情報を 入力するデータファイルを指す。このファイルには、酵素なども含む全ての物質が記載され、これらの物質の 相互関係(反応)や、体積などの環境設定が記述されている。さらに、計算に用いる積分方式の指定も ルールファイルで行うことができる。ユーザーが定義できるファイルには、ルールファイルの他にReactorが あり、これは第3章で詳しく述べる。Reactorは反応速度式をもったプログラムで、ルールファイルの指定に より物質などの量をその式に従って変化させる。
ルールファイルには、
  • ssファイル
  • erファイル
  • eriファイル
の3つがあり、ルールファイルの作成はスプレッドシートに書き込む方法か、erファイルを直接書く方法のどちらかで記述できる。
スプレッドシートによるルールファイルの作成には汎用のスプレッドシートソフトウェアを用いるため、視覚的に理解しやすく、比較的簡単に記述できることが利点である。一方、erファイルはテキストファイルとして記述されるため、マクロを使って簡単に操作することが可能である。これらはいずれも、最終的にE-CELL2 Systemに読み込まれる形であるeriファイルに変換される(スプレッドシートの場合は一度、erファイルに変換されてからeriファイルに変換される)。
ルールファイルはシミュレーションを行うモデル環境に関する定義を行うSystemパートと、物質に関する定義を行う Substanceパート、反応や相互作用に関する定義を行うReactorパート、他のルールファイル(erファイル)を読み込む際に用いるIncludeパートからなっている。これらはひとまとまりに記述する必要はなく、ユーザーがわかりやすい任意の順序で記述することができる。この章ではスプレッドシートを用いたルールファイルの作成について解説する(erファイルの仕様については、章末を参照)。
2 スプレッドシートの記述
ここではルールファイルの記述について実例を示しながら、見出し行と呼ばれるパートを区分する行と4つのパートを解説する。
なお、スプレッドシートの各カラムの記述の中に、
  • タブ
  • クォーテーション
  • ダブルクォーテーション
を用いることは禁止されている。
これらの記号は項目を分ける際にスプレッドシートソフトウエアによって使用されるため、これらが項目中に存在すると適正なeriファイルが作成できない。
2.1 見出し語について
スプレッドシートでは、記述するパートごとに見出しをつける必要がある。これらの見出し語が入っている行をそれぞれの パートの「見出し行」とよび、パートが変わるごとに各パートの先頭行として記述されなければならない。図で、青く色付けされた行が見出し行である。見出し語は、大文字と小文字の区別をせず、見出し語がどの順序で並んでいてもかまわない。また、各見出し行の最後の列にはmemoという見出し語をつけたすことができ、memoの列に書かれた情報はeriファイルに出力されることはない。
image/makerule/Title.gif
図1 見出し語
2.2 Systemパート
シミュレーションを行うには、シミュレーションシステムの構造と環境の設定 をしなければならない。それを行うのがSystemパートである。シミュレーショ ンが行われる場所(System)やその体積の定義をSystemパートで行う。
見出し語は下表の通りである。


見出し語 意味 省略時のデフォルト
Type [System] 省略不可
Class シミュレーションを行うSystemの種類を指定 省略不可
Path Systemの階層構造の中でどの場所に位置するかを指定 省略不可
ID 指定したSystemのID 省略不可
Name 指定したSystemの名称 ID
Inside 膜の内側を指定(膜構造を表すSystemでのみ使用) 入力が必要なSystemについては省略不可
Outside 膜の外側を指定(膜構造を表すSystemでのみ使用) 入力が必要なSystemについては省略不可
Volumeindex 体積(Volume)を表すReactorを指定 体積(Volume)が必要なSystemでは省略不可

表4-1 Systemパート見出し語一覧


./image/makerule/System.gif
図2 Systemパート [Type列、Class列]
Type列には[System]と記入する。Class列では、シミュレーション中で使用するSystem(場所)の種類(Class)を定義する。Cell,Environment,Cytoplasm,MembraneをClass としてここで定義することができる。これら全てのClassは、SubstanceReactor、体積を扱うことができるが、EnvironmentとMembraneについては下位に System を作ることができない。各Classの意味は以下の通りである。

Class Substance Reactor 体積 下位のSystem
Cell
Environment ×
Cytoplasm
Membrane ×

表4-2 Classの種類


./image/makerule/Systempath.gif
図3 Systemパート [path列]

定義したSystem(場所)において、そのSystemが階層構造の どこにあるかを Path列で指定する。つまり、Systemの住所のようなものである。 PathはE-CELL2 Systemに組み込まれた最上位のSystemで ある、RootSystem( / )で始まり、 それ以下はユーザによって定義される。
Pathは「/system1/system2/system3」のように「/」で区切って表記され、IDの上位System までを全て書き込む。なお、このPathの記載は省略することができない。また、大文字と小文字は区別されるので 注意すること。
FQEN、FQPN
FQEN(FullyQualifiedEntryName)はSystemや、SubstanceReactorなどの階層構造における位置を示すための記述法で、「/system0/system1/system2:ID」のようにPathとIDを「:」を用いて組み合わせる。例えば、Pathが「/CELL/CYTOPLASM」、IDが「ATP」である場合、FQENは「/CELL/CYTOPLASM:ATP」となる。
また、FQENではSystemや、SubstanceReactorの区別がつかない。このような情報を含んだ表現がFQPNである。FQPNは、[Type]:[FQEN]で表す。先ほどのATPを用いた例では、「Substance:/CELL/CYTOPLASM:ATP」と表されることになる。これらは全て大文字と小文字が区別されるので注意すること。


./image/makerule/SystemID.gif
図4 Systemパート [ID列、Name列]
IDは、E-CELL2シミュレーションソフトウェア内の処理番号に相当する。 このため、一つのSystem内に同一のIDが存在することはできない。同じIDをいる場合、Warningメッセージが表示されて先に定義されたIDが採用される。また、IDは大文字、小文字を区別するので注意しなければならない。
このID列には定義したSystem(場所)のIDを,Nameには、定義したSystemの名称を記入する。
./image/makerule/Systemside.gif
図5 Systemパート [Inside列、Outside列]
inside/outside列は、その行で定義しているClass(Systemの種類)がMembrane(膜)であるとき、膜の内側もしくは外側にあるSystemを示すのに用いる。
現在の E-CELL2 Systemではこの情報を用いた処理を行っていないが、今後、アクセスできる System を限定したりする処理を加える予定である。例では、MEMBRANEというSystemがCYTOPLASMとENVIRONMENTに挟まれた膜であることを示している。
./image/makerule/SystemVolume.gif
図6 Systemパート [VolumeIndex列]
E-CELL2 System では、Systemの体積を Reactorを用いて表現する。Systemの VolumenIndex として Reactorの FQEN を指定すると、その Reactorの activity の値が体積 (単位:[L])として解釈される。System の VolumenIndex を指定した場合、その FQEN に相当する Reactorを Reactorパートで定義しなければならない。 Systemは体積を指定しない場合もありうる。 例えば、上図のように Membrane は体積を定義していない。ただし、Reactorが物質の濃度を用いて計算を行なう場合や、Substance パートで物質の濃度(Conc)を指定する場合、濃度 を分子数に変換する際に体積の値が必要である。これらの場合には その物質が存在している Systemの VolumeIndex は必ず指定する必要がある。
2.3 Substanceパート
シミュレーションに関わる全ての物質(Substance)は、ルールファイル内で定義される必要がある。それらの物質の定義を記述するのがSubstanceパートである。
Substanceパートの見出し語は下表の通りである。
見出し語 意味 省略時のデフォルト
Type [Substance] 省略不可
Class 通常は[Substance]。省略してもよい。 省略不可
Path Substanceのある場所(System) 省略不可
ID 指定したSubstanceのID 省略不可
Name 指定したSubstanceの名称 ID
Qty Substanceの個数(分子数)の初期値(Concとは両立しない) 0
Conc Substanceの濃度M(mol/l)の初期値(Qtyとは両立しない) Qty
Arg_tag Substanceの小数部分の累積方法を指定したい場合 [Accumulator] 省略可
Arg_coeff Substanceの小数部分の累積方法を選択 Arg_tag がある場合 省略不可

表4-3 Substanceパート見出し語一覧


./image/makerule/Substance.gif
図7 Substanceパート [Type列、Class列]
Type列には「Substance」と入れる。 Class列では、各行に入っているものの型を記入する。Substanceパートでは、Class(種類)として指定できるのは今のところSubstance のみとなっている。従って、Class列にはSubstanceと入力する。ここを省略すると、Substanceが自動的に入力される。
./image/makerule/Substancepath.gif
図8 Substanceパート [path列]
Path列では、物質が存在する場所(System)を指定する。Pathの記述法はSystemパートのPath列と同様に「/system1/system2/system3」のように「/」で区切って入力する。なお、同じID,Nameを持つ物質でも、異なる System を指定していればE-CELL2 Systemでは違う Substance として認識されるため、注意が必要である。大文字と小文字は区別されるので注意すること。
./image/makerule/SubstanceID.gif
図9 Substanceパート [ID列、Name列]
SubstanceのIDとNameを記入する。 IDでは、大文字と小文字の区別が行われるので注意が必要である。
./image/makerule/SubstanceQTY.gif
図10 Substanceパート [QTY列]
Qtyは、ユーザーが定義した体積における物質の個数(分子数)の初期値を表している。Concとは両立せず、両方記述されている場合はWarningメッセージが出てQtyの値が採用される。また、どちらの数値も入力されていない時は、Qty=0として計算される。また、そのQtyの値を反応によって増減させる必要がないとき、Fix機能によって値を固定することができる(Fix機能については後の項を参照)。
./image/makerule/SubstanceConc.gif
図11 Substanceパート [Conc列]
ConcにはM (mol/l)を単位とした物質の濃度を入力する。erファイルをeriファイルに変換する際に、Systemパートで指定した体積を表す Reactorのint_actで指定した体積と E-CELL2 System内のアボガドロ定数(6.0221367e23)で分子数に変換される。Qtyとは両立せず、Concに何も入っていない場合は、Qtyの値がeriファイルに出力される。また、Conc値を記載したにも関わらず、Systemパートで物質が存在するシステムの体積の定義(VolumeIndex)がない場合はVolume=0で処理されるので注意が必要である。ここでも、Fix機能を使って値を固定することが可能である。
Fix機能

./image/makerule/Fix.gif
図12 Fix機能
Fix機能とは、指定された Substance行の物質を Reactor による増減の影響を受けないようにして、入力したQtyまたはConcの値を保つ機能である。Fix 指定するには、維持したい値が記載してあるQty、または、Concのすぐ下の行に「Fix」と記入する。


./image/makerule/Substancetag.gif
図13 Substanceパート [Arg_tag列]
Accumulatorとは、小数部分の累積方法を表現したものである。 Arg_tag に「Accumulator」と記入することにより、Substanceの小数部分の 累積方法を指定することが可能になる。累積方法の具体的な選択肢は次の Arg_coeff の節で挙げる。ただし、各物質ごとに異なる累積方法を指定 する場合、計算精度は未保証である。
./image/makerule/Substancecoeff.gif
図14 Substanceパート [Arg_coeff列]
Arg_coeff では、 Substance の累積方法をカプセル化 した Accumulator クラスを選択して記入する。以下に、その選択肢 を示す。


Accumulator クラス 小数部分の累積方法
ReserveAccumulator 整数部分と小数部分を別々に記憶する。 値を使う場合には、整数部分だけが使われる。 値を更新する場合には、変化量の小数部分を積み立て、 積み立て量が1.0以上になると、整数部に繰り上げる。 例を示す。
変化量整数部分小数部分
初期値00
0.800.8
0.810.6
0.820.4
SimpleAccumulator 実数をそのままの値で計算する。 精度はi386版で10進18桁、alpha版で10進15桁である。
RoundDownAccumulator 小数点以下を切り捨て計算する。
RoundOffAccmulator 小数点第一位を四捨五入して計算する。
MonteCarloAccumulator 整数部分と小数部分を分け、 小数部分を確率として乱数で切り上げまたは切り捨てる。 例えば、変化量が3.4ならば、0.6の確率で3変化し、 0.4の確率で4変化する。

2.4 Reactorパート
Substanceパートで定義した物質を用いた反応や、物質間相互作用、さらに体積などの環境変数を扱う式の指定を行う部分がReactorパートである。Reacterパートでは、反応速度式(Reacter)を指定し、反応に関わる Substance を指定して、それらの化学量論的記述を行う。
Reacter行の見出し語は下表の通りである。

見出し語 意味 省略時のデフォルト
Type [Reactor] 省略不可
Class Reactor(反応速度式)を指定 省略不可
Path 反応が起こる場所(System 省略不可
ID 反応のID 省略不可
Name 反応の名称 ID
init_act ReactorActivityの初期値 特別な場合(VolumeIndex に指定した場合など)を除き省略可
S_ID 反応基質(Substrate)のID 省略不可
S_Path Substrateの存在している場所(System Path
S_Coeff Substrateの化学量論的係数 1
P_ID 反応生成物(Product)のID 省略不可
P_Path Productの存在している場所(System) Path
P_Coeff Productの化学量論的係数 1
C_ID 反応触媒(Catalyst)のID 省略不可
C_Path Catalystの存在する場所(System) Path
arg_tag Reactorの定数名(反応速度式が使用する定数名) 入力が必要なReactorについては省略不可
arg_coeff 定数名に対応する定数の値。 arg_tagを入力したReactorについては省略不可
E_ID 反応に影響を与える物質(Effector) 指定する必要がなければ省略可
E_Path Effectorのある場所(System) Path
E_Coeff Effectroのとる係数 (内容はReactorごとに異なる) 1

表4-4 Reactorパート見出し語一覧



./image/makerule/Reactor.gif
./image/makerule/CPReactor.gif
図15 Reactorパート [Type列、Class列]
Reactorの種類(Class: 反応速度式)はclass列で指定する。この列では、指定したいReactorを「○○Reactor」という形で記入する。この例では,MichaelisMenten式に基づいた反応速度式を用いているため、「Michaelis○○Reactor」が使われている。例中の下図は、体積をもつReactorを宣言している。その他の標準添付されているReactorがどの反応速度式を表しているかは、巻末のスペックシートに記載してある。また、大文字と小文字は区別されるので区別する。反応、または相互作用のIDをID列に記入する。大文字、小文字は区別されるので注意すること。
./image/makerule/Reactorpath.gif
./image/makerule/CPReactorpath.gif
図16 Reactorパート [path列]
Path列では反応や相互作用の起こるSystem(場所)のPathを入力する。Pathの入力法はSystemパートや、SubstanceパートのPath列と同じである。この例では、「/CELL/CYTOPLASM」で反応が起こっていることがわかる。大文字と小文字は区別されるので注意すること。
./image/makerule/ReactorID.gif
./image/makerule/CPReactorID.gif
図17 Reactorパート [ID列、Name列]
Name列には反応または相互作用の名称を記入する。ここになにも記載されていない場合は、IDに記入されている情報がeriファイルに出力される。体積をもつReactor(下2段)については、それが体積であることが分かるようなNameをつけておくことが望ましい(図を参照)。 また、psterior Reactor を指定する場合は ID を「!」で始まるものにする 必要がある(詳しくは第3章を参照)。ただし FluxReactor 系など、通常の Reactor の ID を「!」で始まるものにした場合、その動作は無保証であるため 注意が必要である。
./image/makerule/CPReactoract.gif
図18 Reactorパート [init_act列]
シミュレーションが1ステップ進むごとに計算される Reactor の activity は、 シミュレーション開始時に Reactor の activity が必要な場合は 初期activity を設定しなければならない。 init_act列は、その値を入力するために用意されている。SystemパートでVolumeIndexに記載したReactorを定義する場合、Reactorパートでinit_act列の値を必ず入力しなければならない。このinit_actはE-CELL2 Systemが計算を開始する以前にReactorのactivityを参照しなければならないときに初期値として入力される。この値がない場合は、シミュレーションを開始した一番最初のstepで体積を用いる全計算にVolume=0が代入され、結果としてシミュレーションができない。例ではSystemの体積を示すReactorの ConstantPameterReactor でその体積の初期値を定義している。
./image/makerule/ReactorS.gif
図19 Reactorパート [S_ID列、S_path列、S_Coeff列]
S_IDではSubstrate(基質)のIDをS_PathではSubstrateが存在しているSystem(場所)のPathを指定する。この反応では、CYTOPLASMに存在しているATPとGlcがSubstrateとして反応に関わっている。S_Coeffには、Substrateの化学量論的係数を記入する。
./image/makerule/ReactorP.gif
図20 Reactorパート [P_ID列、P_path列、P_Coeff列]
P_IDにはProduct(生成物)となる物質のIDを、P_PathではProductが存在しているSystem(場所)のPathを指定する。ここでは、ProductとなるADPとG6PがCYTOPLASMに存在していることを示している。P_Coeffには、Productの化学量論的係数を入力する。
./image/makerule/ReactorC.gif
図21 Reactorパート [C_ID列、C_path列]
C_IDには反応において実際にSubstarateやProductに対してCatalyst(触媒)となって作用するもののIDを記入する。C_PathではCatalystの存在するSystem(場所)のPathを指定する。通常、このCatalystの ID, Path は、特に理由がない限りは反応の ID, Path と同一になる。
./image/makerule/ReactorArg.gif
./image/makerule/CPReactorArg.gif
図22 Reactorパート [Arg_tag列、Arg_coeff列]
arg_tag列ではReactorで使用する定数名、つまり反応速度式が使用する定数を入力する。この定数名は、Reactorごとに決まっているものである、上の図、下から 2 つめのReactor例では、MichaelisUniUniReactorを反応速度式としているので、arg_tagは「KcF,KmS」になっている(標準添付されているReactorがどのような定数を必要としているかは巻末のスペックシートを参照)。複数ある場合は、次の行に記述し、この場合、追加した行には他の項目について記述する必要はない(図を参照)。また、この列も大文字、小文字が区別されるので注意すること。体積を表すために用いる標準添付のConstantParameterReactor(体積計算用のReactor)の場合は、ここに「Value」と記入する(例中、下の図)。

arg_tagのすぐとなりにarg_coeffを記入する。arg_coeffには、arg_tagに対応する定数の値が入り、さきほどの例ではMichaelisUniUniReactorが使用する「KcF,KmS」の値が入っている。体積を表すために用いる標準添付のConstantParameterReactorの場合は、ここにSystemの体積を記入する(図参照)。E-CELL2 Systemでは 最初の1ステップ(1計算時間幅)のみ init_act に記載された体積で計算され、以後のステップはReactorの示す値で計算される(ConstantParameterReactorではValueの値)。




このほか、 SubstrateやProductのようにReactorによる量的な増減は受けないが、反応速度に関わってこれに影響を与えるものをEffectorとして定義することができる。E_IDにはEffectorとして指定したいSubstanceのIDを、E_PathではそのEffectorの存在するSystem(場所)をPathで指定する。E_CoeffはEffectorの係数を表すが、実際に入力されるべき内容はReactorごとに自由に決められるので、そのReactorの仕様書を参照すること。
2.5 Includeパート
./image/makerule/newInclude.gif
図23 Includeパート
スプレッドシートにIncludeパートを記述することで、指定したerファイルを挿入することが可能である。 このIncludeパートは、他のパート同様、ルールファイル中のどの場所にいくつあってもかまわない。 いくつかのルールファイルに共通した行などを別のerファイルとして記述し、出力されるeriファイル (E-CELL2に読み込まれる最終形式のデータファイル)にその記述を組み込みたい 場合などに有用である。シミュレーションに必要な全ての情報をスプレッドシートに書き込んであり、 他のファイルの読み込みを必要としない場合は、このIncludeパートの記述は省略する。 Includeパートでその別ファイルを指定すれば、その情報はeriファイルに組み込まれて出力される。 Includeパートの見出し語はType,Filenameである。Typeには[Include]と記入し、Filenameには 読み込みたいファイル名を指定する。例では``sample.er''というファイルを読み込んでいる。
3 スプレッドシートの保存と変換

3.1 スプレッドシートの保存
E-CELL2 Systemに読み込まれるルールファイルフォーマットであるeriファイルに変換するには、 変換ソフトウェアが認識することのできる形であるTAB区切りのテキストファイルで保存する必要がある。このようなタブ区切りの テキストを作成する場合は、EXCEL等のソフトウェアを使用するのが便利である。タブ区切りテキストのサンプルは、``standard\SAMPLE'' 以下にある、``.txt''拡張子のファイルを参照されたい。標準的なインストールでは、このディレクトリは``C:\E-CELL2\standard\SAMPLE'' になり、Cygwin上では``/cygdrive/c/E-CELL2/standard/SAMPLE''として認識される。 ルールファイル作成支援のためのソフトウェアは、``tools\rule''というディレクトリに格納されている。``C:\E-CELL2\tools\rule''が 標準的なインストールを行った場合のディレクトリ・パスで、Cygwin上では``/cygdrive/c/E-CELL2/tools/rule''として認識される。 Perlを利用することになるので、Cygwin上での作業を前提としている。
3.2 erファイルへの変換
E-CELL2 Systemでシミュレーションを行うには、ss2er.plというスプレッドシートをerファイルへ変換するソフトウェアと、erファイルを実行形式のeriファイルへ変換するer2eriという変換ソフトウェアの2つを利用して、 eriファイルに変換する。スプレッドシートはss2erが解析可能なTAB区切りのテキストファイルで保存する。ここでは、保存するディレクトリを、デフォルトの設定でインストールした場合の``C:\E-CELL2\tools\rule''を想定している。 このディレクトリは、Cygwin上では``/cygdrive/c/E-CELL2/tools/rule''となる。保存したら、``cd''コマンドを使用してこのディレクトリに移動し、以下の操作を実行する。 勿論、erファイルをエディタ等で直接記述しても良いわけだが、上級者向けの内容であるので、本マニュアル中では詳述しない。erファイルを直接記述したい場合は、各自``sample.er''等の例を解読されたい。

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


と入力する。この操作により、スプレッドシートファイルからルールファイル(拡張子は``.er''にすること)が生成される。
erファイルを直接書く場合は上述の作業は省略される。次に、erファイルをE-CELL2 Systemが読み込む最終形式のファイルであるeriファイルに、 er2eri.shを用いて変換する。
変換は、

% ./er2eri.sh filename

と入力することによって実行される。このとき、拡張子``.er''を除いて指定することに注意しなければならない。 このバッチファイルを実行すると、拡張子``.eri''を持つルールインターメディエイトファイルが生成する。 GUI版では、ControlPanelの[File]メニューから[Load Rule]を選択することで、``.eri''ファイルを読み込む ためのファイル選択ウィンドウが開く。E-CELL2を起動するには、本章2.1節を参照されたい。


E-CELL2 User's Manual
Last Update $Date: 2002/07/16 16:45:42 $.
Copyright: Keio University and Mitsui Knowledge Industry Co., Ltd. 2002
4章 E-CELL2ルールファイルの作成 [ 1章 : 2章 : 3章 : 5章 ][ トップ ]