![]()
E-CELL2 User's Manual
4章 E-CELL2ルールファイルの作成 [ 1章 : 2章 : 3章 : 5章 ][ トップ ]
INDEX1 はじめに
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ファイルへの変換
本章は、2章3節``E-CELL2の操作方法''を補完するためのリファレンスである。 この章の説明を読む前に、必ず2章3節を熟読されたい。 ルールファイルとは、目的のシミュレーションをE-CEll2で実行するための情報を 入力するデータファイルを指す。このファイルには、酵素なども含む全ての物質が記載され、これらの物質の 相互関係(反応)や、体積などの環境設定が記述されている。さらに、計算に用いる積分方式の指定も ルールファイルで行うことができる。ユーザーが定義できるファイルには、ルールファイルの他にReactorが あり、これは第3章で詳しく述べる。Reactorは反応速度式をもったプログラムで、ルールファイルの指定に より物質などの量をその式に従って変化させる。2 スプレッドシートの記述
ルールファイルには、の3つがあり、ルールファイルの作成はスプレッドシートに書き込む方法か、erファイルを直接書く方法のどちらかで記述できる。
- ssファイル
- erファイル
- eriファイル
スプレッドシートによるルールファイルの作成には汎用のスプレッドシートソフトウェアを用いるため、視覚的に理解しやすく、比較的簡単に記述できることが利点である。一方、erファイルはテキストファイルとして記述されるため、マクロを使って簡単に操作することが可能である。これらはいずれも、最終的にE-CELL2 Systemに読み込まれる形であるeriファイルに変換される(スプレッドシートの場合は一度、erファイルに変換されてからeriファイルに変換される)。
ルールファイルはシミュレーションを行うモデル環境に関する定義を行うSystemパートと、物質に関する定義を行う Substanceパート、反応や相互作用に関する定義を行うReactorパート、他のルールファイル(erファイル)を読み込む際に用いるIncludeパートからなっている。これらはひとまとまりに記述する必要はなく、ユーザーがわかりやすい任意の順序で記述することができる。この章ではスプレッドシートを用いたルールファイルの作成について解説する(erファイルの仕様については、章末を参照)。ここではルールファイルの記述について実例を示しながら、見出し行と呼ばれるパートを区分する行と4つのパートを解説する。
なお、スプレッドシートの各カラムの記述の中に、を用いることは禁止されている。
- タブ
- クォーテーション
- ダブルクォーテーション
これらの記号は項目を分ける際にスプレッドシートソフトウエアによって使用されるため、これらが項目中に存在すると適正なeriファイルが作成できない。2.1 見出し語について
スプレッドシートでは、記述するパートごとに見出しをつける必要がある。これらの見出し語が入っている行をそれぞれの パートの「見出し行」とよび、パートが変わるごとに各パートの先頭行として記述されなければならない。図で、青く色付けされた行が見出し行である。見出し語は、大文字と小文字の区別をせず、見出し語がどの順序で並んでいてもかまわない。また、各見出し行の最後の列にはmemoという見出し語をつけたすことができ、memoの列に書かれた情報はeriファイルに出力されることはない。![]()
図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パート見出し語一覧
![]()
図2 Systemパート [Type列、Class列]Type列には[System]と記入する。Class列では、シミュレーション中で使用するSystem(場所)の種類(Class)を定義する。Cell,Environment,Cytoplasm,MembraneをClass としてここで定義することができる。これら全てのClassは、Substance や Reactor、体積を扱うことができるが、EnvironmentとMembraneについては下位に System を作ることができない。各Classの意味は以下の通りである。
Class Substance Reactor 体積 下位のSystem Cell ○ ○ ○ ○ Environment ○ ○ ○ × Cytoplasm ○ ○ ○ ○ Membrane ○ ○ ○ ×
表4-2 Classの種類
![]()
図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や、Substance、Reactorなどの階層構造における位置を示すための記述法で、「/system0/system1/system2:ID」のようにPathとIDを「:」を用いて組み合わせる。例えば、Pathが「/CELL/CYTOPLASM」、IDが「ATP」である場合、FQENは「/CELL/CYTOPLASM:ATP」となる。
また、FQENではSystemや、Substance、Reactorの区別がつかない。このような情報を含んだ表現がFQPNである。FQPNは、[Type]:[FQEN]で表す。先ほどのATPを用いた例では、「Substance:/CELL/CYTOPLASM:ATP」と表されることになる。これらは全て大文字と小文字が区別されるので注意すること。
![]()
図4 Systemパート [ID列、Name列]IDは、E-CELL2シミュレーションソフトウェア内の処理番号に相当する。 このため、一つのSystem内に同一のIDが存在することはできない。同じIDをいる場合、Warningメッセージが表示されて先に定義されたIDが採用される。また、IDは大文字、小文字を区別するので注意しなければならない。
このID列には定義したSystem(場所)のIDを,Nameには、定義したSystemの名称を記入する。![]()
図5 Systemパート [Inside列、Outside列]inside/outside列は、その行で定義しているClass(Systemの種類)がMembrane(膜)であるとき、膜の内側もしくは外側にあるSystemを示すのに用いる。
現在の E-CELL2 Systemではこの情報を用いた処理を行っていないが、今後、アクセスできる System を限定したりする処理を加える予定である。例では、MEMBRANEというSystemがCYTOPLASMとENVIRONMENTに挟まれた膜であることを示している。
![]()
図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パート見出し語一覧
![]()
図7 Substanceパート [Type列、Class列]Type列には「Substance」と入れる。 Class列では、各行に入っているものの型を記入する。Substanceパートでは、Class(種類)として指定できるのは今のところSubstance のみとなっている。従って、Class列にはSubstanceと入力する。ここを省略すると、Substanceが自動的に入力される。
![]()
図8 Substanceパート [path列]Path列では、物質が存在する場所(System)を指定する。Pathの記述法はSystemパートのPath列と同様に「/system1/system2/system3」のように「/」で区切って入力する。なお、同じID,Nameを持つ物質でも、異なる System を指定していればE-CELL2 Systemでは違う Substance として認識されるため、注意が必要である。大文字と小文字は区別されるので注意すること。![]()
図9 Substanceパート [ID列、Name列]SubstanceのIDとNameを記入する。 IDでは、大文字と小文字の区別が行われるので注意が必要である。![]()
図10 Substanceパート [QTY列]Qtyは、ユーザーが定義した体積における物質の個数(分子数)の初期値を表している。Concとは両立せず、両方記述されている場合はWarningメッセージが出てQtyの値が採用される。また、どちらの数値も入力されていない時は、Qty=0として計算される。また、そのQtyの値を反応によって増減させる必要がないとき、Fix機能によって値を固定することができる(Fix機能については後の項を参照)。![]()
図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機能
![]()
図12 Fix機能Fix機能とは、指定された Substance行の物質を Reactor による増減の影響を受けないようにして、入力したQtyまたはConcの値を保つ機能である。Fix 指定するには、維持したい値が記載してあるQty、または、Concのすぐ下の行に「Fix」と記入する。
![]()
図13 Substanceパート [Arg_tag列]Accumulatorとは、小数部分の累積方法を表現したものである。 Arg_tag に「Accumulator」と記入することにより、Substanceの小数部分の 累積方法を指定することが可能になる。累積方法の具体的な選択肢は次の Arg_coeff の節で挙げる。ただし、各物質ごとに異なる累積方法を指定 する場合、計算精度は未保証である。![]()
図14 Substanceパート [Arg_coeff列]Arg_coeff では、 Substance の累積方法をカプセル化 した Accumulator クラスを選択して記入する。以下に、その選択肢 を示す。
Accumulator クラス 小数部分の累積方法 ReserveAccumulator 整数部分と小数部分を別々に記憶する。 値を使う場合には、整数部分だけが使われる。 値を更新する場合には、変化量の小数部分を積み立て、 積み立て量が1.0以上になると、整数部に繰り上げる。 例を示す。
変化量 整数部分 小数部分 初期値 0 0 0.8 0 0.8 0.8 1 0.6 0.8 2 0.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パート見出し語一覧
![]()
![]()
図15 Reactorパート [Type列、Class列]Reactorの種類(Class: 反応速度式)はclass列で指定する。この列では、指定したいReactorを「○○Reactor」という形で記入する。この例では,MichaelisMenten式に基づいた反応速度式を用いているため、「Michaelis○○Reactor」が使われている。例中の下図は、体積をもつReactorを宣言している。その他の標準添付されているReactorがどの反応速度式を表しているかは、巻末のスペックシートに記載してある。また、大文字と小文字は区別されるので区別する。反応、または相互作用のIDをID列に記入する。大文字、小文字は区別されるので注意すること。![]()
![]()
図16 Reactorパート [path列]Path列では反応や相互作用の起こるSystem(場所)のPathを入力する。Pathの入力法はSystemパートや、SubstanceパートのPath列と同じである。この例では、「/CELL/CYTOPLASM」で反応が起こっていることがわかる。大文字と小文字は区別されるので注意すること。![]()
![]()
図17 Reactorパート [ID列、Name列]Name列には反応または相互作用の名称を記入する。ここになにも記載されていない場合は、IDに記入されている情報がeriファイルに出力される。体積をもつReactor(下2段)については、それが体積であることが分かるようなNameをつけておくことが望ましい(図を参照)。 また、psterior Reactor を指定する場合は ID を「!」で始まるものにする 必要がある(詳しくは第3章を参照)。ただし FluxReactor 系など、通常の Reactor の ID を「!」で始まるものにした場合、その動作は無保証であるため 注意が必要である。
![]()
図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 でその体積の初期値を定義している。![]()
図19 Reactorパート [S_ID列、S_path列、S_Coeff列]S_IDではSubstrate(基質)のIDをS_PathではSubstrateが存在しているSystem(場所)のPathを指定する。この反応では、CYTOPLASMに存在しているATPとGlcがSubstrateとして反応に関わっている。S_Coeffには、Substrateの化学量論的係数を記入する。![]()
図20 Reactorパート [P_ID列、P_path列、P_Coeff列]P_IDにはProduct(生成物)となる物質のIDを、P_PathではProductが存在しているSystem(場所)のPathを指定する。ここでは、ProductとなるADPとG6PがCYTOPLASMに存在していることを示している。P_Coeffには、Productの化学量論的係数を入力する。![]()
図21 Reactorパート [C_ID列、C_path列]C_IDには反応において実際にSubstarateやProductに対してCatalyst(触媒)となって作用するもののIDを記入する。C_PathではCatalystの存在するSystem(場所)のPathを指定する。通常、このCatalystの ID, Path は、特に理由がない限りは反応の ID, Path と同一になる。![]()
![]()
図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パート
![]()
図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.shfilename
と入力することによって実行される。このとき、拡張子``.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. 20024章 E-CELL2ルールファイルの作成 [ 1章 : 2章 : 3章 : 5章 ][ トップ ]