![]() | E-CELL2 User's Manual | 4章 ルールファイルの作成 [ |
1 はじめに 2 スプレッドシートの記述 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3 スプレッドシートの保存と変換 ![]() ![]() |
ルールファイルとは、E-CEll2でシミュレーションするモデルを記述するデータファイルである。このファイルには、酵素なども含む全ての物質が記載され、これらの物質の相互関係(反応)や、体積などの環境設定が記述されている。ユーザーが定義できるファイルには、ルールファイルの他にReactorがあり、これは第5章で詳しく述べる。Reactorは反応速度式をもったプログラムで、ルールファイルの指定に より物質などの量をその式に従って変化させる。
ルールファイルには、
スプレッドシートによるルールファイルの作成には汎用のスプレッドシートソフトウェア、 またはモデリングランチャーを用いるため、視覚的に理解しやすく、比較的簡単に記述 できることが利点である。一方、erファイルはテキストファイルとして記述されるため、 マクロを使って簡単に操作可能である。これらはいずれも、最終的に E-CELL2 Systemに読み込まれる形であるeriファイルに変換される (スプレッドシートの場合は一度、erファイルに変換されてからeriファイルに変換される)。
ルールファイルはシミュレーションを行うモデル環境に関する定義を行うSystemパートと、 物質に関する定義を行う Substanceパート、反応や相互作用に関する定義を行うReactorパート、 他のルールファイル(erファイル)を読み込む際に用いるIncludeパートからなっている。 これらはひとまとまりに記述する必要はなく、ユーザーがわかりやすい任意の順序で記述できる。 この章ではスプレッドシートを用いたルールファイルの作成について解説する (erファイルの仕様については、章末を参照)。
ここではルールファイルの記述について実例を示しながら、見出し行と呼ばれるパートを区分する行と4つのパートを解説する。
なお、スプレッドシートの各カラムの記述の中に、
を用いることは禁止されている。 これらの記号は項目を分ける際にスプレッドシートソフトウエアによって使用されるため、これらが項目中に存在すると適正なeriファイルが作成できない。
スプレッドシートでは、記述するパートごとに見出しをつける必要がある。これらの見出し語が入っている行をそれぞれの パートの「見出し行」とよび、パートが変わるごとに各パートの先頭行として記述されなければならない。図で、青く色付けされた行が見出し行である。見出し語は、大文字と小文字の区別をせず、見出し語がどの順序で並んでいてもかまわない。また、各見出し行の最後の列にはmemoという見出し語をつけたすことができ、memoの列に書かれた情報はeriファイルに出力されることはない。
シミュレーションを行うには、シミュレーションシステムの構造と環境の設定 をしなければならない。それを行うのがSystemパートである。シミュレーショ ンが行われる場所(System)やその体積の定義をSystemパートで行う。見出し語は下表の通りである。
|
Type列には[System]と記入する。Class列では、シミュレーション中で使用するSystem(場所)の種類(Class)を定義する。Cell,Environment,Cytoplasm,MembraneをClass としてここで定義できる。これら全てのClassは、Substance や Reactor、体積を扱うことができるが、EnvironmentとMembraneについては下位に System を作ることができない。各Classが持てる要素は以下の通りである。
|
定義したSystem(場所)において、そのSystemが階層構造の どこにあるかを Path列で指定する。つまり、Systemの住所のようなものである。 PathはE-CELL2 Systemに組み込まれた最上位のSystemで ある、RootSystem( / )で始まり、 それ以下はユーザによって定義される。
Pathは「/system1/system2/system3」のように「/」で区切って表記され、IDの上位System までを全て書き込む。なお、このPathの記載は省略できない。また、大文字と小文字は区別されるので 注意すること。
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」と表されることになる。これらは全て大文字と小文字が区別されるので注意すること。
IDは、E-CELL2シミュレーションソフトウェア内の処理番号に相当する。 このため、一つのSystem内に同一のIDは存在できない。同じIDをいる場合、警告メッセージが表示されて先に定義されたIDが採用される。また、IDは大文字、小文字を区別するので注意しなければならない。
既知の問題:E-CELL 2.25では、IDが重複すると致命的なエラーが発生する。
このID列には定義したSystem(場所)のIDを,Nameには、定義したSystemの名称を記入する。
inside/outside列は、その行で定義しているClass(Systemの種類)がMembrane(膜)であるとき、膜の内側もしくは外側にあるSystemを示すのに用いる。
現在の E-CELL2 Systemではこの情報を用いた処理を行っていないが、今後、アクセスできる System を限定したりする処理を加える予定である。例では、MEMBRANEというSystemがCYTOPLASMとENVIRONMENTに挟まれた膜であることを示している。
E-CELL2 System では、Systemの体積を Reactorを用いて表現する。Systemの VolumenIndex として Reactorの FQEN を指定すると、その Reactorの activity の値が体積 (単位:[L])として解釈される。System の VolumenIndex を指定した場合、その FQEN に相当する Reactorを Reactorパートで定義しなければならない。
Systemは体積を指定しない場合もありうる。 例えば、上図のように Membrane は体積を定義していない。ただし、Reactorが物質の濃度を用いて計算を行なう場合や、Substance パートで物質の濃度(Conc)を指定する場合、濃度 を分子数に変換する際に体積の値が必要である。これらの場合には その物質が存在している Systemの VolumeIndex は必ず指定する必要がある。
シミュレーションに関わる全ての物質(Substance)は、ルールファイル内で定義される必要がある。それらの物質の定義を記述するのがSubstanceパートである。Substanceパートの見出し語は下表の通りである。
|
Type列には「Substance」と入れる。 Class列では、各行に入っているものの型を記入する。Substanceパートでは、Class(種類)として指定できるのは今のところSubstance のみとなっている。従って、Class列にはSubstanceと入力する。ここを省略すると、Substanceが自動的に入力される。
Path列では、物質が存在する場所(System)を指定する。Pathの記述法はSystemパートのPath列と同様に「/system1/system2/system3」のように「/」で区切って入力する。なお、同じID,Nameを持つ物質でも、異なる System を指定していればE-CELL2 Systemでは違う Substance として認識されるため、注意が必要である。大文字と小文字は区別されるので注意すること。
SubstanceのIDとNameを記入する。 IDでは、大文字と小文字の区別が行われるので注意が必要である。
Qtyは、ユーザーが定義した体積における物質の個数(分子数)の初期値を表している。Concとは両立せず、両方記述されている場合はWarningメッセージが出てQtyの値が採用される。また、どちらの数値も入力されていない時は、Qty=0として計算される。また、そのQtyの値を反応によって増減させないとき、Fix機能によって値を固定できる(Fix機能については後の項を参照)。
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機能とは、指定された Substance行の物質を Reactor による増減の影響を受けないようにして、入力したQtyまたはConcの値を保つ機能である。Fix 指定するには、維持したい値が記載してあるQty、または、Concのすぐ下の行に「Fix」と記入する。
Accumulatorとは、小数部分の累積方法を表現したものである。 Arg_tag に「Accumulator
」と記入することにより、 Substanceの小数部分の 累積方法を指定可能になる。累積方法の具体的な選択肢は次の Arg_coeff の節で挙げる。ただし、各物質ごとに異なる累積方法を指定 する場合、計算精度は未保証である。
Arg_coeff では、 Substance の累積方法をカプセル化 した Accumulator クラスを選択して記入する。以下に、その選択肢 を示す。
|
Substanceパートで定義した物質を用いた反応や、物質間相互作用、さらに体積などの環境変数を扱う式の指定を行う部分がReactorパートである。Reacterパートでは、反応速度式(Reacter)を指定し、反応に関わる Substance を指定して、それらの化学量論的記述を行う。 Reacter行の見出し語は下表の通りである。
|
Reactorの種類(Class: 反応速度式)はclass列で指定する。この列では、指定したいReactorを「○○Reactor」という形で記入する。この例では,MichaelisMenten式に基づいた反応速度式を用いているため、「Michaelis○○Reactor」が使われている。例中の下図は、体積をもつReactorを宣言している。その他の標準添付されているReactorがどの反応速度式を表しているかは、巻末のスペックシートに記載してある。また、大文字と小文字は区別されるので区別する。反応、または相互作用のIDをID列に記入する。大文字、小文字は区別されるので注意すること。
Path列では反応や相互作用の起こるSystem(場所)のPathを入力する。Pathの入力法はSystemパートや、SubstanceパートのPath列と同じである。この例では、「/CELL/CYTOPLASM」で反応が起こっていることがわかる。大文字と小文字は区別されるので注意すること。
Name列には反応または相互作用の名称を記入する。ここになにも記載されていない場合は、IDに記入されている情報がeriファイルに出力される。体積をもつReactor(下2段)については、それが体積であることが分かるようなNameをつけておくことが望ましい(図を参照)。 また、pstern Reactor を指定する場合は ID を「!」で始まるものにする 必要がある(詳しくは第3章を参照)。ただし FluxReactor 系など、通常の Reactor の ID を「!」で始まるものにした場合、その動作は無保証であるため 注意が必要である。
シミュレーションが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 でその体積の初期値を定義している。
S_IDではSubstrate(基質)のIDをS_PathではSubstrateが存在しているSystem(場所)のPathを指定する。この反応では、CYTOPLASMに存在しているATPとGlcがSubstrateとして反応に関わっている。S_Coeffには、Substrateの化学量論的係数を記入する。
P_IDにはProduct(生成物)となる物質のIDを、P_PathではProductが存在しているSystem(場所)のPathを指定する。ここでは、ProductとなるADPとG6PがCYTOPLASMに存在していることを示している。P_Coeffには、Productの化学量論的係数を入力する。
C_IDには反応において実際にSubstarateやProductに対してCatalyst(触媒)となって作用するもののIDを記入する。C_PathではCatalystの存在するSystem(場所)のPathを指定する。通常、このCatalystの ID, Path は、特に理由がない限りは反応の ID, Path と同一になる。
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の仕様書を参照すること。
スプレッドシートにIncludeパートを記述することで、指定したerファイルを挿入することが可能である。 このIncludeパートは、他のパート同様、ルールファイル中のどの場所にいくつあってもかまわない。 いくつかのルールファイルに共通した行などを別のerファイルとして記述し、出力されるeriファイル (E-CELL2に読み込まれる最終形式のデータファイル)にその記述を組み込みたい 場合などに有用である。シミュレーションに必要な全ての情報をスプレッドシートに書き込んであり、 他のファイルの読み込みを必要としない場合は、このIncludeパートの記述は省略する。 Includeパートでその別ファイルを指定すれば、その情報はeriファイルに組み込まれて出力される。 Includeパートの見出し語はType,Filenameである。Typeには[Include]と記入し、Filenameには 読み込みたいファイル名を指定する。例では``sample.er''というファイルを読み込んでいる。
E-CELL2 Systemに読み込まれるルールファイルフォーマットであるeriファイルに変換するには、 変換ソフトウェアが認識することのできる形であるTAB区切りのテキストファイルで保存する必要がある。 このようなタブ区切りのテキストを作成する場合は、ModelingLauncherに付属のスプレッドシート作成機能かEXCEL等の ソフトウェアを使用するのが便利である。タブ区切りテキストのサンプルは、standardディレクトリにある、.txt
拡張子のファイルを参照されたい。標準的なインストールでは、このディレクトリは"C:\E-CELL2\standard"になる。 ルールファイル作成支援のためのモデリングランチャーは、デスクトップ上のecell225madelinglauncherへのショートカットまたは [スタート]-[プログラム]-[E-CELL2]-[ModelingLauncher]から起動できる。なお、モデリングランチャーの詳細は6章を参照されたい。
E-CELL2 Systemでシミュレーションを行うには、ss2er.pl
というスプレッドシートを実行形式のeriファイルへ変換する必要がある。 モデリングランチャーを起動し、Ruleタブを選択し、SpreadSheetの欄の"File..."ボタンから"Choose..."を選択する。
変換したいファイルをファイルウィンドウから選択した後、必要に応じ変換後のファイル名を指定し"Execute"ボタンを押すことで .eri拡張子を持つルールインターメディエイトファイルが生成する。 GUI版では、ControlPanelの[File]メニューから[Load Rule]を選択することで、.eriファイルを読み込む ためのファイル選択ウィンドウが開く。E-CELL2を起動するには、3章を参照されたい。
![]() | E-CELL2 User's Manual Last Update $Date: 2002/11/25 $. Copyright: Keio University and Mitsui Knowledge Industry Co., Ltd. 2002 | 4章 ルールファイルの作成 [ |