(57)【要約】実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する化学反応または生物学的プロセスのモデルを改変するためのシステムである。シミュレーションエンジンは、前記化学反応または生物学的プロセスのモデルから予測結果を生成する。分析環境は、前記シュミレーションエンジンと連絡し、実験プラットフォームからデータを集め、前記予測結果を前記プラットフォームから集められたデータと比較する。
2007534318.tif 000002
【特許請求の範囲】
【請求項１】
実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するためのシステムであって、
前記生物学的プロセスのモデルから予測された結果を生成するシミュレーションエンジンと、
前記シュミレーションエンジンと連絡する分析環境と、
を備え、前記分析環境は、実験プラットフォームからデータを集め、前記予測された結果を前記プラットフォームから集められたデータと比較するシステム。
【請求項２】
前記分析環境が、前記分析環境によって実施された分析の結果を出力する、請求項１に記載のシステム。
【請求項３】
前記分析環境が、前記シミュレーションエンジンによって生成された予測結果および前記プラットフォームから集められた実験データを表示するためのグラフィカルディスプレイを含む、請求項２に記載のシステム。
【請求項４】
前記分析環境が、前記シミュレーションエンジンにより生成された前記予測された結果と前記プラットフォームから集められたデータとの間の差異が、所定の閾値を超えるときイベントを生成する、請求項１に記載のシステム。
【請求項５】
前記生物学的プロセスのモデルを構築するためのモデル化環境をさらに備える、請求項１に記載のシステム。
【請求項６】
前記モデル化環境が、生物学的プロセスのモデルを構築するユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースを含む、請求項５に記載のシステム。
【請求項７】
前記分析環境が、前記モデル化環境と連絡している、請求項５に記載のシステム。
【請求項８】
前記分析エンジンが、前記モデル化環境に前記プラットフォームから集められたデータを伝達する、請求項６に記載のシステム。
【請求項９】
前記モデル化環境が、前記伝達されたデータを使用して、前記生物学的プロセスの生成されたモデルを改良する、請求項８に記載のシステム。
【請求項１０】
前記分析環境が、マイクロアレイからデータを集める、請求項１に記載のシステム。
【請求項１１】
前記分析環境が、実験デバイスからデータを集める、請求項１に記載のシステム。
【請求項１２】
実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するための方法であって、
（ａ）インサイチュ実験を行う工程と、
（ｂ）シミュレーションエンジンにより、前記生物学的プロセスのモデルにアクセスする工程と、
（ｃ）前記シミュレーションエンジンにより、前記生物学的プロセスのモデルに基づいて予測された結果を生成する工程と、
（ｄ）前記実験に関するデータを集める工程と、
（ｅ）分析環境によって、前記生成された予測結果を前記実験プラットフォームから集められたデータと比較する工程と、
を備える方法。
【請求項１３】
さらに、前記分析環境により、前記シミュレーションエンジンにより生成された予測された結果、および前記プラットフォームから集められた実験データを表示する工程をさらに備える、請求項１２に記載の方法。
【請求項１４】
前記表示する工程が、前記シミュレーションエンジンにより生成された予測結果、および前記実験プラットフォームから集められた実験データをグラフィカルに表示する工程を備える、請求項１３に記載の方法。
【請求項１５】
前記生成された予測結果と前記集められたデータとの差異が、所定の閾値を超えるとき、イベントを生成する工程をさらに備える、請求項１３に記載の方法。
【請求項１６】
モデル化環境を介して、生物学的プロセスのモデルを構築するユーザコマンドとデータを受容する工程をさらに備える、請求項１２に記載の方法。
【請求項１７】
前記モデル化環境が、グラフィカルユーザインターフェースを介して、ユーザコマンドおよびデータを受容する、請求項１６に記載の方法。
【請求項１８】
前記集められたデータを前記モデル化環境に伝達する工程をさらに備える、請求項１６に記載の方法。
【請求項１９】
前記モデル化環境によって、前記伝達されたデータを使用して前記生物学的プロセスの改良されたモデルを生成する工程をさらに備える、請求項１６に記載の方法。
【請求項２０】
工程（ａ）が、マイクロアレイを使用してインサイチュ実験を行う工程を備える、請求項１２に記載の方法。
【請求項２１】
工程（ａ）が、実験デバイスを使用してインサイチュ実験を行う工程を備える、請求項１２に記載の方法。
【請求項２２】
実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するためのシステムであって、
前記生物学的プロセスのモデルから予測された結果を生成するシミュレーションエンジンと、
前記シュミレーションエンジンと連絡する分析環境と、
を備え、前記分析環境は、実験プラットフォームからデータを集め、前記予測された結果を前記実験プラットフォームから集められたデータと比較するシステム。
【請求項２３】
前記分析環境が、前記シミュレーションエンジンにより生成された予測された結果、および前記実験プラットフォームから集められた実験データを表示する、請求項２２に記載のシステム。
【請求項２４】
前記分析環境が、前記シミュレーションエンジンによって生成された予測結果、および前記実験プラットフォームから集められた実験データを表示するためのグラフィカルディスプレイを含む、請求項２３に記載のシステム。
【請求項２５】
前記分析環境が、前記シミュレーションエンジンにより生成された予測結果と前記プラットフォームから集められたデータとの差異が、所定の閾値を超えるとき、トリガされるアラームをさらに備える、請求項２２に記載のシステム。
【請求項２６】
前記生物学的プロセスのモデルを構築するためのモデル化環境をさらに備える、請求項２２に記載のシステム。
【請求項２７】
前記モデル化環境が、前記生物学的プロセスのモデルを構築するユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースを含む、請求項２６に記載のシステム。
【請求項２８】
前記分析環境が、前記モデル化環境と連絡している、請求項２６に記載のシステム。
【請求項２９】
前記分析エンジンが、前記実験プラットフォームから集められたデータを、前記モデル化環境に伝達する、請求項２８に記載のシステム。
【請求項３０】
前記モデル化環境が、前記伝達されたデータを使用して、前記生物学的プロセスの生成されたモデルを改良する、請求項２９に記載のシステム。
【請求項３１】
実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する化学反応のモデルを改変するための方法であって、
（ａ）インサイチュ実験を行う工程と、
（ｂ）シミュレーションエンジンにより、前記化学反応のモデルにアクセスする工程と、
（ｃ）前記シミュレーションエンジンにより、前記化学反応のモデルに基づいて予測された結果を生成する工程と、
（ｄ）前記実験に関するデータを集める工程と、
（ｅ）分析環境によって、前記予測された結果を前記実験プラットフォームから集められたデータと比較する工程と、
を備える方法。
【請求項３２】
さらに、前記分析環境により、前記シミュレーションエンジンにより生成された予測結果、および前記実験プラットフォームから集められた実験データを表示する工程をさらに備える、請求項３１に記載の方法。
【請求項３３】
前記表示する工程が、前記シミュレーションエンジンによって生成された予測結果、および前記実験プラットフォームから集められた実験データをグラフィカルに表示する工程を含む、請求項３２に記載の方法。
【請求項３４】
前記生成された予測結果と前記集められたデータとの差異が、所定の閾値を超えるとき、アラームをトリガする工程をさらに備える、請求項３１に記載の方法。
【請求項３５】
前記化学反応のモデルを構築するユーザコマンドおよびデータを、モデル化環境を介して受容する工程をさらに備える、請求項３１に記載の方法。
【請求項３６】
前記モデル化環境が、グラフィカルユーザインターフェースを介して、ユーザコマンドおよびデータを受容する、請求項３５に記載の方法。
【請求項３７】
前記モデル化環境に集められたデータを伝達する工程をさらに備える、請求項３５に記載の方法。
【請求項３８】
前記伝達されたデータを使用して、前記化学反応の改良されたモデルを前記モデル化環境によって生成する工程をさらに備える、請求項３５に記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００４年２月２０日出願の米国特許出願第１０／７８３，５２２号の利益を主張し、その内容は参照によってここに一体化される。
【技術分野】
【０００２】
本発明は、シミュレーションツールに関し、特に、化学反応と生化学プロセスをモデル化し、シミュレートし、分析するためのシミュレーション環境との連絡を容易にする一体化した環境に関する。
【背景技術】
【０００３】
新たな化学物質及び生化学物質の開発は、所望の特性を有する物質が得られるまでに伝統的に多数の中間物質が調合されるため、時間がかかり、各中間物質の調合には数時間から数日がかかることがある。化学的調合には、伝統的な有機物質や高分子物質の製造、およびナノ機構と呼ばれることもある小分子機構の開発が含まれる。生化学的調合には、個人の生活の質に影響する薬物の開発や分析が含まれる。化学的調合と生化学的調合の退屈でしばしば間違いが起こりやすい性質に加えて、これらの両分野はさらに困難に直面している。
【０００４】
化学物質とナノ機構の開発は、時間がかかることに加えて、危険な中間物質を生成する可能性がある。例えば、原油を消費して１以上の環境に優しい物質に分解する細菌を調合しようとする場合、研究者は、原油を多数の環境に優しい物質と致死性の毒素に分解する細菌を調合する可能性がある。さらに、化学研究者は、その研究によって生成された中間物質の廃棄という問題に直面する。ナノ機構の設計者が直面する他の問題は、ターゲット物質が環境要因に呼応して調合の最中に変異するということである。
【０００５】
生化学的研究は、疾病プロセスの特定の臨床面を変える際に重要と考えられる１以上のメカニズムに影響する可能性を有する化合物を、確認したり選択することに通常は焦点を合わせているが、上述のものに加えてさらに難題に直面している。
【０００６】
薬物の開発は、通常は細胞のおよび細胞レベル下の現象に関する研究データによって動機づけられるが、このデータはしばしば全体の系のうちの孤立したかなり狭い見方のみを考慮している。このようなデータでは、完全な生体系を統合して見ることができない。さらに、報告される狭い発見は、全身レベルに置き換えた場合、必ずしも全体的には正確ではない。
【０００７】
さらに、生物学的プロセスのためのデータを取得する現状の方法は、化学的プロセスを伴うものよりもさらに時間がかかる。これは生化学的物質のための後者のプロセスが、通常動物実験や臨床試験につながる室内実験が要求されるためである。これらの試行と実験から、データが得られ、これにより通常再び生物系の非常に狭い部分が注目される。費用がかかるおびただしい数の試行錯誤の臨床試験をし、最も最新の臨床試験から得られた教訓を説明するため薬物の臨床使用を絶えず再設計した後にのみ、適切に安全で有効性がある薬物が最終的に実現する。この臨床試験設計と再設計、多重臨床試験や状況によっては多重薬物再設計プロセスには、多大な金と時間の支出が要求される。実験データや公表された情報を吸収することにより結論が引き出される一方で、入手可能な全てのデータや知識の間の関係を統合することは、不可能では無いにしても困難である。
【０００８】
化学や生化学の研究者が直面する多様な難題によって、生物学的プロセスのモデル化、シミュレーション化、および分析のためのシステムや方法が、望ましくは、インビトロやインビボというよりもインシリコ（ｉｎ−ｓｉｌｉｃｏ）となる。
【０００９】
発明の簡単な要旨
本発明の１つの局面は、実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するためのシステムに関する。シミュレーションエンジンは、前記生物学的プロセスのモデルから予測結果を生成する。分析環境は、前記シュミレーションエンジンと連絡し、実験プラットフォームからデータを集め、前記予測結果を前記プラットフォームから集められたデータと比較する。
【００１０】
実施の形態の中には、前記分析環境が、前記シミュレーションエンジンによって生成された予測結果および前記プラットフォームから集められた実験データを表示するものもある。別の実施の形態においては、前記シミュレーションエンジンにより生成された前記予測結果と前記プラットフォームから集められたデータとの間の差異が、所定の閾値を超えるとき（アラーム等の）イベントが生成されるものもある。さらに別の実施の形態においては、システムは、前記生物学的プロセスのモデルを構築するためのモデル化構成要素を含み、これには、生物学的プロセスのモデルを構築するユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースが含まれる。これらの特定の実施の形態の中には、前記分析環境が、前記モデル化構成要素と連絡し、前記分析エンジンが、前記モデル化構成要素に前記プラットフォームから集められたデータを伝達するものもある。これらのうちの特定の実施の形態には、前記モデル化構成要素が、前記伝達されたデータを使用して、前記生物学的プロセスの生成されたモデルを改良するものもある。さらに別の実施の形態においては、前記分析環境が、マイクロアレイまたはＤＮＡチップからデータを集める。
【００１１】
本発明の別の局面は、実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するための方法に関する。実験が行われる。実験は、例えば、ＤＮＡチップまたはマイクロアレイ上で行われることができる。当業者は、この方法が、ＤＮＡチップまたはマイクロアレイに限定されないことを認識するであろう。シミュレーションエンジンが、前記生物学的プロセスのモデルを受容して、前記生物学的プロセスのモデルに基づいて予測結果を生成する。前記行われた実験から得られたデータが集められて予測された結果と比較される。
【００１２】
実施の形態の中には、前記シミュレーションエンジンにより生成された予測結果、および前記プラットフォームから集められた実験データを表示するものもある。さらに別の実施の形態において、前記生成された予測結果と前記集められたデータとの差異が、所定の閾値を超えるとき、アラームがトリガされるものもある。さらに別の実施の形態において、生物学的プロセスのモデルを構築するため、ユーザコマンドとデータを受容する。ユーザコマンドおよびデータは、グラフィカルユーザインターフェースを介して受容されることもできる。さらに別の実施の形態において、前記集められたデータが、前記モデル化環境に伝達され、前記生物学的プロセスの改良されたモデルを生成するために使用される。
【００１３】
さらに別の局面において、本発明は、実験プラットフォーム上でなされるインサイチュ実験により生成された実験結果に応答する生物学的プロセスのモデルを改変するための、コンピュータ読み取り可能なプログラム手段が具現化された製品に関する。製品は、前記生物学的プロセスのモデルにアクセスするための、コンピュータ読み取り可能なプログラム手段、前記生物学的プロセスのモデルに基づいて予測結果を生成するための、コンピュータ読み取り可能なプログラム手段、前記化学実験に関するデータを集めるための、コンピュータ読み取り可能なプログラム手段、および前記予測結果を前記プラットフォームから集められたデータと比較するための、コンピュータ読み取り可能なプログラム手段を含む。
【発明を実施するための最良の形態】
【００１４】
発明の詳細な説明
図１を参照して、生物学的プロセスを含む化学反応と生物系のためのモデル化、シミュレート化、および分析のための統合したシステム１００の１つの実施の形態の高レベルブロック図である。図１に示すように、システム１００は、図１の例示的図示においてモデル化環境１１０として示すモデル化要素、シミュレーションエンジン１２０、および分析環境１３０を含む。シミュレーションエンジン１２０は、モデル化環境１１０と連絡している。シミュレーションエンジン１２０は、モデル化環境１１０を使用して生成された化学反応や生物学的プロセスのモデルを受ける。シミュレーションエンジン１２０は、モデル環境１１０で作成されたモデルに改良点を連絡する。分析環境１３０は、モデル化環境１１０とシミュレーションエンジン１２０の両方に連絡している。分析環境１３０は、モデル化環境１１０で作成されたモデル上で様々なタイプの分析を直接行うために使用することができる。また、分析環境１３０は、モデル化環境で生成されたモデルのシミュレーションエンジン１２０による実行を表すシミュレーションエンジン１２０からの結果を受けて処理することができる。換言すれば、シミュレーションエンジン１２０は、モデルの動的挙動を生成し、この動的挙動の少なくとも幾ばくかを分析環境に連絡する。分析環境１３０は、モデル化環境１１０のモデルへ改良点を提供することができ、モデルを実行するとき、シミュレーションエンジン１２０が使用するためのパラメータを提供することができる。モデル化環境１１０、シミュレーションエンジン１２０、および分析環境１３０の間の相互作用を、以下に詳細に記載する。
【００１５】
図１に示す統合化システムは、スーパーコンピュータ、メインフレームコンピュータ、ミニコンピュータ、クラスタ計算プラットフォーム、ワークステーション、汎用デスクトップコンピュータ、ラップトップ、携帯情報端末、などの多くの異なる計算プラットフォーム上で実行することができる。図２Ａおよび２Ｂは、本発明において有用な通常の汎用デスクトップコンピュータ２００のブロック図を示す。図２Ａおよび２Ｂに示すように、各コンピュータ２００は、中央演算処理装置２０２と主記憶装置２０４を含む。各コンピュータ２００は、１以上の入力／出力デバイス２３０ａ−２３０ｂ（総じて参照符号２３０を使用して言及する）、および中央演算処理装置２０２と連絡するキャッシュメモリ２４０などの他のオプション要素も含むこともある。
【００１６】
中央演算処理装置２０２は、主記憶装置２０４から取り出した命令を処理して応答する何らかの論理回路である。多くの実施の形態において中央演算装置は、以下のようなマイクロプロセッサユニットにより提供されている。８０８８、８０２８６、８０３８６、８０４８６、Ｐｅｎｔｉｕｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）  Ｐｒｏ、Ｐｅｎｔｉｕｍ（登録商標）  ＩＩ、Ｃｅｌｅｒｏｎ、またはＸｅｏｎプロセッサ、これら全てはＣａｌｉｆｏｒｎｉａ  Ｍｏｕｎｔａｉｎ  ＶｉｅｗのＩｎｔｅｌ  Ｃｏｐｏｒａｔｉｏｎによって製造されている。６８０００、６８０１０、６８０２０、６８０３０、６８０４０、ＰｏｗｅｒＰＣ  ６０１、ＰｏｗｅｒＰＣ６０４、ＰｏｗｅｒＰＣ６０４ｅ、ＭＰＣ６０３ｅ、ＭＰＣ６０３ｅｉ、ＭＰＣ６０３ｅｖ、ＭＰＣ６０３ｒ、ＭＰＣ６０３ｐ、ＭＰＣ５００、ＭＰＣ７４０、ＭＰＣ７４５、ＭＰＣ７５０、ＭＰＣ７５５、ＭＰＣ  ５５００、ＭＰＣ７４００、ＭＰＣ７４１０、ＭＰＣ７４４１、ＭＰＣ７４４５、ＭＰＣ７４４７、ＭＰＣ７４５０、ＭＰＣ７４５１、ＭＰＣ７４５５、ＭＰＣ７４５７  プロセッサ、これら全ては、Ｉｌｌｉｎｏｉｓ  ＳｃｈａｕｍｂｕｒｇのＭｏｔｏｒｏｌａ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されている。Ｃｒｕｓｏｅ  ＴＭ５８００、Ｃｒｕｓｏｅ  ＴＭ５６００、Ｃｒｕｓｏｅ  ＴＭ５５００、Ｃｒｕｓｏｅ  ＴＭ５４００、Ｅｆｆｉｃｅｏｎ  ＴＭ８６００、Ｅｆｆｉｃｅｏｎ  ＴＭ８３００、またはＥｆｆｉｃｅｏｎ  ＴＭ８６２０  プロセッサは、Ｃａｌｉｆｏｒｎｉａ  Ｓａｎｔａ  ＣｌａｒａのＴｒａｎｓｍｅｔａ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されている。ＲＳ／６０００  プロセッサ、ＲＳ６４、ＲＳ  ６４  ＩＩ、Ｐ２ＳＣ、ＰＯＷＥＲ３、ＲＳ６４  ＩＩＩ、ＰＯＷＥＲ３−ＩＩ、ＲＳ  ６４  ＩＶ、ＰＯＷＥＲ４、ＰＯＷＥＲ４＋、ＰＯＷＥＲ５、またはＰＯＷＥＲ６  プロセッサ、これら全ては、Ｎｅｗ  Ｙｏｒｋ  Ｗｈｉｔｅ  ＰｌａｉｎｓのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  によって製造されている。  また、ＡＭＤ  Ｏｐｔｅｒｏｎ、ＡＭＤ  Ａｔｈａｌｏｎ  ６４  ＦＸ、ＡＭＤ  Ａｔｈａｌｏｎ、またはＡＭＤ  Ｄｕｒｏｎ  プロセッサは、Ｃａｌｉｆｏｒｎｉａ  ＳｕｎｎｙｖａｌｅのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓによって製造されている。
【００１７】
主記憶装置２０４は、データを格納しマイクロプロセッサ２０２によって任意の格納場所にアクセスできる１以上のメモリチップであり得、このようなメモリとしては、スタティックランダムアクセスメモリ（ＳＲＡＭ）、バーストＳＲＡＭまたは  シンクバーストＳＲＡＭ（ＳｙｎｃｈＢｕｒｓｔ  ＳＲＡＭ、ＢＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、高速ページモードＤＲＡＭ（ＦＰＭ  ＤＲＡＭ）、拡張ＤＲＡＭ（Ｅｎｈａｎｃｅｄ  ＤＲＡＭ、ＥＤＲＡＭ）、拡張データ出力ＲＡＭ（ＥＤＯ  ＲＡＭ）、拡張データ出力ＤＲＡＭ（ＥＤＯ  ＤＲＡＭ）、ビーエドーＤＲＡＭ（Ｂｕｒｓｔ  Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔｐｕｔ  ＤＲＡＭ、ＢＥＤＯ  ＤＲＡＭ）、拡張ＤＲＡＭ（Ｅｎｈａｎｃｅｄ  ＤＲＡＭ、ＥＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ＪＥＤＥＣ  ＳＲＡＭ、ＰＣ１００  ＳＤＲＡＭ、ＤＤＲＳＤＲＡＭ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、ＳＬＤＲＡＭ（ＳｙｎｃＬｉｎｋ  ＤＲＡＭ）、ダイレクトラムバスＤＲＡＭ（ＤＲＤＲＡＭ）、または不揮発性強誘電体メモリ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ、  ＦＲＡＭ）などがある。図２Ａに示す実施の形態において、プロセッサ２０２は、メインメモリ２０４とシステムバス２２０を介して連絡している（以下にさらに詳細に記載する）。図２Ｂはプロセッサがメモリポートを介してメインメモリ２０４に直接に連絡するコンピュータシステム２００の実施の形態を示す。例えば、図２Ｂにおいて、メインメモリ２０４は、ＤＲＤＲＡＭであり得る。
【００１８】
図２Ａおよび２Ｂは、メインプロセッサ２０２がキャッシュメモリ２４０と、「裏側バス」と呼ばれることもある二次バスを介して直接連絡する実施の形態を示す。他の実施の形態において、メインプロセッサ２０２は、システムバス２２０を使用してキャッシュメモリ２４０と連絡する。キャッシュメモリ２４０は、通常はメインメモリ２０４より速い応答時間を有しており、通常は、ＳＲＡＭ、ＢＳＲＡＭ、またはＥＤＲＡＭによって提供されている。
【００１９】
図２Ａに示す実施の形態において、プロセッサ２０２は、ローカルシステムバス２２０を介して多様なＩ／Ｏデバイスと連絡する。多様なバスが中央演算処理装置２０２をＩ／Ｏデバイス２３０に接続するために使用することができ、それにはＶＥＳＡ  ＶＬバス、ＩＳＡバス、ＥＩＳＡバス、ＭＣＡ（ＭｉｃｒｏＣｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＰＣＩバス、ＰＣＩ−Ｘバス、ＰＣＩ−Ｅｘｐｒｅｓｓバス、またはＮｕバスが含まれる。Ｉ／Ｏデバイスがビデオディスプレイである実施の形態に対しては、プロセッサ２０２は、プロセッサ２０２は、ディスプレイと連絡するためにＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）を使用することができる。図２Ｂは、メインプロセッサ２０２がハイパートランスポート、ラピッドＩ／Ｏ（Ｒａｐｉｄ  Ｉ／Ｏ）、またはインフィニバンドを介してＩ／Ｏデバイスと直接連絡するコンピュータシステム２００の実施の形態を示す。図２は、またローカルバスおよび直接連絡が混じっている実施の形態をも示し、プロセッサ２０２は、ローカルインターコネクトバスを使用してＩ／Ｏデバイス２３０ａと連絡し、一方でＩ／Ｏデバイス２３０ｂと直接連絡する。
【００２０】
広範なＩ／Ｏデバイス２３０がコンピュータシステム２００において存在し得る。入力デバイスには、キーボード、マウス、トラックパッド、トラックボール、マイクロフォン、および、ドローイングタブレットが含まれる。出力デバイスには、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタが含まれる。Ｉ／Ｏデバイスには、また、ハードディスクドライブ、３．５インチ、５．２５インチディスク等のフロッピー（登録商標）ディスクやＺＩＰディスクを受容するためのフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒ／ＲＷドライブ、ＤＶＤ−ＲＯＭドライブ、各種フォーマットのテープドライブ、Ｃａｌｉｆｏｒｎｉａ  Ｌｏｓ  ＡｌａｍｉｔｏｓのＴｗｉｎｔｅｃｈ  Ｉｎｄｕｓｔｒｙ，Ｉｎｃ．製のＵＳＢフラッシュドライブシリーズ等のＵＳＢ記憶装置等、コンピュータシステム２００用の大容量記憶装置が提供されることもある。
【００２１】
別の実施の形態において、Ｉ／Ｏデバイス２３０は、システムバス２２０と外部連絡バスとの間のブリッジであり得、そのようなバスには、ＵＳＢバス、アップルデスクトップバス、ＲＳ−２３２シリアル接続、ＳＣＳＩバス、ファイヤワイヤバス、ファイヤワイヤ８００バス、イーサネット（登録商標）バス、アップルトークバス、ギガビットイーサネット（登録商標）バス、非同期転送モードバス、ＨＩＰＰＩバス、スーパーＨＩＰＰＩバス、シリアルプラスバス、ＳＣＩ／ＬＡＭＰバス、ファイバチャネルバス（ＦｉｂｒｅＣｈａｎｎｅｌ  ｂｕｓ）、またはシリアル接続ＳＣＳＩ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ  ｂｕｓ）等がある。
【００２２】
図２Ａおよび２Ｂに示したような汎用デスクトップコンピュータは、通常はタスクのスケジューリングやシステムリソースへのアクセスを制御するオペレーティングシステムのもとで動作する。典型的なオペレーティングシステムには、Ｗａｓｈｉｎｇｔｏｎ  ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．製のＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）、Ｃａｌｉｆｏｒｎｉａ  ＣｕｐｅｒｔｉｎｏのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ製のＭａｃＯＳ、Ｎｅｗ  Ｙｏｒｋ  ＡｒｍｏｎｋのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ製のＯＳ／２、およびリナックス（とりわけＵｔａｈ  Ｓａｌｔ  Ｌａｋｅ  ＣｉｔｙのＣａｌｄｅｒａ  Ｃｏｒｐ．配布の自由利用可能なオペレーティングシステム）がある。
【００２３】
さらに別の実施の形態において、コンピュータは、リアルタイムオペレーティングシステムの制御のもとで動作することもあり得る。そのようなオペレーティングシステムには、ＡＭＸ、ＫｗｉｋＮｅｔ、ＫｗｉｋＰｅｇ（これら全てはＫＡＤＡＫ  Ｐｒｏｄｕｃｔｓ  Ｌｔｄ．製である。）、Ｃ  ＥＸＥＣＵＴＩＶＥ（ＪＭＩ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製）、ＣＭＸ−ＲＴＸ（ＣＭＸ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製）、Ｄｅｌｔａ  ＯＳ（ＣｏｒｅＴｅｋ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製）、ｅＣｏｓ（Ｒｅｄ  Ｈａｔ，  Ｉｎｃ．製）、ｅｍｂＯＳ（ＳＥＧＧＥＲ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｓｙｓｔｅｍｅ  ＧｍｂＨ製）、ｅＲＴＯＳ（ＪＫ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．製）、ＥＴＳ（ＶｅｎｔｕｒＣｏｍ製）、ＥＹＲＸ（Ｅｙｒｉｎｇ  Ｃｏｒｐｏｒａｔｉｏｎ製），ＩＮＴＥＧＲＩＴＹ（Ｇｒｅｅｎ  Ｈｉｌｌｓ  Ｓｏｆｔｗａｒｅ，Ｉｎｃ．製）、ＩＮｔｉｍｅ（登録商標）ｒｅａｌ  ｔｉｍｅ  ｅｘｔｅｎｓｉｏｎ  ｔｏ  Ｗｉｎｄｏｗｓ（登録商標）（ＴｅｎＡｓｙｓ  Ｃｏｒｐｏｒａｔｉｏｎ製）、ＩＲＩＸ（ＳＧＩ製）、ｉＲＭＸ（ＴｅｎＡｓｙｓ  Ｃｏｒｐｏｒａｔｉｏｎ製）、Ｊｂｅｄ（ｅｓｍｅｒｔｅｃ，ｉｎｃ．製）、ＬｙｎｘＯＳ（ＬｙｎｕｘＷｏｒｋｓ製）、ＭＱＸ（Ｐｒｅｃｉｓｅ  Ｓｏｆｔｗａｒｅ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｉｎｃ製）、Ｎｕｃｌｅｕｓ  ＰＬＵＳ（Ａｃｃｅｌｅｒａｔｅｄ  Ｔｅｃｈｎｏｌｏｇｙ，ＥＳＤ  Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ製）、Ｏｎ  Ｔｉｍｅ  ＲＴＯＳ−３２（Ｏｎ  Ｔｉｍｅ  Ｉｎｆｏｒｍａｔｉｋ  ＧｍｂＨ製）、ＯＳ−９（Ｍｉｃｒｏｗａｒｅ  Ｓｙｓｔｅｍｓ  Ｃｏｒｐｏｒａｔｉｏｎ製）、ＯＳＥ（ＯＳＥ  Ｓｙｓｔｅｍｓ製）、ＰＤＯＳ（Ｅｙｒｉｎｇ  Ｃｏｒｐｏｒａｔｉｏｎ製）、ＰＳＸ（ＪＭＩ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製）、ＱＮＸ  Ｎｅｕｔｒｉｎｏ（ＱＮＸ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ  Ｌｔｄ．製）、ＱＮＸ４（ＱＮＸ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ  Ｌｔｄ．製）、ＲＥＤＩＣＥ−Ｌｉｎｕｘ（ＲＥＤＳｏｎｉｃ，Ｉｎｃ．製）、ＲＴＬｉｎｕｘ  （Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ  Ｌａｂｓ，Ｉｎｃ．製）、ＲＴＸ  ５．０（ＶｅｎｔｕｒＣｏｍ製）、Ｐｏｒｔｏｓ（Ｒａｂｉｈ  Ｃｈｒａｂｉｅｈ製）、ｓｍｘ（Ｍｉｃｒｏ  Ｄｉｇｉｔａｌ，Ｉｎｃ．製）、ＳｕｐｅｒＴａｓｋ！（Ｕ  Ｓ  Ｓｏｆｔｗａｒｅ製）、ＴｈｒｅａｄＸ（Ｅｘｐｒｅｓｓ  Ｌｏｇｉｃ，Ｉｎｃ．製）、Ｔｒｅｃｋ  ＡＭＸ（Ｅｌｍｉｃ  Ｓｙｓｔｅｍｓ  ＵＳＡ，Ｉｎｃ．製）、Ｔｒｅｃｋ  ＭｉｃｒｏＣ／ＯＳ−ＩＩ（Ｅｌｍｉｃ  Ｓｙｓｔｅｍｓ  ＵＳＡ，Ｉｎｃ．製）、ＴｒｏｎＴａｓｋ！（Ｕ  Ｓ  Ｓｏｆｔｗａｒｅ製）、ＴＴＰｏｓ：（ＴＴＴｅｃｈ  Ｃｏｍｐｕｔｅｒｔｅｃｈｎｉｋ  ＡＧ製）、Ｖｉｒｔｕｏｓｏ（Ｅｏｎｉｃ  Ｓｙｓｔｅｍｓ製）、ＶｘＷｏｒｋｓ  ５．４（Ｗｉｎｄ  Ｒｉｖｅｒ製）、ＳＣＯＲＥ，ＤＡＣＳ、およびＴＡＤＳ（全てＤＤＣ−Ｉ製）、Ｎｉｍｂｌｅ−ｔｈｅ  ＳｏＣ  ＲＴＯＳ（Ｅｄｄｙ  Ｓｏｌｕｔｉｏｎｓ製）、Ｎｕｃｌｅｕｓ（Ａｃｃｅｌｅｒａｔｅｄ  Ｔｅｃｈｎｏｌｏｇｙ製）、またはＦｕｓｉｏｎ  ＲＴＯＳ（ＤＳＰ  ＯＳ，Ｉｎｃ��製）がある。これらの実施の形態において、中央演算処理装置２０２は、日本国東京の株式会社日立製作所製のＨｉｔａｃｈｉ  ＳＨ７０００、または日本国東京のＮＥＣコーポレーション製のＮＥＣ  Ｖ８００等の組み込みプロセッサに置き換えることができる。
【００２４】
図１に戻って、より詳細には、モデル化環境１１０は、シミュレートすべき化学または生化学反応のモデルを作成するために入力を受け入れる。実施の形態によっては、モデル化環境１１０は、システム生物学マーク付け言語（Ｓｙｓｔｅｍｓ  Ｂｉｏｌｏｇｙ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ＳＢＭＬ）のファイル等のファイルに含まれる入力を受け入れるものもある。これらの実施の形態の他において、ファイルは、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）フォーマット、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）フォーマット、プロプライエタリマークアップ言語（ｐｒｏｐｒｉｅｔａｒｙ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ）、またはタブまたはカンマでフィールドが区切られているテキストファイルであり得る。あるいは、モデル化環境１１０は、コマンドラインインターフェースやグラフィックユーザインターフェースを介してユーザによって作成された入力を受け入れることができる。
【００２５】
図３Ａおよび３Ｂは、モデルを作成するためユーザによって作成された入力を受けるために使用することができる表形式のグラフィカルユーザインターフェース３００の実施の形態を示す。図３Ａおよび３Ｂにおいて示すように、ユーザインターフェースは、モデル窓３０２を含むことができる。図３Ａおよび３Ｂに示す実施の形態において示すように、モデル窓３０２は、１以上のモデルをＷａｓｈｉｎｇｔｏｎ  ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．製のＷＩＮＤＯＷＳ（登録商標）のオペレーティングシステムの制御下で動作するコンピュータのユーザに馴染みがあるツリー構造でリスト化する。図３Ａに示す特定の実施の形態において、化学反応の単一のモデルがモデル窓３０２に含まれ、フォルダによって「ＦｉｅｌｄＫｏｒｏｓＮｏｙｅｓＭｏｄｅｌ」とラベル付けされて表示されている。そのモデルは、「区分」「反応」「種」の３つのサブフォルダを含む。サブフォルダは、モデル化された反応要素を表している。他のグラフィカルユーザーインターフェーススキームが、この情報をシステム１００のユーザに提供するために使用することができる。実施の形態によっては、モデル窓３０２は、モデルを表すフォルダの数を表示することができるものもある。特定のフォルダをユーザが選択することによって、システムは、区分、反応、および種等の反応要素を表すモデル窓３０２にフォルダを表示する。さらに別の実施の形態において、各モデルおよび全モデルの構成要素がモデル窓３０２に表示することができ、各モデルは「ラジオボタン」を伴うことができる。１つのモデルに関連するラジオボタンを選択すると、そのモデルとその構成要素がアクティブ表示される。これらの実施の形態においては、選択されていないモデルがグレータイプで表示され、または透明グレーのオーバーレイが現状はアクティブモデルではないことを示すものもある。
【００２６】
図３Ａに戻って、グラフィカルユーザインターフェース３００は、反応テーブル３１０と種テーブル３２０も含む。反応テーブル３１０は、モデル窓３０２に表示される「反応」フォルダに関連している。同様に、種テーブル３２０は、モデル窓３０２に表示される「種」に関連している。実施の形態によっては、関連するフォルダを崩壊することによって、テーブルが表示されないようにするものもある。各テーブルは、図３Ａに示すようなグラフィカルユーザインターフェース３００と同じウィンドウではなく、独自のグラフィカルユーザインターフェースウィンドウに表示することができる。
【００２７】
反応テーブル３１０は、モデル化された生物学的プロセスや化学反応に存在する各反応を列挙する。図３Ａに示す実施の形態において、モデル化環境３００は、ベロウソフ・ジャボチンスキー反応（Ｂｅｌｏｕｓｏｖ−ＺｈａｂｏｔｉｎｓｋｙＲｅａｃｔｉｏｎ）のＦｉｅｌｄ−Ｋｏｒｏｓ−Ｎｏｙｅｓモデルに存在する反応を表示し、反応列３１２、反応速度則（ｋｉｎｅｔｉｃ  ｌａｗ）列３１８、パラメータ列３１６、可逆列３１８、の４列が含まれている。反応テーブル３１０の各列は、特定の反応に対応している。反応テーブルに表示されている列の数と形式は、ユーザが選択することができる。別の実施の形態においては、モデル化環境１１０においては、表示すべき列の数と形式は、反応のタイプに基づいてユーザが選択する。
【００２８】
図３Ａに示す実施の形態に戻って、反応列３１２は、略式で例えば、Ｃｅ−＞Ｂｒと表される反応を表示する。別の実施の形態においては、反応は、微分方程式、確率論的形式（ｓｔｏｃｈａｓｔｉｃ  ｆｏｒｍａｔ）、またはこれらの形式の２以上の混成として表現される。実施の形態によっては、反応テーブルが反応のモディファイアを特定するものもある。例えば、反応の中には、物質によって触媒作用が及ぼされるものもある。これは、表形式フォーマットにおいて、Ｃｅ−ｍ（ｓ）−＞Ｂｒとして表され、「ｓ」の存在がＣｅをＢｒに変化させることを意味する。
【００２９】
図３Ａに示す実施の形態において、反応テーブル３１０は、同定された反応が次にくる反応速度則表現を同定する反応速度則列３１４も含む。図３Ａに示す実施の形態において、Ｃｅ−＞Ｂｒ反応に対応する反応速度則は、「Ｃｅ＊ｋ５」であり、Ｃｅがパラメータ「ｋ５」および存在するＣｅの量によって制御された速度で消費されることを意味する。図３Ａに示す実施の形態において、反応速度則表現のためのパラメータがパラメータ列３１６に列挙されている。実施の形態には、反応テーブル３１０が、「質量作用」または「Ｍｉｃｈａｅｌｓ−Ｍｅｎｔｅｎ」等の特定の反応に対応する反応速度則の名前を特定する列を含むものもある。他の実施の形態において、反応テーブル３１０が、反応速度則パラメータが表現される、１／秒、１／（モル＊秒）等の単位を特定する列を含む。
【００３０】
さらに図３Ａに示す実施の形態において、反応テーブル３１０は、対応する反応が可逆であるかどうかを指示する可逆列３１８を含む。可逆反応は、いずれの方向にも生じる反応、すなわちＣｅ＜−＞Ｂｒである。実施の形態において、反応テーブル３１０が、「速い」または「遅い」等の反応の動態を特定する列を含むものもある。これらの実施の形態の中には、反応が生じる速度が１０段階で特定されるものもある。さらに別の実施の形態において、ユーザが様々な反応の速度を互いに関連して設定できるスライド制御を行うことができる。さらに別の実施の形態において、反応テーブル３１０が、反応に関する注釈やノートのための列を含むこともある。
【００３１】
図３Ａに示すモデル化環境３００は、種テーブル３２０も表示する。図３に示す実施の形態において、種テーブル３２０は、名前列３２２、初期量列３２４、および定数列３２６を含む。種テーブルは、初期状態とモデル化された生物学的プロセスまたは化学反応において使用される材料の量とを表示する。従って、図３に示す実施の形態において、モデル化された生物学的プロセスは、０．００３モル単位（すなわち０．００３にアボガドロ数を乗算した単位）の臭素で開始する。モデルが特定の種を無限に供給する想定ならば、定数列３２６は「真」へ設定される。他の実施の形態においては、種テーブル３２０は、単位（モル、分子、リットル等）を特定する列、特定の種がモデル中で独立の変数であるか（すなわち、その種がシステムへの入力であるか）、注釈用の列やノート用の列等の別の列を含む。
【００３２】
実施の形態には、モデル化環境３００が、マークアップ言語のファイルを入力として受容して、そのファイルを図３Ａに示すようなグラフィカル表示へ変換するものもある。例えば、図３Ａに示す特定の実施の形態に対応するマークアップ言語におけるベロウソフ・ジャボチンスキー反応のＦｉｅｌｄ−Ｋｏｒｏｓ−Ｎｏｙｅｓモデルの一表現を、この文書の添付Ａに示す。
【００３３】
例えば、マークアップ言語ファイルのタグに組み込まれた情報を使用するプロセスを提供することができる。例えば、＜ｒｅａｃｔｉｏｎ  ｎａｍｅ＝”Ｒｅａｃｔｉｏｎ５”  ｒｅｖｅｒｓｉｂｌｅ＝”ｆａｌｓｅ”＞（＜反応名＝”反応５”可逆＝”真”＞）は、図３Ａおよび３Ｂに示すテーブル形式のモデルを生成する。これらの実施の形態の中には、ウェブブラウザが、マークアップ言語で記述されたモデルを含むファイルを解析して、図３Ａや３Ｂに示すテーブル形式のモデルを作成するものもある。別の実施の形態においては、プロセスが、モデルを入力として受け入れ、プロセッサで直接実行可能な出力コードとして生成する。このようなコードはＣプログラミング言語で記述される。
【００３４】
モデルを実行可能コードに変換することにより、実行可能コードがネットワークを介して多数のコンピュータに伝達されてそこで実行することができる。これらの実施の形態には、バス、スター、またはリング型配線等、多くのネットワーク技術を介してコンピュータが接続できるものもある。このネットワークは、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネット等の広域ネットワーク（ＷＡＮ）であり得る。各コンピュータは、様々な接続でネットワーク１８０に接続することができる。このような接続には、標準的な電話線、ＬＡＮまたはＷＡＮリンク（Ｔ１，Ｔ３，５６ｋｂ，Ｘ．２５）、ブロードバンド接続（ＩＳＤＮ，フレームリレー、ＡＴＭ）、および無線接続が含まれる。接続は、様々な通信プロトコル（ＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、ＮｅｔＢＥＵＩ、ＳＭＢ、イーサネット（登録商標）、ＡＲＣＮＥＴ、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ２３２、ＩＥＥＥ  ８０２．１１、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥ  ８０２．１１ｂ、ＩＥＥＥ  ８０２．１１ｇ、および直接非同期接続等）を使用して確立することができる。
【００３５】
これらの実施の形態において、マスターサーバーがマークアップ言語で記述されたモデルを解析する。モデルは、ハードディスクまたはネットワーク接続を介した別のコンピュータアクセスから検索される。別の実施の形態においては、モデルは、図３Ａや３Ｂに示すような表形式のユーザ入力や、図４に示すもの等のグラフィカルインターフェースを使用してユーザによって入力される。マスターサーバーは、モデルを解析して実行可能コードを作成する。マスターサーバーによって作成された実行可能コードは、Ｃ、Ｃ＋、Ｃ＋＋、またはＣ＃で記述され、ターゲットプラットフォーム上で動作するようにコンパイルされたコード等のコンパイラ型コードであり得、またはマスターサーバーによって作成された実行可能コードは、ＪＡＶＡ（登録商標）等のバイトコード言語であり得る。実施の形態によっては、実行可能コードがネットワーク接続を介して１以上のコンピュータに伝達されるものもある。１以上のコンピュータは、モデルを表すコードを実行し、作成された結果をマスターサーバーに返す。マスターサーバーは、後の分析のために検索された結果を格納する。実施の形態によっては、マスターサーバーが、受けた結果のそれぞれのグラフィカル表現を表示するものもある。１つの実施の形態において、この技術は、モンテカルロ型解析を行うために使用される。これらの実施の形態のあるものでは、マスターサーバーが、受け取った各データポイントを収集して表示し、リアルタイムでグラフィカルに各データポイントを表示することができる。
【００３６】
図３Ｂは、大腸菌の熱ショック応答モデルをシミュレートするための表形式の反応を示す。図３Ａに関して上述したように、上部テーブルは、熱ショック蛋白の転写や翻訳に伴う多様な反応、および折り畳まれていない蛋白質（変性蛋白質）と熱ショック蛋白との相互作用を表示する。図３Ｂに示すように、全ての反応は、質量作用動態学を有し、可逆のものもあればそうでないものもある。化学反応または生化学反応を表現する別の方法は、ブロック図によるものである。
【００３７】
さらに別の実施の形態において、モデル化環境３００は、生物学的プロセスまたは化学反応をブロック図としてユーザーが表現することを可能とする。図４は、モデル化環境のブロック図の実施の形態を示す。図４に示す実施の形態において、大腸菌の熱ショック反応を示すブロックが構築中である。周知のように、大腸菌の熱ショック反応は、熱がもたらすストレスに対する防衛的な細胞反応である。温度の上昇は、主に蛋白質のアンフォールディングやミスフォールディングから、大腸菌の成長を少なくする結果となる。熱ショック反応は、シャペロンを介した蛋白質のリフォールディングにより、またはプロテアーゼを介した非機能性蛋白質の分解により、熱ショック蛋白質を介して熱がもたらすストレスに応答する。
【００３８】
図４に示すブロック図は、熱ショック応答に伴う５つの特定の遺伝子配列の発現を示す。図４は、熱ショック応答に伴うプロテアーゼの発現に対する経路４１００、４２００、４３００を一部に示す。経路４１００、４２００、４３００は、熱ショック蛋白質ｆｔｓＨ、Ｈｓ１ＶＵおよび他のプロテアーゼの発現をそれぞれ表す。経路４１００、４２００、４３００は、各配列のプロモータにおけるＲＮＡポリメラーゼとのσ３２の相互作用４１０５、４２０５、４３０５によって活性化される。各経路４１００、４２００、４３００は、σ３２およびプロモータにおけるＲＮＡポリメラーゼ相互作用４１０５、４２０５、４３０５のｍＲＮＡ媒介４１１０、４２１０、４３１０の転写４１２０、４２２０、４３２０、ならびに引き続くプロテアーゼの翻訳４１３０、４２３０、４３３０を示す。ｆｔｓＨとＨｓ１ＶＵを含む熱ショックプロテアーゼは、熱ショックにより蛋白質を分解して非機能性とするように作用する。同様に、図は、熱ショック蛋白質σ７０  とＤｎａＫの発現をそれぞれ伴う経路４４００、４５００を示す。σ３２蛋白質の発現は、σ７０とプロモータにおけるＲＮＡポリメラーゼの相互作用４４０３に活性化４４１０される。σ３２  ｍＲＮＡは、転写されて４４２０、その後σ３２は翻訳される４４３０。密接に関連する経路４５００において、熱ショック蛋白質ＤｎａＫが翻訳される。σ３２とプロモータにおけるＲＮＡポリメラーゼの相互作用４５０５は、ＤｎａＫｍＲＮＡの転写４５２０を活性化４５１０し、その後、ＤｎａＫの翻訳４５３０を活性化する。ＤｎａＫは、次いでσ３２を安定化するためσ３２と相互作用４６００することができるか、またはそれに代えて、熱ストレスによってアンフォールディングされた蛋白質をリフォールディング４７００する。
【００３９】
ブロック図エディタは、動的システムのブロック図表現を、描画、編集、注釈入れ、保存、およびプリントアウト等の動作をユーザがすることを可能とする。ブロックは、古典的ブロック図モデルの基本的数学的要素である。実施の形態によっては、モデル化環境が非仮想ブロックと仮想ブロックの２種類のブロックを含むものもある。非仮想ブロックは、σ32 とRNAポリメラーゼ相互作用４１０５、４２０５、４３０５等の基本的な動的システムである。仮想ブロックは、図示上機構便宜のため提供することができるものであり、ブロック図モデルによって記載されたシステムの方程式の定義には何ら役割を果たすものではない。例えば、図４に示す大腸菌の熱ショック機構のブロック図において、４１００、４２００、および４３００で表される、蛋白質を生成するためのσ32によって仲介される遺伝子転写は、単一の仮想ブロックとして表すことができる。（サブシステムを使用したような）階層的モデル化がモデルの読みやすさを向上するために使用できる。
【００４０】
実施の形態によっては、非仮想ブロックの意味が、「結合（ｍｅｒｇｅ）」ブロックセマンティックなど別の意味を含むように拡張されることもある。結合ブロックセマンティックは、所与の時間ステップで、その出力が結合ブロックの入力へ書き込むための最後のブロックに等しいというものである。表形式のグラフィカルユーザインターフェースの実施の形態においては、結合ブロックは、「ワイルドカード」キャラクターと組み合わせて単一の表入力を多数例の反応へと拡張することができる。例えば、反応
＊転写＿因子：ＲＮＡＰ−＞遺伝子−＞ｍＲＮＡ−＞蛋白質
（＊ｔｒａｎｓｃｒｉｐｔｉｏｎ＿ｆａｃｔｏｒ：ＲＮＡＰ−＞ｇｅｎｅ−＞ｍＲＮＡ−＞ｐｒｏｔｅｉｎ）
は、＊転写＿因子を「ワイルドカード」として使用し、一行の反応を使用するモデルで確認できる多数の蛋白質表現を可能とする。一般に、どのような通常の表現も、「ワイルドカード」の存在を知らせるために使用することができる。通常の表現、および通常の表現を多数例のコードにコンパイルするために使用される技術は周知である。モデルによって使用される転写因子は、データベース照会、ファイルから、または実行可能モデルを生成するために反応が拡張された時間におけるユーザ入力により提供することができる。提供される転写因子毎に異なる反応が起きるため、結果的に異なる遺伝子がメッセンジャRNAを生成させ、ある特定の蛋白質を発現させる可能性がある。この技術は、ユーザ側において最小の入力で一連の反応を生成するために使用することができる。
【００４１】
さらに別の実施の形態において、モデル化環境３００は条件付きの実行を提供することもできる。これは、ブロック法が全体のブロック図のサブセクションを実行するときを制御する、条件付きで反復的なサブシステムというコンセプトである。
【００４２】
ブロック図エディタは、ユーザがブロック図を描くことが可能となるグラフィカルユーザインターフェース（ＧＵＩ）要素である。図４は、フローティング要素パレットを特徴とするブロック図エディタ用のＧＵＩの実施の形態を示す。図４に示す実施の形態において、ＧＵＩツールには、多様なブロックツール４０２、４０４、４０８、多様なライン接続ツール４０６、４１２、注釈ツール４１６、フォーマットツール４１０、保存／ロードツール４１４、通知ツール４２０、および公表ツール４１８が含まれる。ブロックツール４０２、４０４、４０８は、ブロック図を作成するときにユーザが利用可能な全ての所定のブロックのライブラリを表す。個別のユーザは、このパレットを、（ａ）何らかのカスタムフォーマットのブロックに再編成、（ｂ）使用しないブロックを削除、（ｃ）ユーザが設計したカスタムブロックを追加、するようにカスタマイズすることができる。ブロックは、なんらかのヒューマンマシンインターフェース（マウスやキーボード等）によって、ウィンドウ（すなわちモデルキャンバス）上へドラッグすることができる。キャンバス上に描画されたグラフィカルバージョンのブロックを、ブロック用のアイコンと呼ぶ。ブロックパレットには異なる実施の形態があり、それには、全ブロックのツリーベースのブラウザビューが含まれる。これらの実施の形態において、フローティング要素パレットは、ユーザがパレットからブロック図要素をドラッグしてスクリーン上の適所にドロップすることを可能にする。これらの実施の形態の中には、グラフィカルエディタと相互に作用できる一式のコマンドを伴うテキストインターフェースもある。例えば、ポリメラーゼブロックをモデルにドラッグすると、蛋白質をポリメラーゼ反応において使用するようにシステムがユーザに促すこともできる。
【００４３】
このテキストインターフェースを使用することで、ブロック図上で自動編集操作する特別な処方をユーザは書くことができる。ユーザは通常、モデル用のキャンバスとして作動する一式のウィンドウとやりとりをする。モデルがサブシステムの使用（さらに以下に記載する）により複数の階層的レベルに区分けされるため、モデル用のウィンドウは１を超えることがある。さらに別の実施の形態において、ユーザのブロック図作成を容易にするためテキストインターフェースのみを提供することができる。
【００４４】
ライン接続ツール４０６、４１２によって、モデルのウィンドウ内でブロックを接続する方向付けしたラインを、ユーザは描くことができる。実施の形態によっては、単一のラインツールが提供されて、ツール、スタートポイント、およびエンドポイントをユーザが選択することでブロックを接続するものもある。別の実施の形態においては、複数接続ツールが存在し得る（図４に示す実施の形態等）。接続は、キーボード等のヒューマンマシンインターフェースを含む多様な別のメカニズムによって追加することができる。モデル化環境３００は、ユーザの要求に応じてブロックを自動時に接続して美的に満足できるブロック図（特に非常に複雑で多数のブロックを有するもの）のレイアウトを作成することができる、多様な形式の自動接続ツールも提供することができる。１のブロックを別のブロックへ接続することは、第１のブロックによって表現される種が、あるいは接続が処理を表す場合はそのブロックの出力が、第２のブロックの入力であることを意味する。
【００４５】
注釈ツール４１６によって、ユーザはブロック図のさまざまなパーツにノートや注釈を追加することができる。モデルが表形式で見られる場合は、注釈はノートまたは注釈列の中に現わすことが可能である。グラフィカル形式で見る場合、ノートは注釈が付いたブロックに近接して現わすか、または隠すことができる。
【００４６】
フォーマット化ツール４１０は、どのような文書編集ツール上でも利用可能な様々なフォーマット操作をユーザーが実行することができる。これらの操作は、ブロック図（および構成ブロック）の様々なグラフィカルな特性の選択と改変を助け、例えば、フロント選択、調節と整列、色選択等が含まれる。ブロック図とブロック図内の全ブロックは、実行またはコード生成に関連した一式の機能特性を概ね有する。特性編集ツールは、これらの特性の特定と編集を可能とするＧＵＩを提供する。
【００４７】
保存／ロードツール４１４は、作成されたブロック図モデルの保存を可能とする。保存されたモデルは、ロード機構によりエディタで後に再オープンできる。ユーザは、ライブラリと呼ばれる区分された種類のブロック図へ、事前に構成したサブシステムを含むブロックを保存することができる。このようなライブラリにより、多数の別のブロック図において同一のブロックを簡単に再使用することができる。ロード／保存機構は、実際にライブラリに存在するブロック図のブロックのローディングと保存を扱うよう特に装備されている。
【００４８】
公表ツール４１８は、ブロック図を文書として見られるようにして、任意の標準的な文書フォーマット（例えば、ポストスクリプト、ＰＤＦ、ＨＴＭＬ、ＳＢＭＬ、ＸＭＬ、ＳＧＭＬ、ＳＢＭＬ等）で公表することができる。当業者は、複数モデル用のウィンドウや上述の全ツールを、単一のマルチドキュメントインターフェース（ＭＤＩ）に組み込んで統合ソフトウェア環境を提供することが可能であろうと認識するであろう。
【００４９】
通知ツール４２０は、ブロック図上で作業したユーザが別のユーザにメッセージを送信することを可能とする。実施の形態によっては、通知ツール４２０が、ブロック図の現状のバージョンを特定のユーザにメールすることができるものもある。
【００５０】
当業者は、ブロック追加、ブロック削除、開始と終了の実行、またはブロック特性の改変等、通常ＧＵＩでやり取りする必要があるであろう一連の操作を自動的に実行するプログラムを書き出すスクリプト言語が、ブロック図パッケージにより提供されることを認識するであろう。
【００５１】
モデル化環境３００は、ユーザが大きなブロック図を作成して管理する能力を向上させる多様な他のＧＵＩツールも提供する。そのようなＧＵＩには、（ａ）ブロック図内のブロックや線等の多様な対象を見つけやすくするファインダ、（ｂ）ブロック図の実行をデバッグしやすくするデバッガ、（ｃ）ブロック図の複数の改訂を管理する改訂制御ＵＩ、および（ｄ）ブロック図を実行しながらタイミング結果を見るためのプロファイラ、等が含まれる。
ブロック用の典型的なベースデータ構造は、
class Block {
public:
// Access methods for
setting/getting block data
. . .
// Methods for block
editing
virtual ErrorStatus  BlockDrawIcon();
virtual BlockParameterData
BlockGetParameterData(); 
. . .
// Methods for block
compilation
. . .
// Methods for block
execution
………………………………………
virtual ErrorStatus
BlockOutput()     =
0;
virtual ErrorStatus
BlockDerivative() = 0;
virtual ErrorStatus
BlockUpdate()     =
0;
. . .
private:
BlockGraphicalData  blkGraphicalAttributes;
BlockFunctionalData
blkFunctionalAttributes;
BlockCompiledData   blkCompiledAttributes;
BlockExecutionData  blkExecutionData;
. . .
};
のように表わされる。
【００５２】
上記のデータ構造の例は、C++ で記述されているが、当業者は、別の言語で記述された同等なデータ構造も使用できることを認識するであろう。データ構造の主なデータフィールドは、グラフィカル特性フィールド、機能的特性フィールド、コンパイル特性フィールド（ｃｏｍｐｉｌｅｄ  ａｔｔｒｉｂｕｔｅｓ  ｆｉｅｌｄ）、および実行データフィールド、の４つのカテゴリーに分類される。
【００５３】
グラフィカル特性フィールドは、その親ブロック図のＧＵＩ内におけるブロックのグラフィカル表現に関する情報の格納を担う。フロント、色、名前、およびアイコン画像などのブロックアイコンに特有の特性は、このフィールドに格納される。これらの特性の改変は、このブロックを使用するモデルのダイナミクスに影響しないことに注目すべきである。機能的特性フィールドは、このブロックを使用するモデルのダイナミクスに影響する可能性があるブロック特性の特定を担う。これらの特性は、全体としてブロックに対して、ブロックの入力および出力ポートに対して特定される。ブロック特性の例には、ブロックサンプル回数（ｂｌｏｃｋ  ｓａｍｐｌｅ  ｔｉｍｅｓ）と制限フラッグが含まれる。ブロックサンプル回数は、ブロックが基本的な、連続的、離散的、またはハイブリッドな動的システムに対応するかを特定する。ブロックが基本的な離散時間システムであれば、この特性はブロック応答がトレースされるべき時刻間の間隔を特定する。制限フラッグは、特定のモデル化コンテキストにおけるブロックの使用を却下する。例えば、モデルにおいて一例の所与のブロックのみが存在し得るという制限を課すことができる。
【００５４】
ブロックポートの特性は、利用可能であるかそのポートで作成されたかのいずれかであるデータの特性を特定する。ブロックポート特性には、次元、データタイプ、サンプルレート（ｓａｍｐｌｅ  ｒａｔｅ）、およびダイレクトフィードスルーが含まれる。次元特性は、データ要素のための容器として使用される個別の多次元マトリクスの次元である。データタイプ特性は、データ容器内のデータの各要素のデータタイプである。複素特性は、各データ要素が実数か複素数かを特定するフラッグである。サンプルレート特性は、入力または出力ポートに対応する信号が使用される時、方法を特定する。ポートサンプル回数は、ブロックのサンプル時間を間接的に推測するためにしばしば使用することができる。ダイレクトフィードスルー特性は、入力ポートのみのために特定され、ブロックの出力方程式（Ｏｕｔｐｕｔ  ｅｑｕａｔｉｏｎｓ）が所与の入力の関数であるか否かを表示する。この特性は、ブロック図を実行しながら、ブロック方法が実行されるべきシーケンスを決定しやすくする。
【００５５】
ブロックデータ構造のコンパイル（ｃｏｍｐｉｌｅ）特性フィールドは、ブロックの特性と上記列挙の機能的特性を映し出すポートとを保持する。このフィールドは、そこに接続されるブロックの機能的特性およびコンパイル特性に関連して、ブロックの機能的特性を利用することにより、ブロック図のコンパイル（ｃｏｍｐｉｌａｔｉｏｎ）の最中に満たされる。機能的特性により作成されるコンパイル特性を決定するこのプロセスを、特性伝達と呼ぶ。特性伝達は、ブロック図コンパイルのセクションにて以下に詳述する。実行データフィールドは、主にブロック入力、出力、状態、パラメータ、およびブロックの実行中の他のワークエリアのためのソースとして作用することになるメモリ場所の格納を担う。
【００５６】
データブロック構造は、データフィールドへのアクセス方法、編集で使用する方法、コンパイルで使用する方法、実行で使用する方法、に類別される一式の関連方法も有する。データフィールドへのアクセス方法は、ブロックの多様なデータフィールドを設定し入手しやすくする。編集で使用される方法は、その親ブロック図のＧＵＩでブロックを適切に表示するため、ブロック図エディタによって呼び出される。例えば、この一連の方法には、ＧＵＩ上でブロックアイコンが有する形状を決定するＢｌｏｃｋＤｒａｗＩｃｏｎ法が含まれる。コンパイルで使用される方法は、ブロック図コンパイルエンジンによって呼び出される方法である。これらの方法は、ブロックをブロック図上の別のブロックへ接続することを有効にしやすくする。実行で使用される方法には、実行に要求される多数の異なる実行時間方法が含まれる。これらには、動的システムの内容で先に記載した、出力（Ｏｕｔｐｕｔ）、アップデート（Ｕｐｄａｔｅ）、微分方程式（Ｄｅｒｉｖａｔｉｖｅ  ｅｑｕａｔｉｏｎｓ）を実現する、ＢｌｏｃｋＯｕｔｐｕｔ、ＢｌｏｃｋＵｐｄａｔｅ、ＢｌｏｃｋＤｅｒｉｖａｔｉｖｅ法が含まれる。これらの方法に加えて、Ｊａｃｏｂｉａｎ、Ｐｒｏｊｅｃｔｉｏｎ、ＺｅｒｏＣｒｏｓｓｉｎｇｓ、Ｅｎａｂｌｅ、Ｄｉｓａｂｌｅ、Ｉｎｉｔｉａｌｉｚｅ、ＥｖａｌＰａｒａｍｓ（パラメータをチェックし処理する）、およびＧｅｔＴｉｍｅＯｆＮｅｘｔＨｉｔ  ｍｅｔｈｏｄｓなど他のランタイム方法をいくつか提供することができる。代数方程式に対しては、これらはシミュレーションエンジン１２０の議論に関連して以下に議論する様式とは異なって表現され、処理されるため、明確な方法が存在しないことに注意すべきである。
【００５７】
実施の形態によっては、モデル化環境１１０は、モデルの構築を支援する知識ベース３５０を含む。これらの実施の形態において、知識ベース３５０は、解糖等の多様な反応に対するモデルを含む。これらの実施の形態において、ユーザが、解糖用のモデルに対応する反応の入力を始めると、知識ベース３５０は、ユーザのために残りの反応を入力することができる。あるいは、知識ベース３５０は、ユーザに異なる反応のモデルを提供することができる。これらの実施の形態には、対象反応を様々なレベルの詳細で表現するモデルもある。別の実施の形態においては、知識ベース３５０は、パラメータまたは入力された反応の可逆性の指標を挿入することができる。知識ベース３５０は、化学反応や生化学反応のブロック図表現のユーザ入力を支援することもできる。例えば、知識ベース３５０は、ユーザがモデル化反応と整合しないブロックを接続して作成しないようにすることができる。モデル生成の容易化のため使用できる公衆に利用可能なデータベースの例としては、Ｓｗｉｓｓｐｒｏｔ  ｄａｔａｂａｓｅ  （ｈｔｔｐ：／／ｕｓ．ｅｘｐａｓｙ．ｏｒｇ／ｓｐｒｏｔ）、ＮＣＢＩ  （ｈｔｔｐ：／／ｗｗｗ．ｎｃｂｉ．ｎｌｍ．ｎｉｈ．ｇｏｖ）、ｔｈｅ  Ｐｒｏｔｅｉｎ  Ｄａｔａ  Ｂａｎｋ  （ｈｔｔｐ：／／ｗｗｗ．ｒｃｓｂ．ｏｒｇ／ｐｄｂ）、およびＫＥＧＧ  （ｈｔｔｐ：／／ｗｗｗ．ｇｅｎｏｍｅ．ａｄ．ｊｐ／ｋｅｇｇ／ｋｅｇｇ２．ｈｔｍｌ）が挙げられる。あるいは、ユーザは、知識ベース３５０として作用する私的データベースを提供してモデルの作成を容易にすることができる。
【００５８】
ブロック図におけるブロックは、仮想的でもよいし非仮想的でもよい。ブロックが非仮想的と表示されるということは、動的システムの数学モデルにおける方程式に影響することを意味する。ブロック図ソフトウェアのコンテキストにおいて、動的システムのモデルにおける方程式に影響しない別の仮想的ブロックを含むことは有益である。このようなブロックは、ブロック図の読みやすさとモジュール性の改善に役立ち、数学的モデルにおいて意味的な影響を及ぼさない。このような仮想的ブロックの例には、仮想的サブシステム、インポートブロック、アウトポートブロック、バスクリエータブロック、およびＦｒｏｍ  ａｎｄ  Ｇｏｔｏ  ｂｌｏｃｋｓが含まれる。
【００５９】
モジュール性は、サブシステムを使用してブロック図を階層化することによりブロック図中で達成することができる。入力と出力信号を有する単一のブロックによって表現されるブロックを集めることによって、サブシステムは階層化が可能となる。サブシステムの入力と出力信号は、サブシステム内の構成ブロックにアクセスできる。サブシステムの構成ブロックがモデル実行中にメインモデル図へ戻されると、そのサブシステムは仮想的サブシステムである。仮想的サブシステム内において、グラフィカル要素は、インポートブロックやアウトポートブロックと呼ばれて、親ブロック図への信号接続を規定するように提供されている。これらのインポートブロックやアウトポートブロックは、親ブロックへのトンネル通過信号接続を示す。
【００６０】
先に記載したように、かなり大きく複雑な動的システムをモデル化しやすくするため、ユーザには、階層ブロック図が可能とされる。入力と出力信号を有するひとまとめの単一ブロックにより表わすことを可能とすることで、サブシステムはこのような階層化が容易となる。サブシステムの入力と出力信号は、その構成ブロックへアクセスすることができる。サブシステムを互いの範囲でネスティングすることにより、任意の階層を有するブロック図を作成することができる。サブシステムは、ブロック図の意味に影響しないことが理想的である。さらに、サブシステムは、ブロックをグループ化する方法を提供し、別のブロック図構成が構成ブロックに統合された制限を課すことを可能とする。サブシステムのモジュール性を拡張するために、モデル化ソフトウェアは、サブシステム内で集めたブロックのパラメータのリストが、単一のＧＵＩからアクセスされることも可能とし、サブシステム上で特別なアイコンを規定して表示する。パラメータリストと特別なアイコンを規定するプロセスを、サブシステムのマスキングと呼ぶ。
【００６１】
２つの主なタイプのサブシステムのブロックがある。仮想的サブシステムと非仮想的サブシステムである。仮想的サブシステムは、ブロック図にグラフィカルな階層を提供する目的に適う。非仮想的サブシステムは、それ自体の実行方法（Ｏｕｔｐｕｔ、Ｕｐｄａｔｅ、Ｄｅｒｉｖａｔｉｖｅｓ等）を有して基本的に動的システムのように挙動する。これらの実行方法は、次いで構成ブロックの実行方法を呼び出す。
【００６２】
非仮想的サブシステムのクラスには、以下がある。
アトミックサブシステム。これは、仮想サブシステムに類似しており、所与の階層においてモデルの機能的局面を分類する利点を有する。これはモジュラー設計に有用である。
条件付きで実行されたサブシステム。これは、予備条件を満足したときのみ実行する非仮想的サブシステムである。
使用可能サブシステム。サブシステムに供給するイネイブル信号がゼロより大きくなるときに、構成ブロックが実行するのみである点を除いて、これは、アトミックサブシステムに類似する。
トリガ付きサブシステム。上昇および／または下降信号がサブシステムに供給するトリガ信号に見られるときに、構成ブロックが実行するのみである点を除いて、これは、アトミックサブシステムに類似する。
トリガ付きイネイブルサブシステム。これは、イネイブルとトリガ付サブシステムの特性の交差である。
アクションサブシステム。このサブシステムは、サブシステムコンテンツに実行を明確にコマンドするブロックである。アクションイニシエータ（例えば、「もし（Ｉｆ）」または「スイッチケース（ＳｗｉｔｃｈＣａｓｅ）」ブロック）に接続される。「イネイブル」信号の管理が、アクションイニシエータに委ねられたという点を除いて、このサブシステムは、イネイブルサブシステムに類似する。アクションサブシステムは、アクションイニシエータによってどのサブシステムがコマンドされて実行するかを指示するアクション信号と呼ばれる、新たなタイプの信号を規定する。
ファンクションコールサブシステム。このサブシステムは、オーナーブロックによって呼び出されたときに実行するのみであるサブシステムにブロックを集める手段を提供する。オーナーブロックは、サブシステムを呼び出す前にサブシステムに対して入力信号を計算することができる。さらに、オーナーは、呼び出しの後、サブシステムから出力信号を読むこともできる。ファンクションコールサブシステムは、データを含まないファンクションコール信号と呼ばれる新しいタイプの実行制御信号を規定する。これは、オーナーブロックとファンクションコールサブシステムとの間の実行関係を規定するために使用される。ファンクションコールオーナーは、自身を「割り込み（ｉｎｔｅｒｒｕｐｔ）」ソースとして指示することもできる。シミュレーションにおいて、ファンクションコールオーナーは、割り込みの効果をシミュレートし、コード生成において、自身が（非同期性の）割り込みに属することができる。
【００６３】
ホワイルサブシステム（Ｗｈｉｌｅ  ｓｕｂｓｙｓｔｅｍｓ）とフォーサブシステム（Ｆｏｒ  ｓｕｂｓｙｓｔｅｍｓ）。これらのサブシステムは、所与の時間ステップで複数回構成ブロックを実行する。
【００６４】
別の実施の形態において、モデル化された反応を、容易に深くまたは広く理解するために知識ベース３５０を使用することができる。例えば、大腸菌の熱ショック反応のブロック図表現を参照すると、知識ベース３５０は、σ７０を使用するかσ７０によって影響がある熱ショック反応における他の反応を確認するために使用することができる。あるいは、知識ベース３５０は、σ７０が走化性等の役割を果たす大腸菌に対する他の反応を確認することができる。このようにして、様々な環境における大腸菌の機能のより広い理解を達成することができる。
【００６５】
さらに別の実施の形態において、モデル化環境１１０は、そこからブロックを選択することができ、モデルに含まれるライブラリを提供する。モデルの仮想または非仮想ブロックによって参照されるモデルは、ライブラリの一部であるかどうかにかかわらず、実行のためのモデルに含まれる。実行可能コードが生成される実施の形態に対して、参照モデルを表わすコードも生成される。
【００６６】
仮想サブシステムは、ブロック図にグラフィカルな階層を提供するという目的に適う。非仮想サブシステムは、その独自の実行法（Ｏｕｔｐｕｔ、Ｕｐｄａｔｅ、Ｄｅｒｉｖａｔｉｖｅｓ等）を有して基本的な動的システムのように挙動する。これらの実行法は、次いで、構成ブロックの実行法を呼び出す。
【００６７】
一旦、ブロック図モデルが構成されると、ユーザが特定した1組の入力に対してユーザが特定したタイムスパンに亘ってモデル実行がなされる。実行は、ブロック図がコンパイルされるとき始まる。コンパイルステージは、モデル実行の開始を示し、データ構造の準備とパラメータの評価を伴い、ブロック特性を構成して伝達し、ブロックの接続性を決定し、ブロックの削減とブロックの挿入を行う。データ構造の準備とパラメータの評価は、コンパイルステージにおいて必要となる基本的データ構造を作成して初期化する。各ブロックに対して、方法は、ブロックがそのパラメータの全てを評価するように強制する。この方法は、ブロック図の全ブロックに要求される。なんらかの未解決のパラメータがある場合は、実行エラーがこの点で投入される。ブロックとポート／信号特性の構成と伝達の間に、各ブロック（および／またはポート）のコンパイルされた特性（次元、データタイプ、複素性、またはサンプル時間等）が、対応する機能的特性と、ラインによって所与のブロックに接続されたブロック（および／またはポート）の特性と、に基づいて設定される。１つのブロックから次に続く信号接続性へと、ブロック機能的特性がブロック図に「波及する」プロセスによって、特性設定は実行される。このプロセス（ここでは「伝達」と言う）は、２つの目的に適う。そのブロック（またはそのポートの）機能的特性を明確に特定したブロックの場合は、このブロックの特性がそれに接続されるブロックの特性と互換性があることを、確実とするのに伝達は役立つ。そうでなければエラーが出される。第２に、多くの場合にブロックは、広い範囲の特性と互換があるべく実行される。このようなブロックは、接続されるブロックの特性に従ってその挙動を適合させる。これは、オブジェクト指向のプログラム言語におけるポリモーフィズムの概念に類似する。ブロックの正確な実行は、このブロック自体が見られる特定のブロック図に基づいて選択される。モデル内での全てのレートトランジションは決定論的な結果をもたらすこと、適切なレートトランジションブロックが使用されること、を有効とすること等の他の局面がこのステップに含まれる。コンパイル化ステップは、実際のブロック接続性も決定する。仮想的ブロックは、ブロック図の実行においてなんら意味的な役割を果たさない。このステップにおいて、ブロック図における仮想的ブロックは、最適化されなくなり（除去され）、残りの非仮想的ブロックが、互いに適切に再接続される。実際のブロック接続を伴うこのコンパイルされたバージョンのブロック図は、この点から実行プロセスにおいて使用される。ブロック図においてブロックが相互接続される方法は、個別のブロックに対応する方程式（方法）が解かれる（実行される）オーダーを必ずしも規定しない。実際のオーダーは、コンパイル化における格納ステップ中に部分的に決定される。一旦、コンパイル化ステップが完了すると、格納されたオーダーは、ブロック図の実行の全期間において変更することができない。
【００６８】
コンパイル化ステージの次は、リニアモデルを作成することもできるモデルリンクステージである。リンク化が実行された後、コードが生成されることもあるしされないこともある。コードが生成される場合は、ブロック図モデル（またはその部分）が、ソフトウェアモジュールまたはハードウェア記述（広い意味でのコード）のいずれかへ翻訳される、加速されたシミュレーションモードによって、モデルはシミュレートされ／実行される。このステージが実行されると、次いでその後のステージが、ブロック図の実行中に生成されたコードを使用する。コードが生成されない場合は、コンパイルされリンクされたバージョンのブロック図が直接に利用されて、モデルを所望のタイムスパンに亘って実行することができる説明モードで、ブロック図は実行することができる。この説明モードの実行は、きめ細かい信号のトレーサビリティを得るのに適切である。コード生成による実行には、いくつかの異なる利点がある。効率の増大が実行トレーサビリティの減少という犠牲の上に通常は来るにもかかわらず、データ構造がより少なく、エンジン内の内部メッセージングがより少ないため、生成されたコードの実行は、説明による実行よりもより効率的であり得る。実行中のハードウェア記述のシミュレーションは、設計案のソフトウェアステージにおけるバグを確認して解決するのに役立つ。一旦システムがハードウェアで実行されると、このようなバグは、追跡して修復するのに非常に高くつくことがわかっている。さらに、ソフトウェアをモデル化するブロック図は、特別のクラスのシステムをモデル化しシミュレートするために適切な別のソフトウェア環境と統合することができる。モデルは、ハードウェアにおいて直接テストすることができ、それによって、新たなシステムのプロトタイプの速さと費用効果が高まる。ユーザがコードを生成するとき、ブロック図の実行をそれ以上進めないことを選択することができるということを、当業者は認識するであろう。ユーザは、コードを取り出してモデル化ソフトウェア環境領域の外部でコードを展開することを選択することができる。これは、通常は、ブロック図ソフトウェアパッケージにおける動的システムの設計の最後のステップである。
【００６９】
特定の実施の形態において、モデル化環境１１０は、モデル実行に伴う複雑性を選択することができるツールを提供する。例として図４の参照に戻って、ユーザは、単純な入力−出力ブロックとして経路４１００を実行するか、または図４に示すより詳細な形式で経路４１００を実行するか、の選択が与えられることができる。
【００７０】
図１への参照に戻って、モデル化環境１１０で作成されたモデルは、シミュレーションエンジン１２０によって使用することができる。生物学的プロセスや化学反応などの動的システムは、通常は、微分方程式、差分方程式、代数方程式、および／または漸化方程式（ｒｅｃｕｒｓｉｖｅ  ｅｑｕａｔｉｏｎｓ）のセットとしてモデル化される。どのような所与の瞬間においても、これらの方程式は、システムの出力の応答（「出力」）、その時間におけるシステムの入力刺激（「入力」）、システムの現在の状態、システムパラメータ、および時間、間の関係として考えることができる。システムの状態は、システムの構成を動的に変更する数値表現として認識することができる。例えば、単純な振り子のモデル化をする物理系においては、状態は振り子の現在の位置と速度として認識することができる。同様に、信号をフィルタ処理する信号処理系は、一式の以前の入力を状態として維持するであろう。システムパラメータは、システムの静的（一定の）構成の数値表現であり、システムの方程式において定数として認識することができる。振り子の例では、パラメータは、振り子の長さであり、フィルタの例では、パラメータはフィルタタップ（ｆｉｌｔｅｒ  ｔａｐｓ）の値である。本発明に関して有用なエンジンは、Ｍａｓｓａｃｈｕｓｅｔｔｓ  ＮａｔｉｃｋのＴｈｅ  ＭａｔｈＷｏｒｋｓ，Ｉｎｃから入手可能なＳｉｍｕｌｉｎｋである。
【００７１】
本システムは、第５のタイプの数学的モデル、確率論的モデルを、動的システムの研究に使用される数学的モデルのタイプである、微分方程式、差分方程式、代数方程式、およびハイブリッドモデルに追加するものである。第1のタイプの数学的モデルは、システムを通常の微分方程式（ＯＤＥ）を使用して記述するものであり、図５Ａに示す。動的システム５０２は、２組の方程式、出力（Ｏｕｔｐｕｔ）５０４、および微分（Ｄｅｒｉｖａｔｉｖｅ）５０６を特定する。出力方程式５０４は、所与の時刻におけるシステムの出力応答の計算を、入力、状態、パラメータ、および時間の関数として容易化する。微分方程式５０６は、入力、状態、パラメータ、および時間の関数として、現在の時間における状態の微分の計算をすることができる常微分方程式である。このクラスのモデルは、システム応答を時間の連続関数として追跡することが重要であるシステムに適している。このような連続時間システムは、一般には物理系（機械系、熱系、電気系）を代表するが、細胞内生化学反応等化学反応や生化学反応に対しても有用である。例えば、連続時間システムは、細胞代謝をモデル化するために使用することができ、一方で確率論的システムは、ＤＮＡ転写等の細胞調節系をモデル化するために使用することができる。単純なシステムに対しては、出力応答ｙ（ｔ）に対する閉じた形式の解を得るため、出力５０４と微分方程式５０６を使用することができる。しかし、通常の複雑な実世界のシステムにおいては、システムの応答は、数値的手段を介した状態を統合することによって得られる。
【００７２】
本明細書中で使用されるＯＤＥの定義は、陰微分方程式（ｉｍｐｌｉｃｉｔ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｅｑｕａｔｉｏｎｓ）と陽微分方程式（ｅｘｐｌｉｃｉｔ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｅｑｕａｔｉｏｎｓ）の両方を包含している。常微分方程式のクラスでは、モデル化されるシステムを規定する追加の方程式が要求される。例えば、投影（ｐｒｏｊｅｃｔｉｏｎｓ）と呼ばれる方程式が、微分変数を制約する（状態X1 とX2がＸ１２＋Ｘ２２＝２５によって規定される多様体に該当する必要がある等）ために要求される。この制約は、微分方程式に結合した状態として適用することができる。投影を含むシステムは、通常はＯＤＥとしてもはや適格がない可能性があり、ここではシステムの分類を簡単化するため微分代数方程式として含まれる。別の例は、独立変数および／または微分変数についての偏微分を規定するヤコビアン方程式の使用である。ヤコビアン方程式は、通常は非線形モデルの線形近似または一組の方程式の全体の線形モデルを得るときに使用される。ヤコビアン方程式は、一旦モデルがその安定状態動作点等に達すると、線形モデルを生成するためには、なんらかの形の数値積分を必要とする。出力方程式５０４と微分方程式５０６は、ブロックに対する別の関係を規定するために拡張することができる。例えば、出力５０４は、特定の時間点におけるか特定の状態が認められるとき、状態を既知の量に戻す関係を規定することにより、その状態を管理するのに役立つ可能性がある。ヤコビアンは、モデル化されたシステムの感度分析（Ｓｅｎｓｉｔｉｖｅ  Ａｎａｌｙｓｉｓ）を実行するために使用することができる。感度分析は、システムの挙動に重要な変数を認識する。
【００７３】
別のタイプの数学的モデルが、図５Ｂに示す差分方程式を使用したシステムを記述する。動的システム５０８は、出力５１０とアップデート（Ｕｐｄａｔｅ）５１２の２つの１組の方程式を特定する。出力方程式５１０は、入力、いずれか以前の時間における状態、パラメータ、および時間の関数として、所与の時刻におけるシステムの出力応答の計算をしやすくする。アップデート方程式５１２は、現在時刻における状態を、入力、いずれか以前の時間における状態、パラメータ、および時間の関数として計算することができる差分方程式である。このクラスのモデルは、時間において離散した点におけるシステム応答を追跡することが重要であるシステムに適切である。このような離散時間システムは、通常は離散時間制御やデジタル信号処理システムに代表される。単純なシステムに対しては、出力５１０とアップデート５１２方程式５１２を使用して、出力応答y(t)に対する閉じた形式の解を得ることが可能である。しかし、通常の複雑な実世界システムにおいて、システムの応答は反復により解かれる。出力５１０とアップデート方程式５１２は、所定の時間に亘ってシステム応答を解くために繰り返し適用される。別のタイプの数学的モデルが、図５Ｃに示す代数方程式を使用したシステムを記述する。動的システム５１４は、出力を得るため各時間において解かれる必要がある代数方程式５１６を使用する。単純なシステムは、システム入力と出力に対する閉じた形式の解を得ることを可能とするが、実際の代数方程式は、摂動と繰り返しの両方を含む数値的方法を使用して反復することにより最も解くことができる。動的システムのコンテキストにおいて使用される代数方程式解法技術は、以下により詳細に議論する。
【００７４】
生物学的プロセスおよび化学反応をモデル化するためには、別のモデルが有用である。このモデルは、Ｇｉｌｌｅｓｐｉｅ、Ｇｉｂｓｏｎ／Ｂｒｕｃｋ、およびτ−ｌｅａｐｉｎｇ等の確率論技術を使用してシステムを記述する。これらの技術は、ＯＤＥ／ＤＡＥシステムによって導かれる連続近似が適用できないときに有用である。これは、特定の遺伝子を転写するためのＤＮＡへのＲＮＡポリメラーゼ結合等の微量のカウントを扱うときに当てはまる可能性がある。確率論的に取り扱われるであろう化学方程式の例は、図３Ｂの反応テーブル、例えばｓ３２＋Ｄｎａｋ−＞ｓ３２：Ｄｎａｋに示す。この方程式は、ｓ３２の分子がＤｎａｋの１つの分子と結合することを示す。確率論的にシミュレートされたとき、この反応は、反応速度論に依存する確率分布に従って決定されるランダムな時間に生じる。反応が生じたときを決定するために、指数分布、二項分布、Ｆ分布、周波数分布、幾何分布、超幾何分布、多項分布、負の二項分布、パーセンテージ分布、パーセンテージ累積分布、ポアソン分布、事後分布、事前分布、ｔ分布、および正規分布等の様々な確率分布を使用することができる。別の実施の形態において、ユーザは、確率論的反応の発生に対する時間値を決定するとき、使用する確率分布を規定することができる。
【００７５】
第５のタイプの数学的モデルは、上述の４つのタイプに分類される構成要素を有する合成システムである。最も複雑な実世界モデルは、このカテゴリーに分類される。このクラスのシステムは、出力、微分、アップデート、および他の方程式を有することもある。このようなシステムの出力応答の解法には、上述の全てのクラスの解法アプローチの組み合わせが必要である。合成システムの１つの例は、微分方程式と代数方程式の両方が含まれる微分代数方程式（ＤＡＥｓ）により記述されるものである。生化学的モデルにおいて特に興味があるのは、確率論的方程式と決定論的な方程式の両方を含むハイブリッドなアプローチであり、これは、同一のモデルにおける代謝システムと制御システムの両方の解法を可能とする。
【００７６】
出力と状態の両方の点で規定された関係（方程式）を含む多くの拡張が、合成クラスのシステムの中に分類される。例えば、微分変数に対する限定された積分関係を規定することができる。この関係には、出力方程式、アップデート方程式、微分方程式、およびゼロクロッシング（Ｚｅｒｏ  Ｃｒｏｓｓｉｎｇ）方程式からなる一式の方程式が要求される。ゼロクロッシング方程式は、限定された積分の上限と下限が生じる時間点を規定する。拡張の別の例は、実行中にシステムのパーツが活性化されたり非活性化されたりするときの、状態または信号の間の関係を規定するイネイブル（Ｅｎａｂｌｅ）とディスエイブル（Ｄｉｓａｂｌｅ）方程式の概念である。
【００７７】
４つのクラスのシステム（ＯＤＥ、微分方程式、代数方程式、および合成）に固有なのは、システムサンプル時間の概念である。サンプル時間は、システムの、入力、状態、または出力（まとめて結果と言う）が、時間の進行に従ってトレースされる時間間隔である。サンプル時間（ｓａｍｐｌｅ  ｔｉｍｅｓ）に基づいて、システムは、離散時間システム、連続時間システム、およびハイブリッドシステムとして記述することができる。上記のように、確率論的システムは、作用している確率分布によって決定されるランダムな時間で生じる。
【００７８】
離散時間システムは、システム結果の展開が有限の時間間隔で追跡されるシステムである。間隔がゼロに近づく限界において、離散時間システムは、連続時間システムとなる。時間の間隔は、周期的または非周期的であり得る。確率論的システム等の非周期的レートシステムが、非均一レートシステムと呼ばれることもあるが、これは、応答を追跡することができる周期レートが無いことを意味する。連続時間システムは、システム結果の展開が連続的に変化するシステムである。連続時間信号は、数値積分の間に変化する。連続時間システムの例は、ＯＤＥによって記述されたものである。また代数もしくは合成連続時間システムもある。ハイブリッドシステムは、離散時間および連続時間要素の両方を備えるシステムである。
【００７９】
システムが１つのサンプル時間のみを有していると、シングルレートと言われる。システムが複数のサンプル時間を有していると、マルチレートと言われる。マルチレートシステムは、シングルタスキング形式の実行またはマルチタスキング形式の実行のいずれかを使用して評価（実行）することができる。マルチタスキング実行が使用されると、Ｌｉｕ，Ｃ．Ｌ．およＬＡＹＬＡＮＤ，Ｊ．Ｗ．Ｓｃｈｅｄｕｌｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｍｕｌｔｉｐｒｏｇｒａｍｍｉｎｇ  ｉｎ  ａ  Ｈａｒｄ−Ｒｅａｌ−Ｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ．ＡＣＭ  ２０，１（１９７３年１月）、４６−６１によって規定された、レートモノトニックスケジューリング原理（ｒａｔｅ  ｍｏｎｏｔｏｎｉｃ  ｓｃｈｅｄｕｌｉｎｇ  ｐｒｉｎｃｉｐａｌｓ）に従う。システムは、使用される数値積分ソルバーのタイプによって分類することができる。固定ステップシステムは、固定ステップソルバーを使用するものである。固定ステップソルバーは、通常は、固定した周期的時間間隔で次の連続状態を計算するための直接的な方法を使用する。可変ステップシステムは、可変ステップソルバーを使用するものである。可変ステップソルバーは、非周期的時間間隔で次の連続状態を計算するための間接的もしく直接的のいずれかである方法を使用する。概して、可変ステップソルバーは、所望のエラー許容度が達成されるように間隔サイズを調節するエラー制御の形式を使用する。
【００８０】
実際には、最も基本的なシステムを除いて、動的システムのための数学的モデルは、別の入力を形成するなんらかの変換の出力に、なんらかの所定の様式で適用される複雑な一組の変換を伴う。各基本的変換は、上記列挙の１つに該当する単純な動的システムとして分離して認識することができる。従って、複雑な動的システムは、多様な単純な動的システムの相互接続としてモデル化することができる。何年にも亘って進化してきたこのような相互接続の図解がブロック図である。このように、ブロック図モデルは、動的システムの挙動の詳細を伝達するための、教科書、デザイン紙、定期刊行論文、および明細書の標準的な手段と今やなってきた。
【００８１】
動的システムのブロック図は、動的システムの入力と出力を表わすラインで相互接続されたブロックの集合として図解される。各ブロックは、基本的動的システムを表わす。１つのブロックから発して他のブロックで終端するラインは、第２のブロックが第１のブロックの生成物（ｐｒｏｄｕｃｔ）であることを意味する。当業者は、用語「ブロック」は、基本的動的システムのみを言うのではなく、ブロック図の読みやすさやモジュール性を支援する他のモデル化要素をも含むことができることを認識するであろう。
【００８２】
デジタル信号処理（ＤＳＰ）の理論は、モデル化信号をサンプル系列として焦点を当てている。この見方は、サンプルｕ［ｎ］を離散時間点ｕ（ｔｋ）へマッピングすることによって、時間べースブロック図パラダイムに当然に適合する。これは、ＤＳＰシステムと、連続および／または離散時間制御システム等の他のクラスの時間ベースシステムとの間の相互作用をモデル化することができる便益を追加する。
【００８３】
換言すれば、ブロック図モデルは、信号と動的システムを表わす状態変数との間の時間ベースの関係である。モデルの解（システム応答の計算）は、これらの経時にわたる関係を評価することによって得られる。ここで、時間は、ユーザが指定した「スタート時間」に開始し、ユーザが指定した「停止時間」で終了するものとする。これらの関係のそれぞれの評価を時間ステップと言う。信号は、時間とともに変化する量を表わし、この量は、ブロック図の開始と停止の間の時間の全ての点に対して規定される。信号と状態変数の間の関係は、ブロックによって表現される何組かの方程式で規定される。これらの方程式は、入力信号、出力信号、状態、および時間の間の関係を規定する。この規定に特有なのは、方程式の係数であるパラメータの概念である。
【００８４】
ブロック図は、時間ベースの動的システムの表現専用ではなく、他の計算のモデル用でもあることに注意することが重要である。例えば、フローチャートは、プロセスフローを把握するために使用されるブロック図であるが、一般に動的システムの挙動を記述するためには適切ではない。データフローブロック図は、グラフィカルプログラミングパラダイムを記述するブロック図であり、利用可能なデータ（しばしばトークンとして考慮される）は、ブロックの実行を開始するために使用される。ここで、ブロックは操作を表わし、ラインは、ブロック間のデータフローの方向を記述する実行依存性を表わす。本明細書中で使用されるように、ブロック図という用語は、別に断りがなければ、動的システムのコンテキストで使用される時間ベースのブロック図を意味する。
【００８５】
ブロック図実行エンジンは、そのブロック図モデルにより作成された動的システムの出力の計算や追跡を可能とするソフトウェアタスクのモデル化に貢献する。実行エンジンは、ブロック図をコンパイルしリンクするタスクを実行して、コードを生成するため、および／またはブロック図モデルをシミュレートするか線形化するために使用される「メモリ内実行可能（ｉｎ−ｍｅｍｏｒｙ  ｅｘｅｃｕｔａｂｌｅ）」なバージョンのモデルを作成する。ブロック図の実行は、シミュレーションとも言う。コンパイルステージには、ブロック図におけるブロックの相互接続の統合性と有効性のチェックが伴われる。このステージにおいて、エンジンは、ブロック図におけるブロックを、ブロック方法実行リストを作成するときに使用された階層的リストに分類する。リンクステージにおいて、実行エンジンは、ブロック図の多様な構成要素の実行に必要なメモリを割り当てるため、コンパイルされたステージの結果を使用する。リンクステージは、ブロック図のシミュレーションや線形化によって使用されるブロック方法実行リストも作成する。リンクステージの中に含まれるのは、「セットアップ」方法（ブロック開始、初期化、イネイブル、および定出力法等）の評価からなるモデルの初期化である。モデルのシミュレーションおよび／または線形化は、サンプルヒットがあるとき、タイプによって（ブロックによるのではく）、ブロック方法を実行しなければならないため、ブロック方法実行リストが生成される。
【００８６】
リンク付けが機能した後、実行エンジンはコードを生成することができる。このステージにおいて、実行エンジンは、ブロック図モデル（またはその一部）を、いずれかのソフトウェアモジュールまたはハードウェア記述（広い意味でのコード）へ翻訳することを選択することができる。このステージが実行されると、次いでステージは、ブロック図の実行中に生成されたコードを使用する。このステージが完全にスキップされると、次いで実行エンジンは、ブロック図の実行の説明モードを使用する。場合によっては、ユーザは、ブロック図ソフトウェアの範囲外でコードを展開したいため、ブロック図の実行をそれ以上進めないことがある。シミュレーションステージに到達すると、実行エンジンは、シミュレーションループを実行して、サンプルヒットした際の事前に規定された順序付けでブロック方法を実行して、時間とともに変化するシステム応答を作成する。
【００８７】
推定反応時間の決定は、シミュレーションのために選択された時間間隔の大きさに依存する。ステップの大きさの選択方法を理解するため、まずはソルバーの概念を理解する必要がある。ソルバーは、（ａ）システムの出力を正確に追跡するため、連続した経路の間でどこまで実行時間が進行されるべきかを決定する、および（ｂ）実際の状態を得るため、システムの状態の微分を積分する、という２つのタスクの実行を担うシミュレーションエンジン１２０のモジュールである。第1のタスクをソルバーが実行する方法に基づいて、ソルバーは、固定化ステップソルバーまたは可変ステップソルバーという２つのベーシックなクラスに概ね分類される。
【００８８】
固定化ステップソルバーは、連続経路の間の時間ステップサイズが固定した量であるソルバーである。ユーザは、この量を概ね明確に特定する。このソルバーは、規定された時間内で動作しなければならないモデルタイプのシステムに使用される（離散システム)。例えば、アンチロックブレーキシステムを、車のブレーキシステムを制御するように、および車が確実に安全に停止するように１００分の１（０．０１）秒（ブレーキシステムがそのタイミング制約に合わない場合は、車は崩壊する。）で、このような制御を実行するように設計することができる。従って、固定化ステップソルバーは、固定した時間内に結果を生成しなければならないモデル離散システムを支援するために設計され、固定化時間ステップ実行は、モデル化システムがそのような結果を確実に作成させることができる。なんらかの反応が、離散サンプル時間を有するとして規定することができ、この場合、反応の値は固定化ステップソルバーを使用して一定の間隔で計算することができる。
【００８９】
しかし、反応によっては、連続時間システムであると規定される。これらの反応に対して、エラーの蓄積を最小化するため、シミュレーションエンジンによって決定される時間間隔イベントでスケジューリングが生じる。これらの反応には、可変ステップソルバーの使用が要求され、可変ステップソルバーは、全ての重要な挙動をシミュレートするために不均一な間隔の時間ステップが必要とされる連続システムをモデル化するように設計されている。例えば、跳ねるボールの経路、跳ねる位置、跳ねる高さ、および止まる位置、をシミュレートしてもよい。経験に基づいて、ボールの跳ねは、均等な間隔ではなく、跳ねる高さは、重力、摩擦、および他の力の結果として減少するであろう。可変ステップソルバーが、これらのタイプの連続システムのために使用されて、ボールの挙動が正確にモデル化されるように使用するステップサイズを決定する。
【００９０】
さらに別の実施の形態において、モデルによって「速い」と考えられた反応は、「ゼロ時間」で完了したとみなされ、これは、反応がモデルシミュレーションを通じて、最終結果の値を有する定数として扱われることを事実上意味する。
【００９１】
先に記載したように、確率論的反応は、有効な確率分布上でランダムな時間ベースで生じ、いずれのタイプのソルバーにもきちんと適合しない。確率論的反応を含むシステムを正確にモデル化するために、単独であっても、または確率論的要素と固定化ソルバー要素もしくは可変ソルバー要素との両方を含むハイブリッドシステムの一部としてであっても、次のステップが取られる。
【００９２】
シミュレーションは、モデルにおける各反応に対する推定時間を決定する（ステップ６０２）。システムにおける各反応に対する推定反応時間が一旦計算されると、この時間は、推定発生時間によって、状態アレイにソートされる（ステップ６０４）。１つの実施の形態において、状態アレイは、発生時間によりソートされる一式のポインタであり、各ポインタは、モデルシミュレーションの中でそのポイントで実行されるべき対象を指示する。一旦ソートされると、アレイ中の最初のエントリーによって認識される対象が実行される（ステップ６０６）。
【００９３】
トップ対象の実行は、モデル化システムに存在する種の量、またはテーブルの特定反応に対する推定反応時間に影響することがあるため、状態アレイ中の各エントリーに対する推定時間が再計算され（ステップ６０８）状態アレイが再ソートされる（ステップ６１０）。
【００９４】
シミュレーションエンジン１２０は、実行すべき別の反応をチェックする（ステップ６１４）。別の反応が存在する場合は、シミュレーションエンジン１２０は、最終のシミュレーション時間において到達したことを決定したかを調べる（ステップ６１６）。そうでなければ、シミュレーションエンジン１２０は、状態アレイの次のエントリーを実行する（ステップ６０６）。さもなくば、シミュレーションは終了する。当業者であれば、別のスケジューリング方法論を使用することができることを認識するであろう。
【００９５】
１つの実施の形態において、シミュレーションエンジン１２０は、全体のシミュレーションコンテキストを格納するための機構、および全シミュレーションコンテキストを復元する機構を提供する。本発明の１つの局面において、シミュレーションが終了したときに（最終時間が到達するか、シミュレーションがユーザによって中断されるか、またはそれ以外か、のいずれによっても）、シミュレーションのコンテキストを格納するためにシミュレーションが開始される前に、シミュレーション環境に指示を出すモデル化環境１１０においてフラッグが設定される。コンテキストが格納されるべきか否かを問うための代わりの手順を実行することもできる（例えば、シミュレーションが終了したときのユーザのやり取り）。一旦シュミレーションが終了すると、シミュレーションコンテキストを、ワークスペースパラメータで、または別のなんらかのフォーマットで、ファイルとして格納することができる。
【００９６】
１つの実施の形態において、シミュレーションコンテキストがファイルへ格納される。シミュレーションコンテキスが格納されるファイルを、自動的に名前付けすることができる。しかし、ユーザが規定したファイルを代わりに使用することができる。シミュレーションコンテキストを保存するための格納機構は、メモリダンプとしてコンテキストを保存することから、対話プロセスを介したプラットフォーム独立のテキストダンプ（ｔｅｘｔｕａｌ  ｄｕｍｐ）としてコンテキストメモリを保存するに至るまで、さまざまであり得る。コンピュータアーキテクチャ間のそれに伴う構築上の不適合がない限り、結果において違いはない。コンテキストをプラットフォーム独立のバイナリダンプ、またはプラットフォーム独立のテキストダンプとして保存する別の実施も、本発明の範囲内である。
【００９７】
コンテキスト復元のユーザインターフェースは、対応する「シミュレーションを継続」コマンドでシミュレーションを開始することで達成される。これは、シミュレーションをトリガする通常の手段に対するパラメータとしてまたは他のいずれかの方法で実行することができる。継続したシミュレーションは、最終時間や別の出力時間等の初期のシミュレーションの全ての（必須および随意の）引数（ａｒｇｕｍｅｎｔｓ）を引数として取る。
【００９８】
シミュレーションコンテキストを格納するためには、「シミュレーションコンテキストを格納（ＳｔｏｒｅＳｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔ）」フラグをシミュレーションエンジン１２０に設定することができ、または当該フラグは、分析環境１３０によりシミュレーションエンジン１２０に連絡することができる。モデル化環境１１０でのグラフィカル要素の使用等の別の実施は、フラグの使用に代えてまたはそれに加えて使用することができる。さらに、コンテキスト格納はシミュレーション中に生じる操作であり得る（すなわち、通常のシミュレーションを中断することが無い。）。このため、ユーザは、特定の格納条件（例えば、定常状態の到達等シミュレーションのある時間点に達するとき、またはモデル変数の特定の値が存在するとき等）、を指定することができる。この結果、シミュレーションの動作中に、シミュレーションコンテキストのスナップショットと共に一連のシミュレーションコンテキストファイルを得ることができる。
【００９９】
１つの実施の形態において、シミュレーションエンジン１２０は、シミュレーションコンテキストを構成するメモリの領域を記録し、次いでシミュレーションコンテキストを格納し復元する手順を呼び出す。１つの実施の形態において、メモリ領域に関連するシミュレーションコンテキストは、シミュレーションが開始する前に記録される。これは、記録機構を介して、一般的なメモリアロケーションコールの経路変更により実行される。シミュレーションコンテキストを格納し復元する際の複雑さは、集まった変数がレファレンスと値を混合しているときに生じる。これを図示すると、ルンゲクッタ４５ソルバーの特性を考慮する。そのＣ＋＋実行において、ＶａｒＳｔｅｐＳｏｌｖｅｒからクラスＲＫ４５が得られる。ＲＫ４５の特性は、
RK45
double  t0;
double  *x0;
double   t1;
double  *x1;
double  h;
double  *dX[7];
bool    projectInterpolant;
static const int id;
static const double power;
である。
【０１００】
定義は、ＲＫ４５のインスタンスが、値特性とレファレンス特性を含むことを明らかにする。レファレンスは、特定のシミュレーションに特有のポインタを含み、動作するシミュレーションの間で異なる。従って、これを復元することは、無効なレファレンスという結果となり、従って、これは除外されなければならない。図７は、ＲＫ４５のインスタンスに対する割当てメモリ７７０の一部を示す。割当てメモリは、値フィールド７７２、７７４、７７６、７７８、７８０、７８２、および７８４と、レファレンスフィールド７８６、７８８、７９０、および７９２を含む。
【０１０１】
シミュレーションコンテキストメモリアロケーションの追跡のためには、２つの基本的アプローチが存在する。ローカライズした索引作成スキームは、コンテキストの一部であるオブジェクトの関連変数を追跡する。あるいは、グローバルテーブルが維持され得る。第1のアプローチは、オブジェクト指向のコーディングパラダイムに適しているが、第２のアプローチは、手続き型スタイルのコーディングにさらに適している。当業者は、シミュレーションコンテキストによって使用されるメモリの一部を認識して注目する別の方法を、本発明の範囲内で採用することができることを認識するであろう。
【０１０２】
グローバル索引作成スキームにおいて、関連変数は、それが定義されるとき、すなわちそのメモリが割り当てられるとき、特別の呼び出しにより認識される。このため、標準的なランタイム割当て手順を呼び出す代わりに、別の方法で割当て手順を呼び出す中間の機能呼び出しが使用されるが、当該呼び出しが戻る前に、これは割当てメモリをコンテキストの一部として記録する。
【０１０３】
索引作成スキームが拡張されてローカルモデル情報を格納して選択的なコンテキストの復元を容易にすることに注意する。そのようにして、モデルがそれらのパーツのメモリレイアウトに影響する場所を変更した場合でさえ、モデルのサブシステムのコンテキストを認識することができ、リクエストに応じて復元することができる。好適な実施の形態は、モデルパーツと割り当てられたメモリのインスタンスを追跡し、次いで独自の識別子が割り当てられる。
【０１０４】
数値ソルバーのモジュール化と、オブジェクト指向のコーディング原理をますます適用するイニシアチブに伴って、さらに分散化された実行の必要が出てきた。この構築において、関連メモリのグローバルインデクスを有しないが、各オブジェクトに対してこれをローカルに維持することが望ましくなる。コンテキストに応じたオブジェクトは、アクセス方法を実行してそのコンテキストを利用可能にする。いくつかの実行が可能である。例えば、オブジェクトは、コンテキストの一部である各メモリ場所にインデクスを作成することができ、ストリーミング操作を呼び出し側により実行してもらい、または、メモリ内容自体をストリームすることができる。
【０１０５】
このローカル索引作成スキームは、オブジェクトベースであるので、モデルのパーツ（１つのサブシステムのみ等）に対する選択的なメモリ復元をサポートする。コンテキストフラグメントのモデルの起源を索引作成すると、随意にはタイプ実行の間の転換機構と組み合わされて、プラットフォームと異なるコンパイルされたバージョンのモデルとの間の復元ができる。これは、詳細な現象論的プラントモデルと組み合わせて、コントローラをシミュレーションにおいて定常状態動作ポイントに到達させ、コンテキストを格納し、次いでコントローラ用のコードを生成した後、コントローラコードを初期化するための同一のコンテキストを使用する、等のサポートをする。
【０１０６】
使用され、集中され、または分散される索引作成のタイプが選択されるべきである。これは、メモリアロケーションコールへの索引作成の結合に関連し、テーブルは、コンテキストの一部であるメモリの各部を追跡する。インスタンスのためのメモリが割り当てられると、復元を可能とするコンテキストの一部であるとして索引作成される。簡単なアプローチが、＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞（＜アドレス、サイズ＞）タプルによるこのインスタンスの全てのＲＫ４５に特有のメモリに索引作成する。ＲＫ４５インスタンスのベースアドレスとそのタイプのサイズを考慮すると、メモリの全体部分は、コンテキストの一部と認識される。
【０１０７】
メモリの参照部分を除外するため、参照された変数のためのメモリアロケーションコールを利用することができる。これによって、タイプ規定がメモリの参照された部分を明確に除外するであろうときに要求されるであろう冗長性が防止される。このアプローチは、図８Ａに図示される。ＲＫ４５インスタンスが規定されると、＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タプルが、値とレファレンスの両方を含むメモリ８００の対応部分をマークする。次いで、図８Ｂにおいて、参照された変数の１つ、Ｘ０が規定されると、その値が配置されるメモリ８０２をマークする＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タプルが作成される。同一の機能において、メモリの領域を参照とともに追跡する＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タプルがパラレル索引作成スキーム８０４の一部として作成される。このようにして本発明の１つの実行は、＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タプルを有する２つの索引作成スキームを含み、１つは、値とレファレンス８００の両方を有するコンテキストに関連したメモリのためのものであり、１つは、レファレンスを含むこのメモリ８０２の各部のためのものである。この実行は、索引作成のためのアロケーションコールの利用を可能とする。あるいは、これらの参照された変数の１つが規定されるとき、レファレンスを有するメモリ索引作成スキームの中の＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タプルがパーティションで区切られてもよい。これには、幾分洗練されたレジストレーション機構が要求される。代替の実施の形態において、メモリ領域は、動的に構築されるのではなく、コンテキストの一部である一式の変数としてハードコード化がされている。両方の索引作成スキームが実行され、互いに関連して使用されている。
【０１０８】
ユーザ規定のファンクションのワークアレイは、索引作成メモリの一部であるため、変数が標準的インターフェースを介して宣言される限り、ユーザ規定のブロックを復元スキームに付かせるために別に労力は要されない。例えば、連続状態変数を宣言するためのインターフェースは、ｓｓＳｅｔＮｕｍＣｏｎｔＳｔａｔｅｓ（Ｓ，ＮＵＭ＿ＣＯＮＴ＿ＳＴＡＴＥＳ）である。ここでＳは、ユーザ定義のシステムを参照し、ＮＵＭ＿ＣＯＮＴ＿ＳＴＡＴＥＳは、連続状態の数である。さらに自由度を高めるため、ファイルから、およびファイルへの選択された変数をユーザがストリームするオプションも、ユーザ定義ブロックに対して実行される。
【０１０９】
格納され復元される必要があるメモリの領域に対する索引作成スキームによって、索引作成操作を呼び出してコンテキスト復元を容易にする機構が要求される。シミュレーション動作がリクエストされたとき、コンテキストの一部であるメモリが全て割り当てられていることに注意することが重要である。実行への変更が行われたかもしれないため(異なるソルバーが選択されたかたもしれない等）、これは、各シミュレーションが実行される前に新たに索引作成される必要がある。
【０１１０】
復元プロセスは、以下のコードスニペットでイタリックで示すように、メインシミュレーションループの周囲で実行される。
int
SimulateModel(slModel *model, CmdlInfo *cmdlInfo)
{
…
sm_SimStatus(model,
SIMSTATUS_RUNNING);
if(
slLoadContext(model)) ssSetTFinal(S, getCtxTFinal());
while (ssGetT(S) < ssGetTFinal(S))
{
…
}
slCtxStore(model);
/*store context for possible continuation*/
if (!stopRequested) {
ssSetStopRequested(S,true);
errmsg =
slDoOutputAndUpdate(model);
if (errmsg != SL\ _NoError)
return(errmsg);
}
…
return(errmsg);
} /* end SimulateModel */
【０１１１】
シミュレーションを開始する前に、復元されるフラグが設定される場合に、同一のファンクションコールにおいて実行されるｓｌＬｏａｄＣｏｎｔｅｘｔへの呼び出しによりシミュレーションコンテキストが復元される必要があるかが決定される。一旦、コンテキストが復元されると、シミュレーションは、通常に呼び出されたかのように進行する。一旦完了すると、ブロック図のＳｔｏｒｅＳｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔフラグがユーザによって設定された場合は、索引作成されたメモリは、ｓｌＣｔｘＳｔｏｒｅコールによって格納される。コンテキストは、１つの実行中のｍｃｘ拡張とともにファイルに記述される。
【０１１２】
図９に示すフローチャートは、復元機構の実行を示す。コンテキスト索引作成は、モデル特性シミュレーションコンテキスト（Ｃｏｎｔｅｘｔ）がまだ設定されていないときに開始される。これは、新たなシミュレーション動作が要求されたときに、元々索引作成されたメモリがクリアされて再割当てされるのを確実にする。そうでなければ、これは付加されて、メモリの同一領域は回数をますます増やして（シミュレーションが動作した回数に関連して）索引作成される。コンテキストがｓｌＣｔｘＳｔｏｒｅによってファイルに記述されるとすぐ、または（エラー条件等のため）別の経路の場合に新たなシミュレーション動作を開始することができることを示すためにシミュレーションコンテキストがリセットされる。
【０１１３】
新たな動作が開始されると、第１のコンテキストリダイレクトされたアロケーションコールが、ＣｏｎｔｅｘｔＩｎｉｔｉａｌｉｚａｔｉｏｎＣｏｍｐｌｅｔｅをリセットし、インデクスをリセットし、第１の＜ａｄｄｒｅｓｓ，ｓｉｚｅ＞タペルを作成する。連続したアロケーションコールが次いで、値の代わりにレファレンスを含むコンテキストメモリの各部を索引作成するスキームを含むメモリインデクスを完了する。この機能は、コンテキスト格納を容易にするため、いつでも（すなわちコンテキストが復元されないときでも）要求される。ユーザがシミュレーション継続をリクエストしたかに関して次いで決定がなされ、ｌｏａｄＣｏｎｔｅｘｔ  ｆｌａｇによって示される。もし、そうであるなら、格納されたコンテキストのモデルのメモリマップを捕捉するモデルチェックサム（ｍｏｄｅｌ  ｃｈｅｃｋｓｕｍ）が有効であり、これが、シミュレートされるべきモデルのチェックサムを満たすとき、コンテキストは復元される。これは、モデルメモリマップは、シミュレーションコンテキストを保存するため使用されたモデルのものと互換可能である必要があるので重要である。メインシミュレーションループは、次いで実行され、現在のシミュレーションコンテキストを完了したとき、ファイルに記述される。コンテキスト保存は、固定化ステップサイズの場合のために、続くｓｌＤｏＯｕｔｐｕｔＡｎｄＵｐｄａｔｅの前にされるべきであることに注意すべきであり、ｓｌＤｏＯｕｔｐｕｔＡｎｄＵｐｄａｔｅは、離散パルスジェネレータの状態を次の時間点に置くが、再スタートは、現時点から継続する。
【０１１４】
図９は、シミュレーションエンジンがシミュレーションコンテキストを復元して次いで実行するステップの手順を示す。手順は、ｌｏａｄＣｏｎｔｅｘｔ変数をゼロに設定することから始まる（ステップ９２０）。格納されたシミュレーションコンテキストが利用可能であるかに関して決定がなされる（ステップ９２２）。利用可能なものであれば、ｌｏａｄＣｏｎｔｅｘｔ変数を１に設定する（ステップ９２４）。次に、ｒｅｓｔｏｒｅＳｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔ変数をｌｏａｄＣｏｎｔｅｘｔ変数と等しくなるように設定する（ステップ９２６）。ｓｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔ変数が設定されない場合は（ステップ９２７）、メモリが割り当てられる（ステップ９２８）。次いで、シミュレーションコンテキストメモリがロードされ（ステップ９３０）、ローディングの確認がされる（ステップ９３１）。シミュレーションコンテキストが、復元された場合は、シミュレーションが生じる（ステップ９３３）。シミュレーションコンテキストは、シミュレーションの前にまたは対話形式のいずれかで決定される。ユーザの希望によりシミュレーションの後にセーブすることができる（ステップ９３３）。シミュレーションコンテキストがセーブされるべきである場合、これはセーブされ（ステップ９３４）て、割当てたメモリをフリーにしつつ、ｓｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔ変数がＮＵＬＬへリセットされる（ステップ９３６）。シミュレーションコンテキストがセーブされない場合は、ｓｉｍｕｌａｔｉｏｎＣｏｎｔｅｘｔ値はいまだＮＵＬＬへ設定されている（ステップ９３６）。
【０１１５】
復元されたシミュレーションコンテキストは、共通の再生可能点から試験的選択肢に至るまで複数の解析を動作するために使用することができる。復元されたシミュレーションコンテキストは、選択的な分析を同時に並行して動作させて使用することができる。別の実施の形態において、シミュレーションコンテキストは、構築モデルを更新するために使用することができる。シミュレーションコンテキストの復元は、一時的にシミュレーションを再動作させる必要が無いにもかかわらず、正確さを確実にすることにより、前回のシミュレーション方法に亘るかなりの時間またはシミュレーションの初期設定ステージを節約する。複数のシミュレーションコンテキストは、シミュレーションを停止することなく動作中のシミュレーションから保存することもでき、従って、デバグや別のタイプの分析に役立つ。本発明の例示の実施の形態は、システムの広範なシミュレーションを可能とし、時間べースのブロック図に限定されない。
【０１１６】
別の実施の形態において、可逆反応のシミュレーションが最適化される。これらの実施の形態において、状態アレイにおいて同一のシミュレーション時間において「両方向の」可逆反応が生じるか、すなわち、シミュレートされるべき次の２つの反応Ｃｅ−＞ＢｒとＢｒ−＞Ｃｅを確認するため、状態アレイが解析される。これが生じると、これらは互いにうち消すために両方の反応はスキップされる。周知のコード最適化技術を使用して、この概念が、一緒に互いにうち消し合う、Ｃｅ−＞Ｂｒ、Ｂｒ−＞Ｐｂ、Ｐｂ−＞Ｃｅ等の３以上の反応に拡張されることができる。
【０１１７】
図１を再び参照して、シミュレーションエンジン１２０によって生成された結果は、分析環境１３０によって使用することができる。別の実施の形態においては、例えば、システムをシミュレートする代わりに、モデル化されたシステムのための定常状態値を生成するため、分析環境１３０はモデル上で直接動作する。これらの実施の形態の中には、分析ツール１２０が、全ての微分方程式の導関数を０に設定し、システムを代数的に解くことによってこれを行うものもある。これらの別の実施の形態において、分析エンジンは、当業界で公知なように、システムの定常状態値を決定するためフラックスバランス分析を行う。分析環境１２０によって採用することができる別の周知の形態の分析には、非線形ソルバー、感度分析、分岐解析、パラメータスキャン、パラメータ推定、およびネットワーク推論解析が含まれる。これらの分析の結果は、シミュレーションエンジン１２０へ、その計算用の入力として提供することができる。
【０１１８】
分析環境１３０は、さらにシミュレーションエンジン１２０によって生成された結果を処理し、または結果を視覚的もしくは聴覚的に表示することができる。例えば、分析環境１２０は、ユーザに同様の経路を確認するため、グラフビジュアル化技術を使用することができる。実施の形態の中には、分析環境１３０が、生成された結果の実験データとの比較を分析環境１３０に可能とするデータ取得ハードウェア（図１に示さず）と連動するものもある。これらの実施の形態の中には、継続中の実験から集められたデータが、インサイチュで生じている反応のモデルを修正または生成するために使用されるものもある。実施の形態によっては、実験がマイクロアレイまたはＤＮＡチップ上で行われるものもある。例えば、所与の蛋白質の存在が、モデルによって予測されれるが、実験から得られたデータは、その蛋白質が存在しないことを示していると、分析ツール１３０は、インサイチュの実験と予測された反応が異なることを、聴覚的または視覚的にユーザに知らせることができる。マイクロアレイ上で実験が行われる実施の形態に対して、集められたデータは、マイクロウェル間で異なることがある。これらの実施の形態において、分析ツールが集められたデータの値を平均することができる。これらとは別の実施の形態において、分析環境１３０は、１つのマイクロウェルからのデータがモデルの予測された反応と異なる場合に差異を知らせることができる。実施の形態によっては、インサイチュの実験と予測結果の間の許容差の量が、ユーザ設定できるものもある。別の実施の形態において、分析ツールは、集められたデータをモデル化環境１１０に伝達して、この差異を補償するようにモデルを改変することができるものもある。さらに、別の実施の形態において、分析環境１３０は、実験の予測結果と実験から集められたデータをグラフィカルに表示する。
【０１１９】
別の実施の形態において、シミュレーションエンジン１２０によって生成された結果に基づいて、進行中の実験を分析ツールが制御することを、データ取得ハードウェアは可能とする。これらの実施の形態は、ナノ機構の構築に有用であり得る。これらの実施の形態において、モデルは、インサイチュ温度が華氏１０２度であることが要求され得る。インサイチュ環境における熱電対計測の温度が、華氏１０２度より低くなったことを示す場合は、実験にもっと熱を加えることができる。
【０１２０】
データ取得ハードウェアは、統合化したモデル化、シミュレーション、および分析環境１００を実行する計算プラットフォームと互換のある任意の数のハードウェアデバイスを含むことができる。例えば、環境１００がパーソナルコンピュータ上で実行する実施の形態において、データ取得ハードウェアは、ローカルシステムバス２２０と連動する。図２Ｂに示すような実施の形態において、データ取得ハードウェアは、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ  ｂｕｓ、Ｒａｐｉｄ  Ｉ／Ｏ  ｂｕｓ、またはＩｎｆｉｎｉＢａｎｄと連動する。データ取得ハードウェアは、ＧＰＩＢ（ＩＥＥＥ−４８８，ＨＰＩＢ）、ＶＩＳＡ、ＴＣＰ／ＩＰ、およびＵＤＰ規格を使用する機器および実験と連絡することができる。
【０１２１】
本発明のシステムおよび方法を、単一のマシン上で実行するとして上述してきたが、これらは、Ｘ−Ｗｉｎｄｏｗｓ（登録商標）またはＭｉｃｒｏｓｏｆｔ  Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅｓ等のクライアントサーバ環境において使用することもできる。モデル化環境１１０、シミュレーションエンジン１２０、および分析環境１３０は、それぞれ別個のマシン上で実行することができ、又は、これらは、マシン間の任意の組み合わせで集めることができる。例えば、１つの特定の実施の形態において、モデル化環境１１０と分析環境０１３０が、「クライアント」マシン上で実行し、一方で、シミュレーションエンジンが「サーバ」マシン上で実行する。これらの実施の形態においてコンピュータは、バス、スター、またはリングトポロジ等を含む多くのネットワークトポロジによって接続されることができる。ネットワークは、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネット等の広域ネットワーク（ＷＡＮ）であり得る。そして、各コンピュータは、標準的な電話線、ＬＡＮ、またはＷＡＮリンク（Ｔ１，Ｔ３，５６ｋｂ，Ｘ．２５等）、ブロードバンド接続（ＩＳＤＮ，Ｆｒａｍｅ  Ｒｅｌａｙ，  ＡＴＭ）、および無線接続等の多様な接続を介してネットワーク１８０に接続することができる。接続は、さまざまな通信プロトコル（ＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、ＮｅｔＢＥＵＩ、ＳＭＢ、イーサネット（登録商標）、ＡＲＣＮＥＴ、Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ（ＦＤＤＩ）、ＲＳ２３２、ＩＥＥＥ  ８０２．１１、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥ  ８０２．１１ｂ、ＩＥＥＥ  ８０２．１１ｇ  および  直接非同期接続等）を使用して確立することができる。
【０１２２】
本発明の実施の形態は、多様なコンピュータ実行操作のためのコンピュータコードをその上に有するコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。メディアとコンピュータコードは、特別に設計され、本発明の目的用に構成されたものであり得、または、それらは周知のものであり、コンピュータソフトウェア技術の当業者に利用可能なものであり得る。コンピュータ読み取り可能なメディアには、限定されないが、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープ等の磁気メディア、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷディスク、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ホログラフィックデバイス、等の光学メディア、フロプティカルデバイス等の光磁気メディア、フラッシュドライブ、メモリスティック、ｘＤカード、マルチメディア（ＭｕｌｔｉＭｅｄｉａ）カード、およびスマートメディアカード等の半導体メモリ、特定用途向け集積回路（「ＡＳＩＣｓ」）、ＦＰＧＡｓ（フィールドプログラマブルゲートアレイ）、プログラマブルロジックデバイス（「ＰＬＤｓ」）、プログラムコードを格納し実行するため特別に構成されたハードウェアデバイス、リードオンリーメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、ＥＰＲＯＭｓ（「ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｉｅｓ」）、およびＥＥＰＲＯＭｓ（「ｅｌｅｃｔｒｉｃａｌｌｙ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｉｅｓ」）が含まれる。
【０１２３】
このようなコンピュータ読み取り可能メディア上で実現されるコンピュータコードの例は、コンパイラなどによって作成されるマシンコード、およびインタプリタを使用するコンピュータによって実行される、より高レベルなコードを含むファイルを含む。例えば、発明の実施の形態は、Ｊａｖａ（登録商標）、Ｃ＋＋、または他のオブジェクト指向のプログラミング言語、および開発ツールを使用して実行することができる。
【０１２４】
本発明は、さまざまな特定の実施の形態を参照して記載してきたが、多様な変更がなされることができ、添付の特許請求の範囲によって規定される本発明の精神と範囲を逸脱することなく製造される代替の均等物が当業者によって理解されるべきである。さらに、本発明の目的への、特定の状況、材料、組成物、方法、プロセス、一連のステップ、に適合するように発明の精神と範囲内にとどまりつつ改変がなされることができ、そのような改変は、添付の特許請求の範囲内であることを意図している。特に、開示の方法は、特定の順序における特定のステップを参照して記載してきたが、これらのステップが、本発明の教示による製造から逸脱することなく均等な方法を形成するために、組み合わされ、下位に分割され、または再整理されることが、当業者に理解されるであろう。従って、本明細書において特に指示がなければ、ステップの順序と分類は、本発明を限定するものではない。
【０１２５】
添付Ａ
<?xml
version="1.0" encoding="UTF-8" ?> 
-
<model name="FieldKorosNoyesModel">
-
<notes>
<h1>Field-Koros-Noyes
Model of BZ Reaction</h1> 
-
<table border="0" cellspacing="0"
cellpadding="2">
-
<thead>
-
<tr>
<th
align="left" valign="middle"
bgcolor="#eeeeee">Citation</th> 
</tr>
</thead>
-
<tbody>
-
<tr>
-
<td>
R.J.Field and
R.M.Noyes,J.Chem.Phys.60,1877 (1974) ; R.J.Field,E.Koros,R.M.Noyes,JACS 94,8649
(1972);R.J.Field, R.M.Noyes,Nature 237,390 (1972) This implementation is taken
manufactured by J.D. Murray, "Mathematical Biology" (1989) page 181.（この実施は、J.D. Murray作成の「Mathematical Biology」 (1989)  181より）
<a
href="" /> 
</td>
</tr>
</tbody>
</table>
-
<table border="0" cellspacing="0"
cellpadding="2">
-
<thead>
-
<tr>
<th
align="left" valign="middle"
bgcolor="#eeeeee">Description</th> 
</tr>
</thead>
-
<tbody>
-
<tr>
<td>Field Noyes Version of
Belousov- Zhabotinsky Reaction. BrO3 is held constant; HOBr is typically
ignored, and can be replaced by an empty- set. The stoichiometry f is typically
taken as 1/ 2 or 1 (denominator 1 or 2 in SBML)（ＢｒＯ３が一定に保たれる。HOBrは、通常は無視され、任意の空集合で置換される。化学量論ｆは、通常は、1/ 2 または 1がとられる（ＳＢＭＬにおける分母１または２）。 .</td> 
</tr>
</tbody>
</table>
-
<table border="0" cellspacing="0"
cellpadding="2">
-
<thead>
-
<tr>
<th
align="left" valign="middle"
bgcolor="#eeeeee">Rate constant      </th> 
<th
align="left" valign="middle"
bgcolor="#eeeeee">Reaction</th> 
</tr>
</thead>
-
<tbody>
-
<tr>
<td>k1 =
1.3</td> 
<td>Br +
BrO3 -> HBrO2 + HOBr</td> 
</tr>
-
<tr>
<td>k2 =
2000000</td> 
<td>Br +
HBrO2 -> HOBr^2</td> 
</tr>
-
<tr>
<td>k3 =
34</td> 
<td>BrO3
+ HBrO2 -> Ce^2 + HBrO2^2</td> 
</tr>
-
<tr>
<td>k4 =
3000</td> 
<td>HBrO2^2 -> BrO3 +
HOBr</td> 
</tr>
-
<tr>
<td>k5 =
0.02</td> 
<td>Ce
-> Br^f</td> 
</tr>
</tbody>
</table>
-
<table border="0" cellspacing="0"
cellpadding="2">
-
<thead>
-
<tr>
<th
align="left" valign="middle"
bgcolor="#eeeeee">Variable</th> 
<th
align="left" valign="middle"
bgcolor="#eeeeee">IC 
</th> 
<th
align="left" valign="middle"
bgcolor="#eeeeee">ODE</th> 
</tr>
</thead>
-
<tbody>
-
<tr>
<td>Br</td> 
<td>0.003</td> 
<td>Br'[t] == -(k1*Br[t]*BrO3[t]) +
f*k5*Ce[t] - 
k2*Br[t]*HBrO2[t]</td> 
</tr>
-
<tr>
<td>Ce</td> 
<td>0.05</td> 
<td>Ce'[t] == -(k5*Ce[t]) +
2*k3*BrO3[t]*HBrO2[t]</td> 
</tr>
-
<tr>
<td>HBrO2</td> 
<td>0.001</td> 
<td>HBrO2'[t] == k1*Br[t]*BrO3[t] -
k2*Br[t]*HBrO2[t] + 
k3*BrO3[t]*HBrO2[t] - k4*HBrO2[t]^2</td> 
</tr>
-
<tr>
<td>HOBr</td> 
<td>0</td> 
<td>HOBr'[t] == k1*Br[t]*BrO3[t] +
2*k2*Br[t]*HBrO2[t]  +
k4*HBrO2[t]^2</td> 
</tr>
</tbody>
</table>
</body>
</notes>
-
<listOfCompartments>
<compartment name="BZ" />
</listOfCompartments>
-
<listOfSpecies>
<specie
name="Br" initialAmount="0.003" compartment="BZ"
boundaryCondition="false" /> 
<specie
name="BrO3" initialAmount="0.1" compartment="BZ"
boundaryCondition="true" /> 
<specie
name="Ce" initialAmount="0.05" compartment="BZ"
boundaryCondition="false" /> 
<specie
name="HBrO2" initialAmount="0.001"
compartment="BZ" boundaryCondition="false" /> 
<specie
name="HOBr" initialAmount="0" compartment="BZ"
boundaryCondition="false" /> 
</listOfSpecies>
-
<listOfReactions>
-
<reaction name="Reaction1" reversible="false">
-
<listOfReactants>
<specieReference specie="Br"
/> 
<specieReference specie="BrO3"
/> 
</listOfReactants>
-
<listOfProducts>
<specieReference
specie="HBrO2" /> 
<specieReference
specie="HOBr" /> 
</listOfProducts>
-
<kineticLaw formula="Br*BrO3*k1">
-
<listOfParameters>
<parameter
name="k1" value="1.3" /> 
</listOfParameters>
</kineticLaw>
</reaction>
-
<reaction name="Reaction2" reversible="false">
-
<listOfReactants>
<specieReference specie="Br"
/> 
<specieReference
specie="HBrO2" /> 
</listOfReactants>
-
<listOfProducts>
<specieReference
specie="HOBr" stoichiometry="2" /> 
</listOfProducts>
-
<kineticLaw formula="Br*HBrO2*k2">
-
<listOfParameters>
<parameter
name="k2" value="2000000" /> 
</listOfParameters>
</kineticLaw>
</reaction>
-
<reaction name="Reaction3" reversible="false">
-
<listOfReactants>
<specieReference
specie="BrO3" /> 
<specieReference
specie="HBrO2" /> 
</listOfReactants>
-
<listOfProducts>
<specieReference specie="Ce"
stoichiometry="2" /> 
<specieReference
specie="HBrO2" stoichiometry="2" /> 
</listOfProducts>
-
<kineticLaw formula="BrO3*HBrO2*k3">
-
<listOfParameters>
<parameter
name="k3" value="34" /> 
</listOfParameters>
</kineticLaw>
</reaction>
-
<reaction name="Reaction4" reversible="false">
-
<listOfReactants>
<specieReference specie="HBrO2"
/> 
</listOfReactants>
-
<listOfProducts>
<specieReference
specie="BrO3" /> 
<specieReference
specie="HOBr" /> 
</listOfProducts>
-
<kineticLaw formula="HBrO2^2*k4">
-
<listOfParameters>
<parameter
name="k4" value="3000" /> 
</listOfParameters>
</kineticLaw>
</reaction>
-
<reaction name="Reaction5" reversible="false">
-
<listOfReactants>
<specieReference specie="Ce"
/> 
</listOfReactants>
-
<listOfProducts>
<specieReference specie="Br"
stoichiometry="1" denominator="2" /> 
</listOfProducts>
-
<kineticLaw formula="Ce*k5">
-
<listOfParameters>
<parameter
name="k5" value="0.02" /> 
<parameter
name="f" value="0.5" /> 
</listOfParameters>
</kineticLaw>
</reaction>
</listOfReactions>
</model>
</sbml>
【図面の簡単な説明】
【０１２６】
本発明は、添付の特許請求の範囲によって特に指摘される。本発明の上述の利点と別の利点は、添付の図面を上述の詳細な説明を参照することによってより理解することができる。
【図１】図１は、統合したモデル化、シミュレーション、および分析環境の１つの実施の形態のブロック図である。
【図２】図２Ａは、本発明に関連して有用なパーソナルコンピュータの１つの実施の形態のブロック図である。図２Ｂは、本発明に関連して有用なパーソナルコンピュータの別の実施の形態のブロック図である。
【図３】図３Ａおよび３Ｂは、本発明に関連して有用なテーブル形式のモデル化環境の実施の形態を図示する画面である。
【図４】化学反応や生物学的プロセスのブロック図表現が容易に構成されるグラフィカルユーザーインターフェースの１つの実施の形態の画面である。
【図５】図５Ａは、常微分方程式を使用する動的システムのモデルを図示するブロック図である。図５Ｂは、差分方程式を使用する動的システムのモデルを図示するブロック図である。図５Ｃは、代数方程式を使用した動的システムのモデルを図示するブロック図である。
【図６】図６は、モデル化された生物学的プロセスや化学反応をシミュレートするために取られるステップの１つの実施の形態を図示するフローチャートである。
【図７】図７は、ソルバーに対する割当てメモリーのブロック図を図示する。
【図８】図８Ａは、値と参照の両方を保持するメモリの一部を示す、ソルバーに対する割当てメモリーのブロック図を示す。図８Ｂは、値および参照の両方と参照のみのパラレル索引作成とを保持するメモリの一部を示す、ソルバーに対する割当てメモリーのブロック図を示す。
【図９】図９は、実行の前の復元機構を実施するための本発明の例示の実施の形態に続くステップの手順のフローチャートを示す。
【図１】
2007534318.tif 000003
【図２】
2007534318.tif 000004
【図３Ａ】
2007534318.tif 000005
【図３Ｂ】
2007534318.tif 000006
【図４】
2007534318.tif 000007
【図５】
2007534318.tif 000008
【図６】
2007534318.tif 000009
【図７】
2007534318.tif 000010
【図８】
2007534318.tif 000011
【図９】
2007534318.tif 000012
【国際調査報告】
2007534318.tif 000013
2007534318.tif 000014
2007534318.tif 000015