説明

化学反応および生物学的反応の改善されたモデル化のための方法および装置

化学系および生物系の改善されたモデル化のためのシステムは、生物系または化学反応のモデルを構築するためのユーザコマンドおよび入力を受容するグラフィカルユーザインターフェースを含む。システムは、前記化学反応または生物系の前記構築されたモデルを入力として受容し、前記モデル化された生物系または化学反応の動的挙動を出力として生成するシミュレーションエンジンも含む。分析環境は、前記シミュレーションエンジンと連絡し、前記動的挙動を表示する。

【発明の詳細な説明】
【関連出願】
【0001】
本出願は、2004年2月20日出願の米国特許出願第10/783,522号の利益を主張し、その内容は参照によってここに一体化される。
【技術分野】
【0002】
本発明は、シミュレーションツールに関し、特に化学反応と生化学反応をモデル化するための改善された環境に関する。
【背景技術】
【0003】
新たな化学物質及び生化学物質の開発は、所望の特性を有する物質が得られるまでに伝統的に多数の中間物質が調合されるため、時間がかかり、各中間物質の調合には数時間から数日がかかることがある。化学的調合には、伝統的な有機物質や高分子物質の製造、およびナノ機構と呼ばれることもある小分子機構の開発が含まれる。生化学的調合には、個人の生活の質に影響する薬物の開発や分析が含まれる。化学的調合と生化学的調合の退屈でしばしば間違いが起こりやすい性質に加えて、これらの両分野はさらに困難に直面している。
【0004】
化学物質とナノ機構の開発は、時間がかかることに加えて、危険な中間物質を生成する可能性がある。例えば、原油を消費して1以上の環境に優しい物質に分解する細菌を調合しようとする場合、研究者は、代わりに、原油を多数の環境に優しい物質と致死性の毒素に分解する細菌を調合する可能性がある。さらに、化学研究者は、その研究によって生成された中間物質の廃棄という問題に直面する。ナノ機構の設計者が直面する他の問題は、ターゲット物質が環境要因に呼応して調合の最中に変異するということである。
【0005】
生化学的研究は、疾病プロセスの特定の臨床面を変える際に重要と考えられる1以上のメカニズムに影響する可能性を有する化合物を、確認したり選択することに通常は焦点を合わせているが、上述のものに加えてさらに難題に直面している。
【0006】
薬物の開発は、通常は細胞のおよび細胞レベル下の現象に関する研究データによって動機づけられるが、このデータはしばしば全体の系のうちの孤立したかなり狭い見方のみを考慮している。このようなデータでは、完全な生体系を統合して見ることができない。さらに、報告される狭い発見は、全身レベルに置き換えた場合、必ずしも全体的には正確ではない。
【0007】
さらに、生物学的プロセスのためのデータを取得する現状の方法は、化学的プロセスを伴うものよりもさらに時間がかかる。これは後者のプロセスが、通常動物実験や臨床試験につながる室内実験が要求されるためである。これらの試行と実験から、データが得られ、これにより通常再び生物系の非常に狭い部分が注目される。費用がかかるおびただしい数の試行錯誤の臨床試験をし、最も最新の臨床試験から得られた教訓を説明するため薬物の臨床使用を絶えず再設計した後にのみ、適切に安全で有効性がある薬物が最終的に実現する。この臨床試験設計と再設計、多重臨床試験や状況によっては多重薬物再設計プロセスには、多大な金と時間の支出が要求される。実験データや公表された情報を吸収することにより結論が引き出される一方で、入手可能な全てのデータや知識の間の関係を統合することは、不可能では無いにしても困難である。
【0008】
化学や生化学の研究者が直面する多様な難題によって、生物学的プロセスのモデル化、シミュレーション化、および分析のためのシステムや方法が、望ましくは、インビトロやインビボというよりもインシリコ(in−silico)となる。
【0009】
発明の簡単な要旨
本発明の1つの局面は、化学反応および生物系の改善されたモデル化のためのシステムに関する。システムは、化学反応または生物系のモデルを構築するためのユーザコマンドおよび入力を受容するためのグラフィカルユーザインターフェースを備えるモデル化構成要素を含む。システムは、前記構築されたモデルを入力として受容し、前記生物系または化学反応の動的挙動を生成するシミュレーションエンジンも含む。分析環境は、前記シミュレーションエンジンと連絡し、前記動的挙動を表示する。実施の形態の中には、前記モデル化構成要素が、前記化学反応または生物系のブロック図モデルの構築を可能とするものもある。これらの実施の形態の中には、モデル化環境が、一組の関連する化学反応を認識する少なくとも1つのブロックを含むものもある。
【0010】
別の局面において、本発明は、化学反応および生物系をモデル化するための改善された方法に関する。ユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースが提供され、ユーザコマンドおよびデータが、前記提供されたユーザインターフェースを介して受容される。前記受容されたユーザコマンドおよびデータが使用されて、化学反応または生物系のモデルが構築される。これが使用されて前記モデル化された化学反応または生物系に対する(予測結果等の)動的挙動が生成される。動的挙動が次いで表示される。
【0011】
さらに別の局面において、本発明は、化学反応または生物系の改善されたモデル化のための、コンピュータ読み取り可能なプログラム手段が具現化された製品に関する。製品に具体化されているのは、ユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースを提供するためのコンピュータ読み取り可能なプログラム手段、前記提供されたユーザインターフェースを介して、ユーザコマンドおよびデータを受容するためのコンピュータ読み取り可能なプログラム手段、前記受容されたユーザコマンドおよびデータを使用して、化学反応または生物系のモデルを構築するためのコンピュータ読み取り可能なプログラム手段、前記化学反応または生物系の構築されたモデルを使用して、モデル化された化学反応または生物系の動的挙動を生成するためのコンピュータ読み取り可能なプログラム手段、前記動的挙動を表示するためのコンピュータ読み取り可能なプログラム手段である。
【発明を実施するための最良の形態】
【0012】
発明の詳細な説明
図1を参照して、生物学的プロセスを含む化学反応と生物系のためのモデル化、シミュレート化、および分析のための統合したシステム100の1つの実施の形態の高レベルブロック図である。図1に示すように、システム100は、図1の例示的図示においてモデル化環境110として示すモデル化要素、シミュレーションエンジン120、および分析環境130を含む。シミュレーションエンジン120は、モデル化環境110と連絡している。シミュレーションエンジン120は、モデル化環境110を使用して生成された化学反応や生物学的プロセスのモデルを受ける。シミュレーションエンジン120は、モデル環境110で作成されたモデルに改良点を連絡する。分析環境130は、モデル化環境110とシミュレーションエンジン120の両方に連絡している。分析環境130は、モデル化環境110で作成されたモデル上で様々なタイプの分析を直接行うために使用することができる。また、分析環境130は、モデル化環境で生成されたモデルのシミュレーションエンジン120による実行を表すシミュレーションエンジン120からの結果を受けて処理することができる。換言すれば、シミュレーションエンジン120は、モデルの動的挙動を生成し、この動的挙動の少なくとも幾ばくかを分析環境に連絡する。分析環境130は、モデル化環境110のモデルへ改良点を提供することができ、モデルを実行するとき、シミュレーションエンジン120が使用するためのパラメータを提供することができる。モデル化環境110、シミュレーションエンジン120、および分析環境130の間の相互作用を、以下に詳細に記載する。
【0013】
図1に示す統合化システムは、スーパーコンピュータ、メインフレームコンピュータ、ミニコンピュータ、クラスタ計算プラットフォーム、ワークステーション、汎用デスクトップコンピュータ、ラップトップ、携帯情報端末、などの多くの異なる計算プラットフォーム上で実行することができる。図2Aおよび2Bは、本発明において有用な通常の汎用デスクトップコンピュータ200のブロック図を示す。図2Aおよび2Bに示すように、各コンピュータ200は、中央演算処理装置202と主記憶装置204を含む。各コンピュータ200は、1以上の入力/出力デバイス230a−230b(総じて参照符号230を使用して言及する)、および中央演算処理装置202と連絡するキャッシュメモリ240などの他のオプション要素も含むこともある。
【0014】
中央演算処理装置202は、主記憶装置204から取り出した命令を処理して応答する何らかの論理回路である。多くの実施の形態において中央演算装置は、以下のようなマイクロプロセッサユニットにより提供されている。8088、80286、80386、80486、Pentium(登録商標)、Pentium(登録商標) Pro、Pentium(登録商標) II、Celeron、またはXeonプロセッサ、これら全てはCalifornia Mountain ViewのIntel Coporationによって製造されている。68000、68010、68020、68030、68040、PowerPC 601、PowerPC604、PowerPC604e、MPC603e、MPC603ei、MPC603ev、MPC603r、MPC603p、MPC500、MPC740、MPC745、MPC750、MPC755、MPC 5500、MPC7400、MPC7410、MPC7441、MPC7445、MPC7447、MPC7450、MPC7451、MPC7455、MPC7457 プロセッサ、これら全ては、Illinois SchaumburgのMotorola Corporationによって製造されている。Crusoe TM5800、Crusoe TM5600、Crusoe TM5500、Crusoe TM5400、Efficeon TM8600、Efficeon TM8300、またはEfficeon TM8620 プロセッサは、California Santa ClaraのTransmeta Corporationによって製造されている。RS/6000 プロセッサ、RS64、RS 64 II、P2SC、POWER3、RS64 III、POWER3−II、RS 64 IV、POWER4、POWER4+、POWER5、またはPOWER6 プロセッサ、これら全ては、New York White PlainsのInternational Business Machines によって製造されている。 また、AMD Opteron、AMD Athalon 64 FX、AMD Athalon、またはAMD Duron プロセッサは、California SunnyvaleのAdvanced Micro Devicesによって製造されている。
【0015】
主記憶装置204は、データを格納しマイクロプロセッサ202によって任意の格納場所にアクセスできる1以上のメモリチップであり得、このようなメモリとしては、スタティックランダムアクセスメモリ(SRAM)、バーストSRAMまたは シンクバーストSRAM(SynchBurst SRAM、BSRAM)、ダイナミックランダムアクセスメモリ(DRAM)、高速ページモードDRAM(FPM DRAM)、拡張DRAM(Enhanced DRAM、EDRAM)、拡張データ出力RAM(EDO RAM)、拡張データ出力DRAM(EDO DRAM)、ビーエドーDRAM(Burst Extended Data Output DRAM、BEDO DRAM)、拡張DRAM(Enhanced DRAM、EDRAM)、シンクロナスDRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、DDRSDRAM(Double Data Rate SDRAM)、拡張SDRAM(ESDRAM)、SLDRAM(SyncLink DRAM)、ダイレクトラムバスDRAM(DRDRAM)、または不揮発性強誘電体メモリ(Ferroelectric RAM、 FRAM)などがある。図2Aに示す実施の形態において、プロセッサ202は、メインメモリ204とシステムバス220を介して連絡している(以下にさらに詳細に記載する)。図2Bはプロセッサがメモリポートを介してメインメモリ204に直接に連絡するコンピュータシステム200の実施の形態を示す。例えば、図2Bにおいて、メインメモリ204は、DRDRAMであり得る。
【0016】
図2Aおよび2Bは、メインプロセッサ202がキャッシュメモリ240と、「裏側バス」と呼ばれることもある二次バスを介して直接連絡する実施の形態を示す。他の実施の形態において、メインプロセッサ202は、システムバス220を使用してキャッシュメモリ240と連絡する。キャッシュメモリ240は、通常はメインメモリ204より速い応答時間を有しており、通常は、SRAM、BSRAM、またはEDRAMによって提供されている。
【0017】
図2Aに示す実施の形態において、プロセッサ202は、ローカルシステムバス220を介して多様なI/Oデバイスと連絡する。多様なバスが中央演算処理装置202をI/Oデバイス230に接続するために使用することができ、それにはVESA VLバス、ISAバス、EISAバス、MCA(MicroChannel Architecture)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuバスが含まれる。I/Oデバイスがビデオディスプレイである実施の形態に対しては、プロセッサ202は、プロセッサ202は、ディスプレイと連絡するためにAGP(Advanced Graphics Port)を使用することができる。図2Bは、メインプロセッサ202がハイパートランスポート、ラピッドI/O(Rapid I/O)、またはインフィニバンドを介してI/Oデバイスと直接連絡するコンピュータシステム200の実施の形態を示す。図2は、またローカルバスおよび直接連絡が混じっている実施の形態をも示し、プロセッサ202は、ローカルインターコネクトバスを使用してI/Oデバイス230aと連絡し、一方でI/Oデバイス230bと直接連絡する。
【0018】
広範なI/Oデバイス230がコンピュータシステム200において存在し得る。入力デバイスには、キーボード、マウス、トラックパッド、トラックボール、マイクロフォン、および、ドローイングタブレットが含まれる。出力デバイスには、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタが含まれる。I/Oデバイスには、また、ハードディスクドライブ、3.5インチ、5.25インチディスク等のフロッピー(登録商標)ディスクやZIPディスクを受容するためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、各種フォーマットのテープドライブ、California Los AlamitosのTwintech Industry,Inc.製のUSBフラッシュドライブシリーズ等のUSB記憶装置等、コンピュータシステム200用の大容量記憶装置が提供されることもある。
【0019】
別の実施の形態において、I/Oデバイス230は、システムバス220と外部連絡バスとの間のブリッジであり得、そのようなバスには、USBバス、アップルデスクトップバス、RS−232シリアル接続、SCSIバス、ファイヤワイヤバス、ファイヤワイヤ800バス、イーサネット(登録商標)バス、アップルトークバス、ギガビットイーサネット(登録商標)バス、非同期転送モードバス、HIPPIバス、スーパーHIPPIバス、シリアルプラスバス、SCI/LAMPバス、ファイバチャネルバス(FibreChannel bus)、またはシリアル接続SCSI(Serial Attached small computer system interface bus)等がある。
【0020】
図2Aおよび2Bに示したような汎用デスクトップコンピュータは、通常はタスクのスケジューリングやシステムリソースへのアクセスを制御するオペレーティングシステムのもとで動作する。典型的なオペレーティングシステムには、Washington RedmondのMicrosoft Corp.製のMICROSOFT WINDOWS(登録商標)、California CupertinoのApple Computer製のMacOS、New York ArmonkのInternational Business Machines製のOS/2、およびリナックス(とりわけUtah Salt Lake CityのCaldera Corp.配布の自由利用可能なオペレーティングシステム)がある。
【0021】
さらに別の実施の形態において、コンピュータは、リアルタイムオペレーティングシステムの制御のもとで動作することもあり得る。そのようなオペレーティングシステムには、AMX、KwikNet、KwikPeg(これら全てはKADAK Products Ltd.製である。)、C EXECUTIVE(JMI Software Systems,Inc.製)、CMX−RTX(CMX Systems,Inc.製)、Delta OS(CoreTek Systems,Inc.製)、eCos(Red Hat, Inc.製)、embOS(SEGGER Microcontroller Systeme GmbH製)、eRTOS(JK Microsystems,Inc.製)、ETS(VenturCom製)、EYRX(Eyring Corporation製),INTEGRITY(Green Hills Software,Inc.製)、INtime(登録商標)real time extension to Windows(登録商標)(TenAsys Corporation製)、IRIX(SGI製)、iRMX(TenAsys Corporation製)、Jbed(esmertec,inc.製)、LynxOS(LynuxWorks製)、MQX(Precise Software Technologies Inc製)、Nucleus PLUS(Accelerated Technology,ESD Mentor Graphics製)、On Time RTOS−32(On Time Informatik GmbH製)、OS−9(Microware Systems Corporation製)、OSE(OSE Systems製)、PDOS(Eyring Corporation製)、PSX(JMI Software Systems,Inc.製)、QNX Neutrino(QNX Software Systems Ltd.製)、QNX4(QNX Software Systems Ltd.製)、REDICE−Linux(REDSonic,Inc.製)、RTLinux (Finite State Machine Labs,Inc.製)、RTX 5.0(VenturCom製)、Portos(Rabih Chrabieh製)、smx(Micro Digital,Inc.製)、SuperTask!(U S Software製)、ThreadX(Express Logic,Inc.製)、Treck AMX(Elmic Systems USA,Inc.製)、Treck MicroC/OS−II(Elmic Systems USA,Inc.製)、TronTask!(U S Software製)、TTPos:(TTTech Computertechnik AG製)、Virtuoso(Eonic Systems製)、VxWorks 5.4(Wind River製)、SCORE,DACS、およびTADS(全てDDC−I製)、Nimble−the SoC RTOS(Eddy Solutions製)、Nucleus(Accelerated Technology製)、またはFusion RTOS(DSP OS,Inc.製)がある。これらの実施の形態において、中央演算処理装置202は、日本国東京の株式会社日立製作所製のHitachi SH7000、または日本国東京のNECコーポレーション製のNEC V800等の組み込みプロセッサに置き換えることができる。
【0022】
図1に戻って、より詳細には、モデル化環境110は、シミュレートすべき化学または生化学反応のモデルを作成するために入力を受け入れる。実施の形態によっては、モデル化環境110は、システム生物学マーク付け言語(Systems Biology Markup Language、SBML)のファイル等のファイルに含まれる入力を受け入れるものもある。これらの実施の形態の他において、ファイルは、HTML(HyperText Markup Language)フォーマット、XML(Extensible Markup Language)フォーマット、プロプライエタリマークアップ言語(proprietary markup language)、またはタブまたはカンマでフィールドが区切られているテキストファイルであり得る。あるいは、モデル化環境110は、コマンドラインインターフェースやグラフィックユーザインターフェースを介してユーザによって作成された入力を受け入れることができる。
【0023】
図3Aおよび3Bは、モデルを作成するためユーザによって作成された入力を受けるために使用することができる表形式のグラフィカルユーザインターフェース300の実施の形態を示す。図3Aおよび3Bにおいて示すように、ユーザインターフェースは、モデル窓302を含むことができる。図3Aおよび3Bに示す実施の形態において示すように、モデル窓302は、1以上のモデルをWashington RedmondのMicrosoft Corp.製のWINDOWS(登録商標)のオペレーティングシステムの制御下で動作するコンピュータのユーザに馴染みがあるツリー構造でリスト化する。図3Aに示す特定の実施の形態において、化学反応の単一のモデルがモデル窓302に含まれ、フォルダによって「FieldKorosNoyesModel」とラベル付けされて表示されている。そのモデルは、「区分」「反応」「種」の3つのサブフォルダを含む。サブフォルダは、モデル化された反応要素を表している。他のグラフィカルユーザーインターフェーススキームが、この情報をシステム100のユーザに提供するために使用することができる。実施の形態によっては、モデル窓302は、モデルを表すフォルダの数を表示することができるものもある。特定のフォルダをユーザが選択することによって、システムは、区分、反応、および種等の反応要素を表すモデル窓302にフォルダを表示する。さらに別の実施の形態において、各モデルおよび全モデルの構成要素がモデル窓302に表示することができ、各モデルは「ラジオボタン」を伴うことができる。1つのモデルに関連するラジオボタンを選択すると、そのモデルとその構成要素がアクティブ表示される。これらの実施の形態においては、選択されていないモデルがグレータイプで表示され、または透明グレーのオーバーレイが現状はアクティブモデルではないことを示すものもある。
【0024】
図3Aに戻って、グラフィカルユーザインターフェース300は、反応テーブル310と種テーブル320も含む。反応テーブル310は、モデル窓302に表示される「反応」フォルダに関連している。同様に、種テーブル320は、モデル窓302に表示される「種」に関連している。実施の形態によっては、関連するフォルダを崩壊することによって、テーブルが表示されないようにするものもある。各テーブルは、図3Aに示すようなグラフィカルユーザインターフェース300と同じウィンドウではなく、独自のグラフィカルユーザインターフェースウィンドウに表示することができる。
【0025】
反応テーブル310は、モデル化された生物学的プロセスや化学反応に存在する各反応を列挙する。図3Aに示す実施の形態において、モデル化環境300は、ベロウソフ・ジャボチンスキー反応(Belousov−ZhabotinskyReaction)のField−Koros−Noyesモデルに存在する反応を表示し、反応列312、反応速度則(kinetic law)列318、パラメータ列316、可逆列318、の4列が含まれている。反応テーブル310の各列は、特定の反応に対応している。反応テーブルに表示されている列の数と形式は、ユーザが選択することができる。別の実施の形態においては、モデル化環境110においては、表示すべき列の数と形式は、反応のタイプに基づいてユーザが選択する。
【0026】
図3Aに示す実施の形態に戻って、反応列312は、略式で例えば、Ce−>Brと表される反応を表示する。別の実施の形態においては、反応は、微分方程式、確率論的形式(stochastic format)、またはこれらの形式の2以上の混成として表現される。実施の形態によっては、反応テーブルが反応のモディファイアを特定するものもある。例えば、反応の中には、物質によって触媒作用が及ぼされるものもある。これは、表形式フォーマットにおいて、Ce−m(s)−>Brとして表され、「s」の存在がCeをBrに変化させることを意味する。
【0027】
図3Aに示す実施の形態において、反応テーブル310は、同定された反応が次にくる反応速度則表現を同定する反応速度則列314も含む。図3Aに示す実施の形態において、Ce−>Br反応に対応する反応速度則は、「Ce*k5」であり、Ceがパラメータ「k5」および存在するCeの量によって制御された速度で消費されることを意味する。図3Aに示す実施の形態において、反応速度則表現のためのパラメータがパラメータ列316に列挙されている。実施の形態には、反応テーブル310が、「質量作用」または「Michaels−Menten」等の特定の反応に対応する反応速度則の名前を特定する列を含むものもある。他の実施の形態において、反応テーブル310が、反応速度則パラメータが表現される、1/秒、1/(モル*秒)等の単位を特定する列を含む。
【0028】
さらに図3Aに示す実施の形態において、反応テーブル310は、対応する反応が可逆であるかどうかを指示する可逆列318を含む。可逆反応は、いずれの方向にも生じる反応、すなわちCe<−>Brである。実施の形態において、反応テーブル310が、「速い」または「遅い」等の反応の動態を特定する列を含むものもある。これらの実施の形態の中には、反応が生じる速度が10段階で特定されるものもある。さらに別の実施の形態において、ユーザが様々な反応の速度を互いに関連して設定できるスライド制御を行うことができる。さらに別の実施の形態において、反応テーブル310が、反応に関する注釈やノートのための列を含むこともある。
【0029】
図3Aに示すモデル化環境300は、種テーブル320も表示する。図3に示す実施の形態において、種テーブル320は、名前列322、初期量列324、および定数列326を含む。種テーブルは、初期状態とモデル化された生物学的プロセスまたは化学反応において使用される材料の量とを表示する。従って、図3に示す実施の形態において、モデル化された生物学的プロセスは、0.003モル単位(すなわち0.003にアボガドロ数を乗算した単位)の臭素で開始する。モデルが特定の種を無限に供給する想定ならば、定数列326は「真」へ設定される。他の実施の形態においては、種テーブル320は、単位(モル、分子、リットル等)を特定する列、特定の種がモデル中で独立の変数であるか(すなわち、その種がシステムへの入力であるか)、注釈用の列やノート用の列等の別の列を含む。
【0030】
実施の形態には、モデル化環境300が、マークアップ言語のファイルを入力として受容して、そのファイルを図3Aに示すようなグラフィカル表示へ変換するものもある。例えば、図3Aに示す特定の実施の形態に対応するマークアップ言語におけるベロウソフ・ジャボチンスキー反応のField−Koros−Noyesモデルの一表現を、この文書の添付Aに示す。
【0031】
例えば、マークアップ言語ファイルのタグに組み込まれた情報を使用するプロセスを提供することができる。例えば、<reaction name=”Reaction5” reversible=”false”>(<反応名=”反応5”可逆=”真”>)は、図3Aおよび3Bに示すテーブル形式のモデルを生成する。これらの実施の形態の中には、ウェブブラウザが、マークアップ言語で記述されたモデルを含むファイルを解析して、図3Aや3Bに示すテーブル形式のモデルを作成するものもある。別の実施の形態においては、プロセスが、モデルを入力として受け入れ、プロセッサで直接実行可能な出力コードとして生成する。このようなコードはCプログラミング言語で記述される。
【0032】
モデルを実行可能コードに変換することにより、実行可能コードがネットワークを介して多数のコンピュータに伝達されてそこで実行することができる。これらの実施の形態には、バス、スター、またはリング型配線等、多くのネットワーク技術を介してコンピュータが接続できるものもある。このネットワークは、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネット等の広域ネットワーク(WAN)であり得る。各コンピュータは、様々な接続でネットワーク180に接続することができる。このような接続には、標準的な電話線、LANまたはWANリンク(T1,T3,56kb,X.25)、ブロードバンド接続(ISDN,フレームリレー、ATM)、および無線接続が含まれる。接続は、様々な通信プロトコル(TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、イーサネット(登録商標)、ARCNET、FDDI(Fiber Distributed Data Interface)、RS232、IEEE 802.11、IEEE 802.11a、IEE 802.11b、IEEE 802.11g、および直接非同期接続等)を使用して確立することができる。
【0033】
これらの実施の形態において、マスターサーバーがマークアップ言語で記述されたモデルを解析する。モデルは、ハードディスクまたはネットワーク接続を介した別のコンピュータアクセスから検索される。別の実施の形態においては、モデルは、図3Aや3Bに示すような表形式のユーザ入力や、図4に示すもの等のグラフィカルインターフェースを使用してユーザによって入力される。マスターサーバーは、モデルを解析して実行可能コードを作成する。マスターサーバーによって作成された実行可能コードは、C、C+、C++、またはC#で記述され、ターゲットプラットフォーム上で動作するようにコンパイルされたコード等のコンパイラ型コードであり得、またはマスターサーバーによって作成された実行可能コードは、JAVA(登録商標)等のバイトコード言語であり得る。実施の形態によっては、実行可能コードがネットワーク接続を介して1以上のコンピュータに伝達されるものもある。1以上のコンピュータは、モデルを表すコードを実行し、作成された結果をマスターサーバーに返す。マスターサーバーは、後の分析のために検索された結果を格納する。実施の形態によっては、マスターサーバーが、受けた結果のそれぞれのグラフィカル表現を表示するものもある。1つの実施の形態において、この技術は、モンテカルロ型解析を行うために使用される。これらの実施の形態のあるものでは、マスターサーバーが、受け取った各データポイントを収集して表示し、リアルタイムでグラフィカルに各データポイントを表示することができる。
【0034】
図3Bは、大腸菌の熱ショック応答モデルをシミュレートするための表形式の反応を示す。図3Aに関して上述したように、上部テーブルは、熱ショック蛋白の転写や翻訳に伴う多様な反応、および折り畳まれていない蛋白質(変性蛋白質)と熱ショック蛋白との相互作用を表示する。図3Bに示すように、全ての反応は、質量作用動態学を有し、可逆のものもあればそうでないものもある。化学反応または生化学反応を表現する別の方法は、ブロック図によるものである。
【0035】
さらに別の実施の形態において、モデル化環境300は、生物学的プロセスまたは化学反応をブロック図としてユーザーが表現することを可能とする。図4は、モデル化環境のブロック図の実施の形態を示す。図4に示す実施の形態において、大腸菌の熱ショック反応を示すブロックが構築中である。周知のように、大腸菌の熱ショック反応は、熱がもたらすストレスに対する防衛的な細胞反応である。温度の上昇は、主に蛋白質のアンフォールディングやミスフォールディングから、大腸菌の成長を少なくする結果となる。熱ショック反応は、シャペロンを介した蛋白質のリフォールディングにより、またはプロテアーゼを介した非機能性蛋白質の分解により、熱ショック蛋白質を介して熱がもたらすストレスに応答する。
【0036】
図4に示すブロック図は、熱ショック応答に伴う5つの特定の遺伝子配列の発現を示す。図4は、熱ショック応答に伴うプロテアーゼの発現に対する経路4100、4200、4300を一部に示す。経路4100、4200、4300は、熱ショック蛋白質ftsH、Hs1VUおよび他のプロテアーゼの発現をそれぞれ表す。経路4100、4200、4300は、各配列のプロモータにおけるRNAポリメラーゼとのσ32の相互作用4105、4205、4305によって活性化される。各経路4100、4200、4300は、σ32およびプロモータにおけるRNAポリメラーゼ相互作用4105、4205、4305のmRNA媒介4110、4210、4310の転写4120、4220、4320、ならびに引き続くプロテアーゼの翻訳4130、4230、4330を示す。ftsHとHs1VUを含む熱ショックプロテアーゼは、熱ショックにより蛋白質を分解して非機能性とするように作用する。同様に、図は、熱ショック蛋白質σ70 とDnaKの発現をそれぞれ伴う経路4400、4500を示す。σ32蛋白質の発現は、σ70とプロモータにおけるRNAポリメラーゼの相互作用4403に活性化4410される。σ32 mRNAは、転写されて4420、その後σ32は翻訳される4430。密接に関連する経路4500において、熱ショック蛋白質DnaKが翻訳される。σ32とプロモータにおけるRNAポリメラーゼの相互作用4505は、DnaKmRNAの転写4520を活性化4510し、その後、DnaKの翻訳4530を活性化する。DnaKは、次いでσ32を安定化するためσ32と相互作用4600することができるか、またはそれに代えて、熱ストレスによってアンフォールディングされた蛋白質をリフォールディング4700する。
【0037】
ブロック図エディタは、動的システムのブロック図表現を、描画、編集、注釈入れ、保存、およびプリントアウト等の動作をユーザがすることを可能とする。ブロックは、古典的ブロック図モデルの基本的数学的要素である。実施の形態によっては、モデル化環境が非仮想ブロックと仮想ブロックの2種類のブロックを含むものもある。非仮想ブロックは、σ32 とRNAポリメラーゼ相互作用4105、4205、4305等の基本的な動的システムである。仮想ブロックは、図示上機構便宜のため提供することができるものであり、ブロック図モデルによって記載されたシステムの方程式の定義には何ら役割を果たすものではない。例えば、図4に示す大腸菌の熱ショック機構のブロック図において、4100、4200、および4300で表される、蛋白質を生成するためのσ32によって仲介される遺伝子転写は、単一の仮想ブロックとして表すことができる。(サブシステムを使用したような)階層的モデル化がモデルの読みやすさを向上するために使用できる。
【0038】
実施の形態によっては、非仮想ブロックの意味が、「結合(merge)」ブロックセマンティックなど別の意味を含むように拡張されることもある。結合ブロックセマンティックは、所与の時間ステップで、その出力が結合ブロックの入力へ書き込むための最後のブロックに等しいというものである。表形式のグラフィカルユーザインターフェースの実施の形態においては、結合ブロックは、「ワイルドカード」キャラクターと組み合わせて単一の表入力を多数例の反応へと拡張することができる。例えば、反応
*転写_因子:RNAP−>遺伝子−>mRNA−>蛋白質
(*transcription_factor:RNAP−>gene−>mRNA−>protein)
は、*転写_因子を「ワイルドカード」として使用し、一行の反応を使用するモデルで確認できる多数の蛋白質表現を可能とする。一般に、どのような通常の表現も、「ワイルドカード」の存在を知らせるために使用することができる。通常の表現、および通常の表現を多数例のコードにコンパイルするために使用される技術は周知である。モデルによって使用される転写因子は、データベース照会、ファイルから、または実行可能モデルを生成するために反応が拡張された時間におけるユーザ入力により提供することができる。提供される転写因子毎に異なる反応が起きるため、結果的に異なる遺伝子がメッセンジャRNAを生成させ、ある特定の蛋白質を発現させる可能性がある。この技術は、ユーザ側において最小の入力で一連の反応を生成するために使用することができる。
【0039】
さらに別の実施の形態において、モデル化環境300は条件付きの実行を提供することもできる。これは、ブロック法が全体のブロック図のサブセクションを実行するときを制御する、条件付きで反復的なサブシステムというコンセプトである。
【0040】
ブロック図エディタは、ユーザがブロック図を描くことが可能となるグラフィカルユーザインターフェース(GUI)要素である。図4は、フローティング要素パレットを特徴とするブロック図エディタ用のGUIの実施の形態を示す。図4に示す実施の形態において、GUIツールには、多様なブロックツール402、404、408、多様なライン接続ツール406、412、注釈ツール416、フォーマットツール410、保存/ロードツール414、通知ツール420、および公表ツール418が含まれる。ブロックツール402、404、408は、ブロック図を作成するときにユーザが利用可能な全ての所定のブロックのライブラリを表す。個別のユーザは、このパレットを、(a)何らかのカスタムフォーマットのブロックに再編成、(b)使用しないブロックを削除、(c)ユーザが設計したカスタムブロックを追加、するようにカスタマイズすることができる。ブロックは、なんらかのヒューマンマシンインターフェース(マウスやキーボード等)によって、ウィンドウ(すなわちモデルキャンバス)上へドラッグすることができる。キャンバス上に描画されたグラフィカルバージョンのブロックを、ブロック用のアイコンと呼ぶ。ブロックパレットには異なる実施の形態があり、それには、全ブロックのツリーベースのブラウザビューが含まれる。これらの実施の形態において、フローティング要素パレットは、ユーザがパレットからブロック図要素をドラッグしてスクリーン上の適所にドロップすることを可能にする。これらの実施の形態の中には、グラフィカルエディタと相互に作用できる一式のコマンドを伴うテキストインターフェースもある。例えば、ポリメラーゼブロックをモデルにドラッグすると、蛋白質をポリメラーゼ反応において使用するようにシステムがユーザに促すこともできる。
【0041】
このテキストインターフェースを使用することで、ブロック図上で自動編集操作する特別な処方をユーザは書くことができる。ユーザは通常、モデル用のキャンバスとして作動する一式のウィンドウとやりとりをする。モデルがサブシステムの使用(さらに以下に記載する)により複数の階層的レベルに区分けされるため、モデル用のウィンドウは1を超えることがある。さらに別の実施の形態において、ユーザのブロック図作成を容易にするためテキストインターフェースのみを提供することができる。
【0042】
ライン接続ツール406、412によって、モデルのウィンドウ内でブロックを接続する方向付けしたラインを、ユーザは描くことができる。実施の形態によっては、単一のラインツールが提供されて、ツール、スタートポイント、およびエンドポイントをユーザが選択することでブロックを接続するものもある。別の実施の形態においては、複数接続ツールが存在し得る(図4に示す実施の形態等)。接続は、キーボード等のヒューマンマシンインターフェースを含む多様な別のメカニズムによって追加することができる。モデル化環境300は、ユーザの要求に応じてブロックを自動時に接続して美的に満足できるブロック図(特に非常に複雑で多数のブロックを有するもの)のレイアウトを作成することができる、多様な形式の自動接続ツールも提供することができる。1のブロックを別のブロックへ接続することは、第1のブロックによって表現される種が、あるいは接続が処理を表す場合はそのブロックの出力が、第2のブロックの入力であることを意味する。
【0043】
注釈ツール416によって、ユーザはブロック図のさまざまなパーツにノートや注釈を追加することができる。モデルが表形式で見られる場合は、注釈はノートまたは注釈列の中に現わすことが可能である。グラフィカル形式で見る場合、ノートは注釈が付いたブロックに近接して現わすか、または隠すことができる。
【0044】
フォーマット化ツール410は、どのような文書編集ツール上でも利用可能な様々なフォーマット操作をユーザーが実行することができる。これらの操作は、ブロック図(および構成ブロック)の様々なグラフィカルな特性の選択と改変を助け、例えば、フロント選択、調節と整列、色選択等が含まれる。ブロック図とブロック図内の全ブロックは、実行またはコード生成に関連した一式の機能特性を概ね有する。特性編集ツールは、これらの特性の特定と編集を可能とするGUIを提供する。
【0045】
保存/ロードツール414は、作成されたブロック図モデルの保存を可能とする。保存されたモデルは、ロード機構によりエディタで後に再オープンできる。ユーザは、ライブラリと呼ばれる区分された種類のブロック図へ、事前に構成したサブシステムを含むブロックを保存することができる。このようなライブラリにより、多数の別のブロック図において同一のブロックを簡単に再使用することができる。ロード/保存機構は、実際にライブラリに存在するブロック図のブロックのローディングと保存を扱うよう特に装備されている。
【0046】
公表ツール418は、ブロック図を文書として見られるようにして、任意の標準的な文書フォーマット(例えば、ポストスクリプト、PDF、HTML、SBML、XML、SGML、SBML等)で公表することができる。当業者は、複数モデル用のウィンドウや上述の全ツールを、単一のマルチドキュメントインターフェース(MDI)に組み込んで統合ソフトウェア環境を提供することが可能であろうと認識するであろう。
【0047】
通知ツール420は、ブロック図上で作業したユーザが別のユーザにメッセージを送信することを可能とする。実施の形態によっては、通知ツール420が、ブロック図の現状のバージョンを特定のユーザにメールすることができるものもある。
【0048】
当業者は、ブロック追加、ブロック削除、開始と終了の実行、またはブロック特性の改変等、通常GUIでやり取りする必要があるであろう一連の操作を自動的に実行するプログラムを書き出すスクリプト言語が、ブロック図パッケージにより提供されることを認識するであろう。
【0049】
モデル化環境300は、ユーザが大きなブロック図を作成して管理する能力を向上させる多様な他のGUIツールも提供する。そのようなGUIには、(a)ブロック図内のブロックや線等の多様な対象を見つけやすくするファインダ、(b)ブロック図の実行をデバッグしやすくするデバッガ、(c)ブロック図の複数の改訂を管理する改訂制御UI、および(d)ブロック図を実行しながらタイミング結果を見るためのプロファイラ、等が含まれる。
ブロック用の典型的なベースデータ構造は、
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;
. . .
};
のように表わされる。
【0050】
上記のデータ構造の例は、C++ で記述されているが、当業者は、別の言語で記述された同等なデータ構造も使用できることを認識するであろう。データ構造の主なデータフィールドは、グラフィカル特性フィールド、機能的特性フィールド、コンパイル特性フィールド(compiled attributes field)、および実行データフィールド、の4つのカテゴリーに分類される。
【0051】
グラフィカル特性フィールドは、その親ブロック図のGUI内におけるブロックのグラフィカル表現に関する情報の格納を担う。フロント、色、名前、およびアイコン画像などのブロックアイコンに特有の特性は、このフィールドに格納される。これらの特性の改変は、このブロックを使用するモデルのダイナミクスに影響しないことに注目すべきである。機能的特性フィールドは、このブロックを使用するモデルのダイナミクスに影響する可能性があるブロック特性の特定を担う。これらの特性は、全体としてブロックに対して、ブロックの入力および出力ポートに対して特定される。ブロック特性の例には、ブロックサンプル回数(block sample times)と制限フラッグが含まれる。ブロックサンプル回数は、ブロックが基本的な、連続的、離散的、またはハイブリッドな動的システムに対応するかを特定する。ブロックが基本的な離散時間システムであれば、この特性はブロック応答がトレースされるべき時刻間の間隔を特定する。制限フラッグは、特定のモデル化コンテキストにおけるブロックの使用を却下する。例えば、モデルにおいて一例の所与のブロックのみが存在し得るという制限を課すことができる。
【0052】
ブロックポートの特性は、利用可能であるかそのポートで作成されたかのいずれかであるデータの特性を特定する。ブロックポート特性には、次元、データタイプ、サンプルレート(sample rate)、およびダイレクトフィードスルーが含まれる。次元特性は、データ要素のための容器として使用される個別の多次元マトリクスの次元である。データタイプ特性は、データ容器内のデータの各要素のデータタイプである。複素特性は、各データ要素が実数か複素数かを特定するフラッグである。サンプルレート特性は、入力または出力ポートに対応する信号が使用される時、方法を特定する。ポートサンプル回数は、ブロックのサンプル時間を間接的に推測するためにしばしば使用することができる。ダイレクトフィードスルー特性は、入力ポートのみのために特定され、ブロックの出力方程式(Output equations)が所与の入力の関数であるか否かを表示する。この特性は、ブロック図を実行しながら、ブロック方法が実行されるべきシーケンスを決定しやすくする。
【0053】
ブロックデータ構造のコンパイル(compile)特性フィールドは、ブロックの特性と上記列挙の機能的特性を映し出すポートとを保持する。このフィールドは、そこに接続されるブロックの機能的特性およびコンパイル特性に関連して、ブロックの機能的特性を利用することにより、ブロック図のコンパイル(compilation)の最中に満たされる。機能的特性により作成されるコンパイル特性を決定するこのプロセスを、特性伝達と呼ぶ。特性伝達は、ブロック図コンパイルのセクションにて以下に詳述する。実行データフィールドは、主にブロック入力、出力、状態、パラメータ、およびブロックの実行中の他のワークエリアのためのソースとして作用することになるメモリ場所の格納を担う。
【0054】
データブロック構造は、データフィールドへのアクセス方法、編集で使用する方法、コンパイルで使用する方法、実行で使用する方法、に類別される一式の関連方法も有する。データフィールドへのアクセス方法は、ブロックの多様なデータフィールドを設定し入手しやすくする。編集で使用される方法は、その親ブロック図のGUIでブロックを適切に表示するため、ブロック図エディタによって呼び出される。例えば、この一連の方法には、GUI上でブロックアイコンが有する形状を決定するBlockDrawIcon法が含まれる。コンパイルで使用される方法は、ブロック図コンパイルエンジンによって呼び出される方法である。これらの方法は、ブロックをブロック図上の別のブロックへ接続することを有効にしやすくする。実行で使用される方法には、実行に要求される多数の異なる実行時間方法が含まれる。これらには、動的システムの内容で先に記載した、出力(Output)、アップデート(Update)、微分方程式(Derivative equations)を実現する、BlockOutput、BlockUpdate、BlockDerivative法が含まれる。これらの方法に加えて、Jacobian、Projection、ZeroCrossings、Enable、Disable、Initialize、EvalParams(パラメータをチェックし処理する)、およびGetTimeOfNextHit methodsなど他のランタイム方法をいくつか提供することができる。代数方程式に対しては、これらはシミュレーションエンジン120の議論に関連して以下に議論する様式とは異なって表現され、処理されるため、明確な方法が存在しないことに注意すべきである。
【0055】
実施の形態によっては、モデル化環境110は、モデルの構築を支援する知識ベース350を含む。これらの実施の形態において、知識ベース350は、解糖等の多様な反応に対するモデルを含む。これらの実施の形態において、ユーザが、解糖用のモデルに対応する反応の入力を始めると、知識ベース350は、ユーザのために残りの反応を入力することができる。あるいは、知識ベース350は、ユーザに異なる反応のモデルを提供することができる。これらの実施の形態には、対象反応を様々なレベルの詳細で表現するモデルもある。別の実施の形態においては、知識ベース350は、パラメータまたは入力された反応の可逆性の指標を挿入することができる。知識ベース350は、化学反応や生化学反応のブロック図表現のユーザ入力を支援することもできる。例えば、知識ベース350は、ユーザがモデル化反応と整合しないブロックを接続して作成しないようにすることができる。モデル生成の容易化のため使用できる公衆に利用可能なデータベースの例としては、Swissprot database (http://us.expasy.org/sprot)、NCBI (http://www.ncbi.nlm.nih.gov)、the Protein Data Bank (http://www.rcsb.org/pdb)、およびKEGG (http://www.genome.ad.jp/kegg/kegg2.html)が挙げられる。あるいは、ユーザは、知識ベース350として作用する私的データベースを提供してモデルの作成を容易にすることができる。
【0056】
ブロック図におけるブロックは、仮想的でもよいし非仮想的でもよい。ブロックが非仮想的と表示されるということは、動的システムの数学モデルにおける方程式に影響することを意味する。ブロック図ソフトウェアのコンテキストにおいて、動的システムのモデルにおける方程式に影響しない別の仮想的ブロックを含むことは有益である。このようなブロックは、ブロック図の読みやすさとモジュール性の改善に役立ち、数学的モデルにおいて意味的な影響を及ぼさない。このような仮想的ブロックの例には、仮想的サブシステム、インポートブロック、アウトポートブロック、バスクリエータブロック、およびFrom and Goto blocksが含まれる。
【0057】
モジュール性は、サブシステムを使用してブロック図を階層化することによりブロック図中で達成することができる。入力と出力信号を有する単一のブロックによって表現されるブロックを集めることによって、サブシステムは階層化が可能となる。サブシステムの入力と出力信号は、サブシステム内の構成ブロックにアクセスできる。サブシステムの構成ブロックがモデル実行中にメインモデル図へ戻されると、そのサブシステムは仮想的サブシステムである。仮想的サブシステム内において、グラフィカル要素は、インポートブロックやアウトポートブロックと呼ばれて、親ブロック図への信号接続を規定するように提供されている。これらのインポートブロックやアウトポートブロックは、親ブロックへのトンネル通過信号接続を示す。
【0058】
先に記載したように、かなり大きく複雑な動的システムをモデル化しやすくするため、ユーザには、階層ブロック図が可能とされる。入力と出力信号を有するひとまとめの単一ブロックにより表わすことを可能とすることで、サブシステムはこのような階層化が容易となる。サブシステムの入力と出力信号は、その構成ブロックへアクセスすることができる。サブシステムを互いの範囲でネスティングすることにより、任意の階層を有するブロック図を作成することができる。サブシステムは、ブロック図の意味に影響しないことが理想的である。さらに、サブシステムは、ブロックをグループ化する方法を提供し、別のブロック図構成が構成ブロックに統合された制限を課すことを可能とする。サブシステムのモジュール性を拡張するために、モデル化ソフトウェアは、サブシステム内で集めたブロックのパラメータのリストが、単一のGUIからアクセスされることも可能とし、サブシステム上で特別なアイコンを規定して表示する。パラメータリストと特別なアイコンを規定するプロセスを、サブシステムのマスキングと呼ぶ。
【0059】
2つの主なタイプのサブシステムのブロックがある。仮想的サブシステムと非仮想的サブシステムである。仮想的サブシステムは、ブロック図にグラフィカルな階層を提供する目的に適う。非仮想的サブシステムは、それ自体の実行方法(Output、Update、Derivatives等)を有して基本的に動的システムのように挙動する。これらの実行方法は、次いで構成ブロックの実行方法を呼び出す。
【0060】
非仮想的サブシステムのクラスには、以下がある。
アトミックサブシステム。これは、仮想サブシステムに類似しており、所与の階層においてモデルの機能的局面を分類する利点を有する。これはモジュラー設計に有用である。
条件付きで実行されたサブシステム。これは、予備条件を満足したときのみ実行する非仮想的サブシステムである。
使用可能サブシステム。サブシステムに供給するイネイブル信号がゼロより大きくなるときに、構成ブロックが実行するのみである点を除いて、これは、アトミックサブシステムに類似する。
トリガ付きサブシステム。上昇および/または下降信号がサブシステムに供給するトリガ信号に見られるときに、構成ブロックが実行するのみである点を除いて、これは、アトミックサブシステムに類似する。
トリガ付きイネイブルサブシステム。これは、イネイブルとトリガ付サブシステムの特性の交差である。
アクションサブシステム。このサブシステムは、サブシステムコンテンツに実行を明確にコマンドするブロックである。アクションイニシエータ(例えば、「もし(If)」または「スイッチケース(SwitchCase)」ブロック)に接続される。「イネイブル」信号の管理が、アクションイニシエータに委ねられたという点を除いて、このサブシステムは、イネイブルサブシステムに類似する。アクションサブシステムは、アクションイニシエータによってどのサブシステムがコマンドされて実行するかを指示するアクション信号と呼ばれる、新たなタイプの信号を規定する。
ファンクションコールサブシステム。このサブシステムは、オーナーブロックによって呼び出されたときに実行するのみであるサブシステムにブロックを集める手段を提供する。オーナーブロックは、サブシステムを呼び出す前にサブシステムに対して入力信号を計算することができる。さらに、オーナーは、呼び出しの後、サブシステムから出力信号を読むこともできる。ファンクションコールサブシステムは、データを含まないファンクションコール信号と呼ばれる新しいタイプの実行制御信号を規定する。これは、オーナーブロックとファンクションコールサブシステムとの間の実行関係を規定するために使用される。ファンクションコールオーナーは、自身を「割り込み(interrupt)」ソースとして指示することもできる。シミュレーションにおいて、ファンクションコールオーナーは、割り込みの効果をシミュレートし、コード生成において、自身が(非同期性の)割り込みに属することができる。
【0061】
ホワイルサブシステム(While subsystems)とフォーサブシステム(For subsystems)。これらのサブシステムは、所与の時間ステップで複数回構成ブロックを実行する。
【0062】
別の実施の形態において、モデル化された反応を、容易に深くまたは広く理解するために知識ベース350を使用することができる。例えば、大腸菌の熱ショック反応のブロック図表現を参照すると、知識ベース350は、σ70を使用するかσ70によって影響がある熱ショック反応における他の反応を確認するために使用することができる。あるいは、知識ベース350は、σ70が走化性等の役割を果たす大腸菌に対する他の反応を確認することができる。このようにして、様々な環境における大腸菌の機能のより広い理解を達成することができる。
【0063】
さらに別の実施の形態において、モデル化環境110は、そこからブロックを選択することができ、モデルに含まれるライブラリを提供する。モデルの仮想または非仮想ブロックによって参照されるモデルは、ライブラリの一部であるかどうかにかかわらず、実行のためのモデルに含まれる。実行可能コードが生成される実施の形態に対して、参照モデルを表わすコードも生成される。
【0064】
仮想サブシステムは、ブロック図にグラフィカルな階層を提供するという目的に適う。非仮想サブシステムは、その独自の実行法(Output、Update、Derivatives等)を有して基本的な動的システムのように挙動する。これらの実行法は、次いで、構成ブロックの実行法を呼び出す。
【0065】
一旦、ブロック図モデルが構成されると、ユーザが特定した1組の入力に対してユーザが特定したタイムスパンに亘ってモデル実行がなされる。実行は、ブロック図がコンパイルされるとき始まる。コンパイルステージは、モデル実行の開始を示し、データ構造の準備とパラメータの評価を伴い、ブロック特性を構成して伝達し、ブロックの接続性を決定し、ブロックの削減とブロックの挿入を行う。データ構造の準備とパラメータの評価は、コンパイルステージにおいて必要となる基本的データ構造を作成して初期化する。各ブロックに対して、方法は、ブロックがそのパラメータの全てを評価するように強制する。この方法は、ブロック図の全ブロックに要求される。なんらかの未解決のパラメータがある場合は、実行エラーがこの点で投入される。ブロックとポート/信号特性の構成と伝達の間に、各ブロック(および/またはポート)のコンパイルされた特性(次元、データタイプ、複素性、またはサンプル時間等)が、対応する機能的特性と、ラインによって所与のブロックに接続されたブロック(および/またはポート)の特性と、に基づいて設定される。1つのブロックから次に続く信号接続性へと、ブロック機能的特性がブロック図に「波及する」プロセスによって、特性設定は実行される。このプロセス(ここでは「伝達」と言う)は、2つの目的に適う。そのブロック(またはそのポートの)機能的特性を明確に特定したブロックの場合は、このブロックの特性がそれに接続されるブロックの特性と互換性があることを、確実とするのに伝達は役立つ。そうでなければエラーが出される。第2に、多くの場合にブロックは、広い範囲の特性と互換があるべく実行される。このようなブロックは、接続されるブロックの特性に従ってその挙動を適合させる。これは、オブジェクト指向のプログラム言語におけるポリモーフィズムの概念に類似する。ブロックの正確な実行は、このブロック自体が見られる特定のブロック図に基づいて選択される。モデル内での全てのレートトランジションは決定論的な結果をもたらすこと、適切なレートトランジションブロックが使用されること、を有効とすること等の他の局面がこのステップに含まれる。コンパイル化ステップは、実際のブロック接続性も決定する。仮想的ブロックは、ブロック図の実行においてなんら意味的な役割を果たさない。このステップにおいて、ブロック図における仮想的ブロックは、最適化されなくなり(除去され)、残りの非仮想的ブロックが、互いに適切に再接続される。実際のブロック接続を伴うこのコンパイルされたバージョンのブロック図は、この点から実行プロセスにおいて使用される。ブロック図においてブロックが相互接続される方法は、個別のブロックに対応する方程式(方法)が解かれる(実行される)オーダーを必ずしも規定しない。実際のオーダーは、コンパイル化における格納ステップ中に部分的に決定される。一旦、コンパイル化ステップが完了すると、格納されたオーダーは、ブロック図の実行の全期間において変更することができない。
【0066】
コンパイル化ステージの次は、リニアモデルを作成することもできるモデルリンクステージである。リンク化が実行された後、コードが生成されることもあるしされないこともある。コードが生成される場合は、ブロック図モデル(またはその部分)が、ソフトウェアモジュールまたはハードウェア記述(広い意味でのコード)のいずれかへ翻訳される、加速されたシミュレーションモードによって、モデルはシミュレートされ/実行される。このステージが実行されると、次いでその後のステージが、ブロック図の実行中に生成されたコードを使用する。コードが生成されない場合は、コンパイルされリンクされたバージョンのブロック図が直接に利用されて、モデルを所望のタイムスパンに亘って実行することができる説明モードで、ブロック図は実行することができる。この説明モードの実行は、きめ細かい信号のトレーサビリティを得るのに適切である。コード生成による実行には、いくつかの異なる利点がある。効率の増大が実行トレーサビリティの減少という犠牲の上に通常は来るにもかかわらず、データ構造がより少なく、エンジン内の内部メッセージングがより少ないため、生成されたコードの実行は、説明による実行よりもより効率的であり得る。実行中のハードウェア記述のシミュレーションは、設計案のソフトウェアステージにおけるバグを確認して解決するのに役立つ。一旦システムがハードウェアで実行されると、このようなバグは、追跡して修復するのに非常に高くつくことがわかっている。さらに、ソフトウェアをモデル化するブロック図は、特別のクラスのシステムをモデル化しシミュレートするために適切な別のソフトウェア環境と統合することができる。モデルは、ハードウェアにおいて直接テストすることができ、それによって、新たなシステムのプロトタイプの速さと費用効果が高まる。ユーザがコードを生成するとき、ブロック図の実行をそれ以上進めないことを選択することができるということを、当業者は認識するであろう。ユーザは、コードを取り出してモデル化ソフトウェア環境領域の外部でコードを展開することを選択することができる。これは、通常は、ブロック図ソフトウェアパッケージにおける動的システムの設計の最後のステップである。
【0067】
特定の実施の形態において、モデル化環境110は、モデル実行に伴う複雑性を選択することができるツールを提供する。例として図4の参照に戻って、ユーザは、単純な入力−出力ブロックとして経路4100を実行するか、または図4に示すより詳細な形式で経路4100を実行するか、の選択が与えられることができる。
【0068】
図1への参照に戻って、モデル化環境110で作成されたモデルは、シミュレーションエンジン120によって使用することができる。生物学的プロセスや化学反応などの動的システムは、通常は、微分方程式、差分方程式、代数方程式、および/または漸化方程式(recursive equations)のセットとしてモデル化される。どのような所与の瞬間においても、これらの方程式は、システムの出力の応答(「出力」)、その時間におけるシステムの入力刺激(「入力」)、システムの現在の状態、システムパラメータ、および時間、間の関係として考えることができる。システムの状態は、システムの構成を動的に変更する数値表現として認識することができる。例えば、単純な振り子のモデル化をする物理系においては、状態は振り子の現在の位置と速度として認識することができる。同様に、信号をフィルタ処理する信号処理系は、一式の以前の入力を状態として維持するであろう。システムパラメータは、システムの静的(一定の)構成の数値表現であり、システムの方程式において定数として認識することができる。振り子の例では、パラメータは、振り子の長さであり、フィルタの例では、パラメータはフィルタタップ(filter taps)の値である。本発明に関して有用なエンジンは、Massachusetts NatickのThe MathWorks,Incから入手可能なSimulinkである。
【0069】
本システムは、第5のタイプの数学的モデル、確率論的モデルを、動的システムの研究に使用される数学的モデルのタイプである、微分方程式、差分方程式、代数方程式、およびハイブリッドモデルに追加するものである。第1のタイプの数学的モデルは、システムを通常の微分方程式(ODE)を使用して記述するものであり、図5Aに示す。動的システム502は、2組の方程式、出力(Output)504、および微分(Derivative)506を特定する。出力方程式504は、所与の時刻におけるシステムの出力応答の計算を、入力、状態、パラメータ、および時間の関数として容易化する。微分方程式506は、入力、状態、パラメータ、および時間の関数として、現在の時間における状態の微分の計算をすることができる常微分方程式である。このクラスのモデルは、システム応答を時間の連続関数として追跡することが重要であるシステムに適している。このような連続時間システムは、一般には物理系(機械系、熱系、電気系)を代表するが、細胞内生化学反応等化学反応や生化学反応に対しても有用である。例えば、連続時間システムは、細胞代謝をモデル化するために使用することができ、一方で確率論的システムは、DNA転写等の細胞調節系をモデル化するために使用することができる。単純なシステムに対しては、出力応答y(t)に対する閉じた形式の解を得るため、出力504と微分方程式506を使用することができる。しかし、通常の複雑な実世界のシステムにおいては、システムの応答は、数値的手段を介した状態を統合することによって得られる。
【0070】
本明細書中で使用されるODEの定義は、陰微分方程式(implicit differential equations)と陽微分方程式(explicit differential equations)の両方を包含している。常微分方程式のクラスでは、モデル化されるシステムを規定する追加の方程式が要求される。例えば、投影(projections)と呼ばれる方程式が、微分変数を制約する(状態X1 とX2がX12+X22=25によって規定される多様体に該当する必要がある等)ために要求される。この制約は、微分方程式に結合した状態として適用することができる。投影を含むシステムは、通常はODEとしてもはや適格がない可能性があり、ここではシステムの分類を簡単化するため微分代数方程式として含まれる。別の例は、独立変数および/または微分変数についての偏微分を規定するヤコビアン方程式の使用である。ヤコビアン方程式は、通常は非線形モデルの線形近似または一組の方程式の全体の線形モデルを得るときに使用される。ヤコビアン方程式は、一旦モデルがその安定状態動作点等に達すると、線形モデルを生成するためには、なんらかの形の数値積分を必要とする。出力方程式504と微分方程式506は、ブロックに対する別の関係を規定するために拡張することができる。例えば、出力504は、特定の時間点におけるか特定の状態が認められるとき、状態を既知の量に戻す関係を規定することにより、その状態を管理するのに役立つ可能性がある。ヤコビアンは、モデル化されたシステムの感度分析(Sensitive Analysis)を実行するために使用することができる。感度分析は、システムの挙動に重要な変数を認識する。
【0071】
別のタイプの数学的モデルが、図5Bに示す差分方程式を使用したシステムを記述する。動的システム508は、出力510とアップデート(Update)512の2つの1組の方程式を特定する。出力方程式510は、入力、いずれか以前の時間における状態、パラメータ、および時間の関数として、所与の時刻におけるシステムの出力応答の計算をしやすくする。アップデート方程式512は、現在時刻における状態を、入力、いずれか以前の時間における状態、パラメータ、および時間の関数として計算することができる差分方程式である。このクラスのモデルは、時間において離散した点におけるシステム応答を追跡することが重要であるシステムに適切である。このような離散時間システムは、通常は離散時間制御やデジタル信号処理システムに代表される。単純なシステムに対しては、出力510とアップデート512方程式512を使用して、出力応答y(t)に対する閉じた形式の解を得ることが可能である。しかし、通常の複雑な実世界システムにおいて、システムの応答は反復により解かれる。出力510とアップデート方程式512は、所定の時間に亘ってシステム応答を解くために繰り返し適用される。別のタイプの数学的モデルが、図5Cに示す代数方程式を使用したシステムを記述する。動的システム514は、出力を得るため各時間において解かれる必要がある代数方程式516を使用する。単純なシステムは、システム入力と出力に対する閉じた形式の解を得ることを可能とするが、実際の代数方程式は、摂動と繰り返しの両方を含む数値的方法を使用して反復することにより最も解くことができる。動的システムのコンテキストにおいて使用される代数方程式解法技術は、以下により詳細に議論する。
【0072】
生物学的プロセスおよび化学反応をモデル化するためには、別のモデルが有用である。このモデルは、Gillespie、Gibson/Bruck、およびτ−leaping等の確率論技術を使用してシステムを記述する。これらの技術は、ODE/DAEシステムによって導かれる連続近似が適用できないときに有用である。これは、特定の遺伝子を転写するためのDNAへのRNAポリメラーゼ結合等の微量のカウントを扱うときに当てはまる可能性がある。確率論的に取り扱われるであろう化学方程式の例は、図3Bの反応テーブル、例えばs32+Dnak−>s32:Dnakに示す。この方程式は、s32の分子がDnakの1つの分子と結合することを示す。確率論的にシミュレートされたとき、この反応は、反応速度論に依存する確率分布に従って決定されるランダムな時間に生じる。反応が生じたときを決定するために、指数分布、二項分布、F分布、周波数分布、幾何分布、超幾何分布、多項分布、負の二項分布、パーセンテージ分布、パーセンテージ累積分布、ポアソン分布、事後分布、事前分布、t分布、および正規分布等の様々な確率分布を使用することができる。別の実施の形態において、ユーザは、確率論的反応の発生に対する時間値を決定するとき、使用する確率分布を規定することができる。
【0073】
第5のタイプの数学的モデルは、上述の4つのタイプに分類される構成要素を有する合成システムである。最も複雑な実世界モデルは、このカテゴリーに分類される。このクラスのシステムは、出力、微分、アップデート、および他の方程式を有することもある。このようなシステムの出力応答の解法には、上述の全てのクラスの解法アプローチの組み合わせが必要である。合成システムの1つの例は、微分方程式と代数方程式の両方が含まれる微分代数方程式(DAEs)により記述されるものである。生化学的モデルにおいて特に興味があるのは、確率論的方程式と決定論的な方程式の両方を含むハイブリッドなアプローチであり、これは、同一のモデルにおける代謝システムと制御システムの両方の解法を可能とする。
【0074】
出力と状態の両方の点で規定された関係(方程式)を含む多くの拡張が、合成クラスのシステムの中に分類される。例えば、微分変数に対する限定された積分関係を規定することができる。この関係には、出力方程式、アップデート方程式、微分方程式、およびゼロクロッシング(Zero Crossing)方程式からなる一式の方程式が要求される。ゼロクロッシング方程式は、限定された積分の上限と下限が生じる時間点を規定する。拡張の別の例は、実行中にシステムのパーツが活性化されたり非活性化されたりするときの、状態または信号の間の関係を規定するイネイブル(Enable)とディスエイブル(Disable)方程式の概念である。
【0075】
4つのクラスのシステム(ODE、微分方程式、代数方程式、および合成)に固有なのは、システムサンプル時間の概念である。サンプル時間は、システムの、入力、状態、または出力(まとめて結果と言う)が、時間の進行に従ってトレースされる時間間隔である。サンプル時間(sample times)に基づいて、システムは、離散時間システム、連続時間システム、およびハイブリッドシステムとして記述することができる。上記のように、確率論的システムは、作用している確率分布によって決定されるランダムな時間で生じる。
【0076】
離散時間システムは、システム結果の展開が有限の時間間隔で追跡されるシステムである。間隔がゼロに近づく限界において、離散時間システムは、連続時間システムとなる。時間の間隔は、周期的または非周期的であり得る。確率論的システム等の非周期的レートシステムが、非均一レートシステムと呼ばれることもあるが、これは、応答を追跡することができる周期レートが無いことを意味する。連続時間システムは、システム結果の展開が連続的に変化するシステムである。連続時間信号は、数値積分の間に変化する。連続時間システムの例は、ODEによって記述されたものである。また代数もしくは合成連続時間システムもある。ハイブリッドシステムは、離散時間および連続時間要素の両方を備えるシステムである。
【0077】
システムが1つのサンプル時間のみを有していると、シングルレートと言われる。システムが複数のサンプル時間を有していると、マルチレートと言われる。マルチレートシステムは、シングルタスキング形式の実行またはマルチタスキング形式の実行のいずれかを使用して評価(実行)することができる。マルチタスキング実行が使用されると、Liu,C.L.およLAYLAND,J.W.Scheduling Algorithms for Multiprogramming in a Hard−Real−Time Environment.ACM 20,1(1973年1月)、46−61によって規定された、レートモノトニックスケジューリング原理(rate monotonic scheduling principals)に従う。システムは、使用される数値積分ソルバーのタイプによって分類することができる。固定ステップシステムは、固定ステップソルバーを使用するものである。固定ステップソルバーは、通常は、固定した周期的時間間隔で次の連続状態を計算するための直接的な方法を使用する。可変ステップシステムは、可変ステップソルバーを使用するものである。可変ステップソルバーは、非周期的時間間隔で次の連続状態を計算するための間接的もしく直接的のいずれかである方法を使用する。概して、可変ステップソルバーは、所望のエラー許容度が達成されるように間隔サイズを調節するエラー制御の形式を使用する。
【0078】
実際には、最も基本的なシステムを除いて、動的システムのための数学的モデルは、別の入力を形成するなんらかの変換の出力に、なんらかの所定の様式で適用される複雑な一組の変換を伴う。各基本的変換は、上記列挙の1つに該当する単純な動的システムとして分離して認識することができる。従って、複雑な動的システムは、多様な単純な動的システムの相互接続としてモデル化することができる。何年にも亘って進化してきたこのような相互接続の図解がブロック図である。このように、ブロック図モデルは、動的システムの挙動の詳細を伝達するための、教科書、デザイン紙、定期刊行論文、および明細書の標準的な手段と今やなってきた。
【0079】
動的システムのブロック図は、動的システムの入力と出力を表わすラインで相互接続されたブロックの集合として図解される。各ブロックは、基本的動的システムを表わす。1つのブロックから発して他のブロックで終端するラインは、第2のブロックが第1のブロックの生成物(product)であることを意味する。当業者は、用語「ブロック」は、基本的動的システムのみを言うのではなく、ブロック図の読みやすさやモジュール性を支援する他のモデル化要素をも含むことができることを認識するであろう。
【0080】
デジタル信号処理(DSP)の理論は、モデル化信号をサンプル系列として焦点を当てている。この見方は、サンプルu[n]を離散時間点u(t)へマッピングすることによって、時間べースブロック図パラダイムに当然に適合する。これは、DSPシステムと、連続および/または離散時間制御システム等の他のクラスの時間ベースシステムとの間の相互作用をモデル化することができる便益を追加する。
【0081】
換言すれば、ブロック図モデルは、信号と動的システムを表わす状態変数との間の時間ベースの関係である。モデルの解(システム応答の計算)は、これらの経時にわたる関係を評価することによって得られる。ここで、時間は、ユーザが指定した「スタート時間」に開始し、ユーザが指定した「停止時間」で終了するものとする。これらの関係のそれぞれの評価を時間ステップと言う。信号は、時間とともに変化する量を表わし、この量は、ブロック図の開始と停止の間の時間の全ての点に対して規定される。信号と状態変数の間の関係は、ブロックによって表現される何組かの方程式で規定される。これらの方程式は、入力信号、出力信号、状態、および時間の間の関係を規定する。この規定に特有なのは、方程式の係数であるパラメータの概念である。
【0082】
ブロック図は、時間ベースの動的システムの表現専用ではなく、他の計算のモデル用でもあることに注意することが重要である。例えば、フローチャートは、プロセスフローを把握するために使用されるブロック図であるが、一般に動的システムの挙動を記述するためには適切ではない。データフローブロック図は、グラフィカルプログラミングパラダイムを記述するブロック図であり、利用可能なデータ(しばしばトークンとして考慮される)は、ブロックの実行を開始するために使用される。ここで、ブロックは操作を表わし、ラインは、ブロック間のデータフローの方向を記述する実行依存性を表わす。本明細書中で使用されるように、ブロック図という用語は、別に断りがなければ、動的システムのコンテキストで使用される時間ベースのブロック図を意味する。
【0083】
ブロック図実行エンジンは、そのブロック図モデルにより作成された動的システムの出力の計算や追跡を可能とするソフトウェアタスクのモデル化に貢献する。実行エンジンは、ブロック図をコンパイルしリンクするタスクを実行して、コードを生成するため、および/またはブロック図モデルをシミュレートするか線形化するために使用される「メモリ内実行可能(in−memory executable)」なバージョンのモデルを作成する。ブロック図の実行は、シミュレーションとも言う。コンパイルステージには、ブロック図におけるブロックの相互接続の統合性と有効性のチェックが伴われる。このステージにおいて、エンジンは、ブロック図におけるブロックを、ブロック方法実行リストを作成するときに使用された階層的リストに分類する。リンクステージにおいて、実行エンジンは、ブロック図の多様な構成要素の実行に必要なメモリを割り当てるため、コンパイルされたステージの結果を使用する。リンクステージは、ブロック図のシミュレーションや線形化によって使用されるブロック方法実行リストも作成する。リンクステージの中に含まれるのは、「セットアップ」方法(ブロック開始、初期化、イネイブル、および定出力法等)の評価からなるモデルの初期化である。モデルのシミュレーションおよび/または線形化は、サンプルヒットがあるとき、タイプによって(ブロックによるのではく)、ブロック方法を実行しなければならないため、ブロック方法実行リストが生成される。
【0084】
リンク付けが機能した後、実行エンジンはコードを生成することができる。このステージにおいて、実行エンジンは、ブロック図モデル(またはその一部)を、いずれかのソフトウェアモジュールまたはハードウェア記述(広い意味でのコード)へ翻訳することを選択することができる。このステージが実行されると、次いでステージは、ブロック図の実行中に生成されたコードを使用する。このステージが完全にスキップされると、次いで実行エンジンは、ブロック図の実行の説明モードを使用する。場合によっては、ユーザは、ブロック図ソフトウェアの範囲外でコードを展開したいため、ブロック図の実行をそれ以上進めないことがある。シミュレーションステージに到達すると、実行エンジンは、シミュレーションループを実行して、サンプルヒットした際の事前に規定された順序付けでブロック方法を実行して、時間とともに変化するシステム応答を作成する。
【0085】
推定反応時間の決定は、シミュレーションのために選択された時間間隔の大きさに依存する。ステップの大きさの選択方法を理解するため、まずはソルバーの概念を理解する必要がある。ソルバーは、(a)システムの出力を正確に追跡するため、連続した経路の間でどこまで実行時間が進行されるべきかを決定する、および(b)実際の状態を得るため、システムの状態の微分を積分する、という2つのタスクの実行を担うシミュレーションエンジン120のモジュールである。第1のタスクをソルバーが実行する方法に基づいて、ソルバーは、固定化ステップソルバーまたは可変ステップソルバーという2つのベーシックなクラスに概ね分類される。
【0086】
固定化ステップソルバーは、連続経路の間の時間ステップサイズが固定した量であるソルバーである。ユーザは、この量を概ね明確に特定する。このソルバーは、規定された時間内で動作しなければならないモデルタイプのシステムに使用される(離散システム)。例えば、アンチロックブレーキシステムを、車のブレーキシステムを制御するように、および車が確実に安全に停止するように100分の1(0.01)秒(ブレーキシステムがそのタイミング制約に合わない場合は、車は崩壊する。)で、このような制御を実行するように設計することができる。従って、固定化ステップソルバーは、固定した時間内に結果を生成しなければならないモデル離散システムを支援するために設計され、固定化時間ステップ実行は、モデル化システムがそのような結果を確実に作成させることができる。なんらかの反応が、離散サンプル時間を有するとして規定することができ、この場合、反応の値は固定化ステップソルバーを使用して一定の間隔で計算することができる。
【0087】
しかし、反応によっては、連続時間システムであると規定される。これらの反応に対して、エラーの蓄積を最小化するため、シミュレーションエンジンによって決定される時間間隔イベントでスケジューリングが生じる。これらの反応には、可変ステップソルバーの使用が要求され、可変ステップソルバーは、全ての重要な挙動をシミュレートするために不均一な間隔の時間ステップが必要とされる連続システムをモデル化するように設計されている。例えば、跳ねるボールの経路、跳ねる位置、跳ねる高さ、および止まる位置、をシミュレートしてもよい。経験に基づいて、ボールの跳ねは、均等な間隔ではなく、跳ねる高さは、重力、摩擦、および他の力の結果として減少するであろう。可変ステップソルバーが、これらのタイプの連続システムのために使用されて、ボールの挙動が正確にモデル化されるように使用するステップサイズを決定する。
【0088】
さらに別の実施の形態において、モデルによって「速い」と考えられた反応は、「ゼロ時間」で完了したとみなされ、これは、反応がモデルシミュレーションを通じて、最終結果の値を有する定数として扱われることを事実上意味する。
【0089】
先に記載したように、確率論的反応は、有効な確率分布上でランダムな時間ベースで生じ、いずれのタイプのソルバーにもきちんと適合しない。確率論的反応を含むシステムを正確にモデル化するために、単独であっても、または確率論的要素と固定化ソルバー要素もしくは可変ソルバー要素との両方を含むハイブリッドシステムの一部としてであっても、次のステップが取られる。
【0090】
シミュレーションは、モデルにおける各反応に対する推定時間を決定する(ステップ602)。システムにおける各反応に対する推定反応時間が一旦計算されると、この時間は、推定発生時間によって、状態アレイにソートされる(ステップ604)。1つの実施の形態において、状態アレイは、発生時間によりソートされる一式のポインタであり、各ポインタは、モデルシミュレーションの中でそのポイントで実行されるべき対象を指示する。一旦ソートされると、アレイ中の最初のエントリーによって認識される対象が実行される(ステップ606)。
【0091】
トップ対象の実行は、モデル化システムに存在する種の量、またはテーブルの特定反応に対する推定反応時間に影響することがあるため、状態アレイ中の各エントリーに対する推定時間が再計算され(ステップ608)状態アレイが再ソートされる(ステップ610)。
【0092】
シミュレーションエンジン120は、実行すべき別の反応をチェックする(ステップ614)。別の反応が存在する場合は、シミュレーションエンジン120は、最終のシミュレーション時間において到達したことを決定したかを調べる(ステップ616)。そうでなければ、シミュレーションエンジン120は、状態アレイの次のエントリーを実行する(ステップ606)。さもなくば、シミュレーションは終了する。当業者であれば、別のスケジューリング方法論を使用することができることを認識するであろう。
【0093】
1つの実施の形態において、シミュレーションエンジン120は、全体のシミュレーションコンテキストを格納するための機構、および全シミュレーションコンテキストを復元する機構を提供する。本発明の1つの局面において、シミュレーションが終了したときに(最終時間が到達するか、シミュレーションがユーザによって中断されるか、またはそれ以外か、のいずれによっても)、シミュレーションのコンテキストを格納するためにシミュレーションが開始される前に、シミュレーション環境に指示を出すモデル化環境110においてフラッグが設定される。コンテキストが格納されるべきか否かを問うための代わりの手順を実行することもできる(例えば、シミュレーションが終了したときのユーザのやり取り)。一旦シュミレーションが終了すると、シミュレーションコンテキストを、ワークスペースパラメータで、または別のなんらかのフォーマットで、ファイルとして格納することができる。
【0094】
1つの実施の形態において、シミュレーションコンテキストがファイルへ格納される。シミュレーションコンテキスが格納されるファイルを、自動的に名前付けすることができる。しかし、ユーザが規定したファイルを代わりに使用することができる。シミュレーションコンテキストを保存するための格納機構は、メモリダンプとしてコンテキストを保存することから、対話プロセスを介したプラットフォーム独立のテキストダンプ(textual dump)としてコンテキストメモリを保存するに至るまで、さまざまであり得る。コンピュータアーキテクチャ間のそれに伴う構築上の不適合がない限り、結果において違いはない。コンテキストをプラットフォーム独立のバイナリダンプ、またはプラットフォーム独立のテキストダンプとして保存する別の実施も、本発明の範囲内である。
【0095】
コンテキスト復元のユーザインターフェースは、対応する「シミュレーションを継続」コマンドでシミュレーションを開始することで達成される。これは、シミュレーションをトリガする通常の手段に対するパラメータとしてまたは他のいずれかの方法で実行することができる。継続したシミュレーションは、最終時間や別の出力時間等の初期のシミュレーションの全ての(必須および随意の)引数(arguments)を引数として取る。
【0096】
シミュレーションコンテキストを格納するためには、「シミュレーションコンテキストを格納(StoreSimulationContext)」フラグをシミュレーションエンジン120に設定することができ、または当該フラグは、分析環境130によりシミュレーションエンジン120に連絡することができる。モデル化環境110でのグラフィカル要素の使用等の別の実施は、フラグの使用に代えてまたはそれに加えて使用することができる。さらに、コンテキスト格納はシミュレーション中に生じる操作であり得る(すなわち、通常のシミュレーションを中断することが無い。)。このため、ユーザは、特定の格納条件(例えば、定常状態の到達等シミュレーションのある時間点に達するとき、またはモデル変数の特定の値が存在するとき等)、を指定することができる。この結果、シミュレーションの動作中に、シミュレーションコンテキストのスナップショットと共に一連のシミュレーションコンテキストファイルを得ることができる。
【0097】
1つの実施の形態において、シミュレーションエンジン120は、シミュレーションコンテキストを構成するメモリの領域を記録し、次いでシミュレーションコンテキストを格納し復元する手順を呼び出す。1つの実施の形態において、メモリ領域に関連するシミュレーションコンテキストは、シミュレーションが開始する前に記録される。これは、記録機構を介して、一般的なメモリアロケーションコールの経路変更により実行される。シミュレーションコンテキストを格納し復元する際の複雑さは、集まった変数がレファレンスと値を混合しているときに生じる。これを図示すると、ルンゲクッタ45ソルバーの特性を考慮する。そのC++実行において、VarStepSolverからクラスRK45が得られる。RK45の特性は、
RK45
double
t0;
double
*x0;

double
t1;
double
*x1;
double
h;

double
*dX[7];

bool projectInterpolant;

static const int id;
static const double power;
である。
【0098】
定義は、RK45のインスタンスが、値特性とレファレンス特性を含むことを明らかにする。レファレンスは、特定のシミュレーションに特有のポインタを含み、動作するシミュレーションの間で異なる。従って、これを復元することは、無効なレファレンスという結果となり、従って、これは除外されなければならない。図7は、RK45のインスタンスに対する割当てメモリ770の一部を示す。割当てメモリは、値フィールド772、774、776、778、780、782、および784と、レファレンスフィールド786、788、790、および792を含む。
【0099】
シミュレーションコンテキストメモリアロケーションの追跡のためには、2つの基本的アプローチが存在する。ローカライズした索引作成スキームは、コンテキストの一部であるオブジェクトの関連変数を追跡する。あるいは、グローバルテーブルが維持され得る。第1のアプローチは、オブジェクト指向のコーディングパラダイムに適しているが、第2のアプローチは、手続き型スタイルのコーディングにさらに適している。当業者は、シミュレーションコンテキストによって使用されるメモリの一部を認識して注目する別の方法を、本発明の範囲内で採用することができることを認識するであろう。
【0100】
グローバル索引作成スキームにおいて、関連変数は、それが定義されるとき、すなわちそのメモリが割り当てられるとき、特別の呼び出しにより認識される。このため、標準的なランタイム割当て手順を呼び出す代わりに、別の方法で割当て手順を呼び出す中間の機能呼び出しが使用されるが、当該呼び出しが戻る前に、これは割当てメモリをコンテキストの一部として記録する。
【0101】
索引作成スキームが拡張されてローカルモデル情報を格納して選択的なコンテキストの復元を容易にすることに注意する。そのようにして、モデルがそれらのパーツのメモリレイアウトに影響する場所を変更した場合でさえ、モデルのサブシステムのコンテキストを認識することができ、リクエストに応じて復元することができる。好適な実施の形態は、モデルパーツと割り当てられたメモリのインスタンスを追跡し、次いで独自の識別子が割り当てられる。
【0102】
数値ソルバーのモジュール化と、オブジェクト指向のコーディング原理をますます適用するイニシアチブに伴って、さらに分散化された実行の必要が出てきた。この構築において、関連メモリのグローバルインデクスを有しないが、各オブジェクトに対してこれをローカルに維持することが望ましくなる。コンテキストに応じたオブジェクトは、アクセス方法を実行してそのコンテキストを利用可能にする。いくつかの実行が可能である。例えば、オブジェクトは、コンテキストの一部である各メモリ場所にインデクスを作成することができ、ストリーミング操作を呼び出し側により実行してもらい、または、メモリ内容自体をストリームすることができる。
【0103】
このローカル索引作成スキームは、オブジェクトベースであるので、モデルのパーツ(1つのサブシステムのみ等)に対する選択的なメモリ復元をサポートする。コンテキストフラグメントのモデルの起源を索引作成すると、随意にはタイプ実行の間の転換機構と組み合わされて、プラットフォームと異なるコンパイルされたバージョンのモデルとの間の復元ができる。これは、詳細な現象論的プラントモデルと組み合わせて、コントローラをシミュレーションにおいて定常状態動作ポイントに到達させ、コンテキストを格納し、次いでコントローラ用のコードを生成した後、コントローラコードを初期化するための同一のコンテキストを使用する、等のサポートをする。
【0104】
使用され、集中され、または分散される索引作成のタイプが選択されるべきである。これは、メモリアロケーションコールへの索引作成の結合に関連し、テーブルは、コンテキストの一部であるメモリの各部を追跡する。インスタンスのためのメモリが割り当てられると、復元を可能とするコンテキストの一部であるとして索引作成される。簡単なアプローチが、<address,size>(<アドレス、サイズ>)タプルによるこのインスタンスの全てのRK45に特有のメモリに索引作成する。RK45インスタンスのベースアドレスとそのタイプのサイズを考慮すると、メモリの全体部分は、コンテキストの一部と認識される。
【0105】
メモリの参照部分を除外するため、参照された変数のためのメモリアロケーションコールを利用することができる。これによって、タイプ規定がメモリの参照された部分を明確に除外するであろうときに要求されるであろう冗長性が防止される。このアプローチは、図8Aに図示される。RK45インスタンスが規定されると、<address,size>タプルが、値とレファレンスの両方を含むメモリ800の対応部分をマークする。次いで、図8Bにおいて、参照された変数の1つ、X0が規定されると、その値が配置されるメモリ802をマークする<address,size>タプルが作成される。同一の機能において、メモリの領域を参照とともに追跡する<address,size>タプルがパラレル索引作成スキーム804の一部として作成される。このようにして本発明の1つの実行は、<address,size>タプルを有する2つの索引作成スキームを含み、1つは、値とレファレンス800の両方を有するコンテキストに関連したメモリのためのものであり、1つは、レファレンスを含むこのメモリ802の各部のためのものである。この実行は、索引作成のためのアロケーションコールの利用を可能とする。あるいは、これらの参照された変数の1つが規定されるとき、レファレンスを有するメモリ索引作成スキームの中の<address,size>タプルがパーティションで区切られてもよい。これには、幾分洗練されたレジストレーション機構が要求される。代替の実施の形態において、メモリ領域は、動的に構築されるのではなく、コンテキストの一部である一式の変数としてハードコード化がされている。両方の索引作成スキームが実行され、互いに関連して使用されている。
【0106】
ユーザ規定のファンクションのワークアレイは、索引作成メモリの一部であるため、変数が標準的インターフェースを介して宣言される限り、ユーザ規定のブロックを復元スキームに付かせるために別に労力は要されない。例えば、連続状態変数を宣言するためのインターフェースは、ssSetNumContStates(S,NUM_CONT_STATES)である。ここでSは、ユーザ定義のシステムを参照し、NUM_CONT_STATESは、連続状態の数である。さらに自由度を高めるため、ファイルから、およびファイルへの選択された変数をユーザがストリームするオプションも、ユーザ定義ブロックに対して実行される。
【0107】
格納され復元される必要があるメモリの領域に対する索引作成スキームによって、索引作成操作を呼び出してコンテキスト復元を容易にする機構が要求される。シミュレーション動作がリクエストされたとき、コンテキストの一部であるメモリが全て割り当てられていることに注意することが重要である。実行への変更が行われたかもしれないため(異なるソルバーが選択されたかたもしれない等)、これは、各シミュレーションが実行される前に新たに索引作成される必要がある。
【0108】
復元プロセスは、以下のコードスニペットでイタリックで示すように、メインシミュレーションループの周囲で実行される。
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 */
【0109】
シミュレーションを開始する前に、復元されるフラグが設定される場合に、同一のファンクションコールにおいて実行されるslLoadContextへの呼び出しによりシミュレーションコンテキストが復元される必要があるかが決定される。一旦、コンテキストが復元されると、シミュレーションは、通常に呼び出されたかのように進行する。一旦完了すると、ブロック図のStoreSimulationContextフラグがユーザによって設定された場合は、索引作成されたメモリは、slCtxStoreコールによって格納される。コンテキストは、1つの実行中のmcx拡張とともにファイルに記述される。
【0110】
図9に示すフローチャートは、復元機構の実行を示す。コンテキスト索引作成は、モデル特性シミュレーションコンテキスト(Context)がまだ設定されていないときに開始される。これは、新たなシミュレーション動作が要求されたときに、元々索引作成されたメモリがクリアされて再割当てされるのを確実にする。そうでなければ、これは付加されて、メモリの同一領域は回数をますます増やして(シミュレーションが動作した回数に関連して)索引作成される。コンテキストがslCtxStoreによってファイルに記述されるとすぐ、または(エラー条件等のため)別の経路の場合に新たなシミュレーション動作を開始することができることを示すためにシミュレーションコンテキストがリセットされる。
【0111】
新たな動作が開始されると、第1のコンテキストリダイレクトされたアロケーションコールが、ContextInitializationCompleteをリセットし、インデクスをリセットし、第1の<address,size>タペルを作成する。連続したアロケーションコールが次いで、値の代わりにレファレンスを含むコンテキストメモリの各部を索引作成するスキームを含むメモリインデクスを完了する。この機能は、コンテキスト格納を容易にするため、いつでも(すなわちコンテキストが復元されないときでも)要求される。ユーザがシミュレーション継続をリクエストしたかに関して次いで決定がなされ、loadContext flagによって示される。もし、そうであるなら、格納されたコンテキストのモデルのメモリマップを捕捉するモデルチェックサム(model checksum)が有効であり、これが、シミュレートされるべきモデルのチェックサムを満たすとき、コンテキストは復元される。これは、モデルメモリマップは、シミュレーションコンテキストを保存するため使用されたモデルのものと互換可能である必要があるので重要である。メインシミュレーションループは、次いで実行され、現在のシミュレーションコンテキストを完了したとき、ファイルに記述される。コンテキスト保存は、固定化ステップサイズの場合のために、続くslDoOutputAndUpdateの前にされるべきであることに注意すべきであり、slDoOutputAndUpdateは、離散パルスジェネレータの状態を次の時間点に置くが、再スタートは、現時点から継続する。
【0112】
図9は、シミュレーションエンジンがシミュレーションコンテキストを復元して次いで実行するステップの手順を示す。手順は、loadContext変数をゼロに設定することから始まる(ステップ920)。格納されたシミュレーションコンテキストが利用可能であるかに関して決定がなされる(ステップ922)。利用可能なものであれば、loadContext変数を1に設定する(ステップ924)。次に、restoreSimulationContext変数をloadContext変数と等しくなるように設定する(ステップ926)。simulationContext変数が設定されない場合は(ステップ927)、メモリが割り当てられる(ステップ928)。次いで、シミュレーションコンテキストメモリがロードされ(ステップ930)、ローディングの確認がされる(ステップ931)。シミュレーションコンテキストが、復元された場合は、シミュレーションが生じる(ステップ933)。シミュレーションコンテキストは、シミュレーションの前にまたは対話形式のいずれかで決定される。ユーザの希望によりシミュレーションの後にセーブすることができる(ステップ933)。シミュレーションコンテキストがセーブされるべきである場合、これはセーブされ(ステップ934)て、割当てたメモリをフリーにしつつ、simulationContext変数がNULLへリセットされる(ステップ936)。シミュレーションコンテキストがセーブされない場合は、simulationContext値はいまだNULLへ設定されている(ステップ936)。
【0113】
復元されたシミュレーションコンテキストは、共通の再生可能点から試験的選択肢に至るまで複数の解析を動作するために使用することができる。復元されたシミュレーションコンテキストは、選択的な分析を同時に並行して動作させて使用することができる。別の実施の形態において、シミュレーションコンテキストは、構築モデルを更新するために使用することができる。シミュレーションコンテキストの復元は、一時的にシミュレーションを再動作させる必要が無いにもかかわらず、正確さを確実にすることにより、前回のシミュレーション方法に亘るかなりの時間またはシミュレーションの初期設定ステージを節約する。複数のシミュレーションコンテキストは、シミュレーションを停止することなく動作中のシミュレーションから保存することもでき、従って、デバグや別のタイプの分析に役立つ。本発明の例示の実施の形態は、システムの広範なシミュレーションを可能とし、時間べースのブロック図に限定されない。
【0114】
別の実施の形態において、可逆反応のシミュレーションが最適化される。これらの実施の形態において、状態アレイにおいて同一のシミュレーション時間において「両方向の」可逆反応が生じるか、すなわち、シミュレートされるべき次の2つの反応Ce−>BrとBr−>Ceを確認するため、状態アレイが解析される。これが生じると、これらは互いにうち消すために両方の反応はスキップされる。周知のコード最適化技術を使用して、この概念が、一緒に互いにうち消し合う、Ce−>Br、Br−>Pb、Pb−>Ce等の3以上の反応に拡張されることができる。
【0115】
図1を再び参照して、シミュレーションエンジン120によって生成された結果は、分析環境130によって使用することができる。別の実施の形態においては、例えば、システムをシミュレートする代わりに、モデル化されたシステムのための定常状態値を生成するため、分析環境130はモデル上で直接動作する。これらの実施の形態の中には、分析ツール120が、全ての微分方程式の導関数を0に設定し、システムを代数的に解くことによってこれを行うものもある。これらの別の実施の形態において、分析エンジンは、当業界で公知なように、システムの定常状態値を決定するためフラックスバランス分析を行う。分析環境120によって採用することができる別の周知の形態の分析には、非線形ソルバー、感度分析、分岐解析、パラメータスキャン、パラメータ推定、およびネットワーク推論解析が含まれる。これらの分析の結果は、シミュレーションエンジン120へ、その計算用の入力として提供することができる。
【0116】
分析環境130は、さらにシミュレーションエンジン120によって生成された結果を処理し、または結果を視覚的もしくは聴覚的に表示することができる。例えば、分析環境120は、ユーザに同様の経路を確認するため、グラフビジュアル化技術を使用することができる。実施の形態の中には、分析環境130が、生成された結果の実験データとの比較を分析環境130に可能とするデータ取得ハードウェア(図1に示さず)と連動するものもある。これらの実施の形態の中には、継続中の実験から集められたデータが、インサイチュで生じている反応のモデルを修正または生成するために使用されるものもある。実施の形態によっては、実験がマイクロアレイまたはDNAチップ上で行われるものもある。例えば、所与の蛋白質の存在が、モデルによって予測されるが、実験から得られたデータは、その蛋白質が存在しないことを示していると、分析ツール130は、インサイチュの実験と予測された反応が異なることを、聴覚的または視覚的にユーザに知らせることができる。マイクロアレイ上で実験が行われる実施の形態に対して、集められたデータは、マイクロウェル間で異なることがある。これらの実施の形態において、分析ツールが集められたデータの値を平均することができる。これらとは別の実施の形態において、分析環境130は、1つのマイクロウェルからのデータがモデルの予測された反応と異なる場合に差異を知らせることができる。実施の形態によっては、インサイチュの実験と予測結果の間の許容差の量が、ユーザ設定できるものもある。別の実施の形態において、分析ツールは、集められたデータをモデル化環境110に伝達して、この差異を補償するようにモデルを改変することができるものもある。さらに、別の実施の形態において、分析環境130は、実験の予測結果と実験から集められたデータをグラフィカルに表示する。
【0117】
別の実施の形態において、シミュレーションエンジン120によって生成された結果に基づいて、進行中の実験を分析ツールが制御することを、データ取得ハードウェアは可能とする。これらの実施の形態は、ナノ機構の構築に有用であり得る。これらの実施の形態において、モデルは、インサイチュ温度が華氏102度であることが要求され得る。インサイチュ環境における熱電対計測の温度が、華氏102度より低くなったことを示す場合は、実験にもっと熱を加えることができる。
【0118】
データ取得ハードウェアは、統合化したモデル化、シミュレーション、および分析環境100を実行する計算プラットフォームと互換のある任意の数のハードウェアデバイスを含むことができる。例えば、環境100がパーソナルコンピュータ上で実行する実施の形態において、データ取得ハードウェアは、ローカルシステムバス220と連動する。図2Bに示すような実施の形態において、データ取得ハードウェアは、HyperTransport bus、Rapid I/O bus、またはInfiniBandと連動する。データ取得ハードウェアは、GPIB(IEEE−488,HPIB)、VISA、TCP/IP、およびUDP規格を使用する機器および実験と連絡することができる。
【0119】
本発明のシステムおよび方法を、単一のマシン上で実行するとして上述してきたが、これらは、X−Windows(登録商標)またはMicrosoft Terminal Services等のクライアントサーバ環境において使用することもできる。モデル化環境110、シミュレーションエンジン120、および分析環境130は、それぞれ別個のマシン上で実行することができ、又は、これらは、マシン間の任意の組み合わせで集めることができる。例えば、1つの特定の実施の形態において、モデル化環境110と分析環境0130が、「クライアント」マシン上で実行し、一方で、シミュレーションエンジンが「サーバ」マシン上で実行する。これらの実施の形態においてコンピュータは、バス、スター、またはリングトポロジ等を含む多くのネットワークトポロジによって接続されることができる。ネットワークは、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネット等の広域ネットワーク(WAN)であり得る。そして、各コンピュータは、標準的な電話線、LAN、またはWANリンク(T1,T3,56kb,X.25等)、ブロードバンド接続(ISDN,Frame Relay, ATM)、および無線接続等の多様な接続を介してネットワーク180に接続することができる。接続は、さまざまな通信プロトコル(TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、イーサネット(登録商標)、ARCNET、Fiber Distributed Data Interface(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEE 802.11b、IEEE 802.11g および直接非同期接続等)を使用して確立することができる。
【0120】
本発明の実施の形態は、多様なコンピュータ実行操作のためのコンピュータコードをその上に有するコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。メディアとコンピュータコードは、特別に設計され、本発明の目的用に構成されたものであり得、または、それらは周知のものであり、コンピュータソフトウェア技術の当業者に利用可能なものであり得る。コンピュータ読み取り可能なメディアには、限定されないが、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープ等の磁気メディア、CD−ROM、CD−R/RWディスク、DVD−ROM、DVD−RAM、ホログラフィックデバイス、等の光学メディア、フロプティカルデバイス等の光磁気メディア、フラッシュドライブ、メモリスティック、xDカード、マルチメディア(MultiMedia)カード、およびスマートメディアカード等の半導体メモリ、特定用途向け集積回路(「ASICs」)、FPGAs(フィールドプログラマブルゲートアレイ)、プログラマブルロジックデバイス(「PLDs」)、プログラムコードを格納し実行するため特別に構成されたハードウェアデバイス、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、EPROMs(「programmable read only memories」)、およびEEPROMs(「electrically programmable read only memories」)が含まれる。
【0121】
このようなコンピュータ読み取り可能メディア上で実現されるコンピュータコードの例は、コンパイラなどによって作成されるマシンコード、およびインタプリタを使用するコンピュータによって実行される、より高レベルなコードを含むファイルを含む。例えば、発明の実施の形態は、Java(登録商標)、C++、または他のオブジェクト指向のプログラミング言語、および開発ツールを使用して実行することができる。
【0122】
本発明は、さまざまな特定の実施の形態を参照して記載してきたが、多様な変更がなされることができ、添付の特許請求の範囲によって規定される本発明の精神と範囲を逸脱することなく製造される代替の均等物が当業者によって理解されるべきである。さらに、本発明の目的への、特定の状況、材料、組成物、方法、プロセス、一連のステップ、に適合するように発明の精神と範囲内にとどまりつつ改変がなされることができ、そのような改変は、添付の特許請求の範囲内であることを意図している。特に、開示の方法は、特定の順序における特定のステップを参照して記載してきたが、これらのステップが、本発明の教示による製造から逸脱することなく均等な方法を形成するために、組み合わされ、下位に分割され、または再整理されることが、当業者に理解されるであろう。従って、本明細書において特に指示がなければ、ステップの順序と分類は、本発明を限定するものではない。
【0123】
添付A
<?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)(BrO3が一定に保たれる。HOBrは、通常は無視され、任意の空集合で置換される。化学量論fは、通常は、1/ 2 または1がとられる(SBMLにおける分母1または2)。 .</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>
【図面の簡単な説明】
【0124】
本発明は、添付の特許請求の範囲によって特に指摘される。本発明の上述の利点と別の利点は、添付の図面を上述の詳細な説明を参照することによってより理解することができる。
【図1】図1は、統合したモデル化、シミュレーション、および分析環境の1つの実施の形態のブロック図である。
【図2】図2Aは、本発明に関連して有用なパーソナルコンピュータの1つの実施の形態のブロック図である。図2Bは、本発明に関連して有用なパーソナルコンピュータの別の実施の形態のブロック図である。
【図3】図3Aおよび3Bは、本発明に関連して有用なテーブル形式のモデル化環境の実施の形態を図示する画面である。
【図4】化学反応や生物学的プロセスのブロック図表現が容易に構成されるグラフィカルユーザーインターフェースの1つの実施の形態の画面である。
【図5】図5Aは、常微分方程式を使用する動的システムのモデルを図示するブロック図である。図5Bは、差分方程式を使用する動的システムのモデルを図示するブロック図である。図5Cは、代数方程式を使用した動的システムのモデルを図示するブロック図である。
【図6】図6は、モデル化された生物学的プロセスや化学反応をシミュレートするために取られるステップの1つの実施の形態を図示するフローチャートである。
【図7】図7は、ソルバーに対する割当てメモリーのブロック図を図示する。
【図8】図8Aは、値と参照の両方を保持するメモリの一部を示す、ソルバーに対する割当てメモリーのブロック図を示す。図8Bは、値および参照の両方と参照のみのパラレル索引作成とを保持するメモリの一部を示す、ソルバーに対する割当てメモリーのブロック図を示す。
【図9】図9は、実行の前の復元機構を実施するための本発明の例示の実施の形態に続くステップの手順のフローチャートを示す。

【特許請求の範囲】
【請求項1】
複数の化学反応を備える生物系の改善されたモデル化のためのシステムであって、
前記生物系のモデルを構築するためのユーザコマンドおよび入力を受容するためのグラフィカルユーザインターフェースを備えるモデル化構成要素と、
前記生物系のモデルの前記構築されたモデルを入力として受容し、前記生物系の動的挙動を出力として生成するシミュレーションエンジンと、
前記シミュレーションエンジンと連絡する分析環境と、
を備え、前記分析環境が、前記生物系の動的挙動を表示するシステム。
【請求項2】
前記モデル化構成要素が、前記生物系のブロック図モデルの構築を可能とする、請求項1に記載のシステム。
【請求項3】
前記モデル化構成要素が、一組の関連する化学反応を認識する少なくとも1つのブロックをさらに含む、請求項2に記載のシステム。
【請求項4】
前記モデル化環境が、前記生物系のモデルの構築を支援するツールパレットを含む、請求項1に記載のシステム。
【請求項5】
前記シュミレーションエンジンが、確率論的な計算モデルを使用して、前記生物系の動的挙動を生成する、請求項1に記載のシステム。
【請求項6】
前記シミレーションエンジンが、離散時間ベースの計算モデルを使用して、生物系の動的挙動を生成する、請求項1に記載のシステム。
【請求項7】
前記シミュレーションエンジンが、連続的時間ベース計算モデルを使用して、前記生物系の動的挙動を生成する、請求項1に記載のシステム。
【請求項8】
複数の化学反応を備える生物学的プロセスをモデル化するための改善された方法であって、
(a)ユーザコマンドおよびデータを受容するためのユーザインターフェースを提供する工程と、
(b)前記提供されたユーザインターフェースを介してユーザコマンドおよびデータを受容する工程と、
(c)前記受容されたユーザコマンドおよびデータを使用して、前記生物学的プロセスのモデルを構築する工程と、
(d)前記生物学的プロセスの前記構築されたモデルを使用して、前記モデル化された生物学的プロセスの動的挙動を生成する工程と、
(e)前記生物学的プロセスの動的挙動をディスプレイデバイス上に表示する工程と、
を備える方法。
【請求項9】
工程(c)が、前記生物学的プロセスのブロック図モデルを構築する工程を備える、請求項8に記載の方法。
【請求項10】
前記ブロック図モデルが、一組の関連する化学反応を認識する少なくとも1つのブロックを含む、請求項9に記載の方法。
【請求項11】
工程(d)が、前記生物学的プロセスの前記構築されたモデルを使用して、確率論的計算モデルを使用して前記モデル化された生物学的プロセスの動的挙動を生成する工程を備える、請求項8に記載の方法。
【請求項12】
工程(d)が、前記生物学的プロセスの前記構築されたモデルを使用して、離散時間ベースの計算モデルを使用して前記モデル化された生物学的プロセスの動的挙動を生成する工程を備える、請求項8に記載の方法。
【請求項13】
工程(d)が、前記生物学的プロセスの前記構築されたモデルを使用して、連続的時間ベースの計算モデルを使用して前記モデル化された生物学的プロセスの動的挙動を生成する工程を備える、請求項8に記載の方法。
【請求項14】
化学反応の改善されたモデル化のためのシステムであって、
化学反応を構築するためのユーザコマンドおよび入力を受容するモデル化環境と、
前記化学反応の前記構築されたモデルを入力として受容し、予測結果を出力として生成するシミュレーションエンジンと、
前記シミュレーションエンジンと連絡する分析環境と、
を備え、前記分析環境が、前記予測結果を表示するシステム。
【請求項15】
前記モデル化環境が、化学反応のブロック図モデルの構築を可能とする、請求項14に記載のシステム。
【請求項16】
前記モデル化環境が、一組の関連する化学反応を確認する少なくとも1つのブロックをさらに含む、請求項15に記載のシステム。
【請求項17】
前記シミュレーションエンジンが、確率論的計算モデルを使用して予測結果を生成する、請求項14に記載のシステム。
【請求項18】
前記シミュレーションエンジンが、離散時間ベースの計算モデルを使用して予測結果を生成する、請求項14に記載のシステム。
【請求項19】
前記シミュレーションエンジンが、連続的時間ベースの計算モデルを使用して、予測結果を生成する、請求項14に記載のシステム。
【請求項20】
化学反応を、モデル化、シミュレーション、および分析するための統合化した方法であって、
(a)ユーザコマンドおよびデータを受容するためのグラフィカルユーザインターフェースを提供する工程と、
(b)前記提供されたユーザインターフェースを介して、ユーザコマンドおよびデータを受容する工程と、
(c)前記受容したユーザコマンドおよびデータを使用して、化学反応のモデルを構築する工程と、
(d)前記化学反応の前記構築されたモデルを使用して、前記化学反応の予測結果を生成する工程と、
(e)前記予測結果を表示する工程と、
を備える方法。
【請求項21】
工程(c)が、化学反応のブロック図モデルを構築する工程を備える、請求項20に記載の方法。
【請求項22】
前記ブロック図が、一組の関連する化学反応を認識する少なくとも1つのブロックを含む、請求項20に記載の方法。
【請求項23】
工程(d)が、前記化学反応の前記構築されたモデルを使用して、確率論的計算モデルを使用して、前記モデル化された化学反応の予測結果を生成する工程を備える、請求項20に記載の方法。
【請求項24】
工程(d)が、前記化学反応の前記構築されたモデルを使用して、離散時間ベースの計算モデルを使用して、前記モデル化された化学反応の予測結果を生成する工程を備える、請求項20に記載の方法。
【請求項25】
工程(d)が、前記化学反応の前記構築されたモデルを使用して、連続的時間ベースの計算モデルを使用して、前記モデル化された化学反応の予測結果を生成する工程を備える、請求項20に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2007−534050(P2007−534050A)
【公表日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−554280(P2006−554280)
【出願日】平成17年2月18日(2005.2.18)
【国際出願番号】PCT/US2005/005518
【国際公開番号】WO2005/091202
【国際公開日】平成17年9月29日(2005.9.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(505384841)ザ マスワークス, インク (15)
【氏名又は名称原語表記】THE MATHWORKS, INC.
【住所又は居所原語表記】3 Apple Hill Drive, Natick, MA01760 (US).
【Fターム(参考)】