生体シミュレーション装置およびプログラム
【課題】従来のシミュレーション装置は、細胞のシミュレーションしか想定していないため、細胞の集合である組織や臓器、個体レベルでのシミュレーションができない、という課題があった。
【解決手段】本発明は、生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、シミュレーション結果を視覚的に出力するデータ出力部品と、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報に基づいて、2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、かかる生体シミュレーション装置により、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することができる。
【解決手段】本発明は、生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、シミュレーション結果を視覚的に出力するデータ出力部品と、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報に基づいて、2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、かかる生体シミュレーション装置により、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生物の臓器や器官等をシミュレーションするシミュレーション装置およびそのプログラム等に関するものである。
【背景技術】
【0002】
従来の生体機能のシミュレーションを行うことができるシミュレーション装置としてE−Cellというシミュレーション装置がある(非特許文献1参照)。E−Cellは、いわゆる細胞モデル構築基盤と言えるものである。
【非特許文献1】M.Tomita, K.Hashimoto, K.Takahashi, T.Shimizu, Y.Matsuzaki, F.Miyoshi, K.Saito, S.Tanida, K.Yugi, J.C.Venter, and C.A.Hutchison III, 「E−CELL:software environment for whole−cell simulation」 in Bioinformatics, vol.15, no.1, pp.72−84, 1999
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、非特許文献1におけるシミュレーション装置は、細胞のシミュレーションしか想定していないため、細胞の集合である組織や臓器、個体レベルでのシミュレーションができない、という課題があった。また、医学の進歩により、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いが検証され、各振る舞いごとのシミュレーションを行うシミュレータ部品が構築された場合、より総合的で、精度の高い生体のシミュレーションを行える環境を提供できていない、という課題があった。
【0004】
本発明は、従来の課題を解決するためになされたもので、細胞の集合である組織や臓器、個体レベルでのシミュレーションを容易に行える生体シミュレーション装置を提供することを目的とする。また、簡単なデータの追加定義(オーサリング)により、新しい組織や臓器、個体等もシミュレーションできる環境を提供することを目的とする。さらに、医学の進歩により、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いが検証され、各振る舞いごとのシミュレーションを行うシミュレータ部品が構築された場合、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することを目的とする。その結果、実情に合った精度の高いシミュレーションを可能にするとともに、それによって将来の医学の研究と進歩が助長されることを目的とする。
【課題を解決するための手段】
【0005】
本第一の発明の生体シミュレーション装置は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、シミュレーション結果を出力するデータ出力部品と、前記2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、前記2以上のシミュレータ部品は、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、前記出力データを前記シミュレーション管理部に渡す出力データ出力手段を具備し、前記データ出力部品は、前記シミュレーション管理部から出力データを受け付ける出力データ受付手段と、前記出力データ受付手段が受け付けた出力データを出力する出力手段を具備し、前記シミュレーション管理部は、前記2以上のシミュレータ部品およびデータ出力部品間の、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、前記2以上のシミュレータ部品からデータを受け付けるデータ受付手段と、前記データ受付手段で受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品に渡す入力データ受渡手段と、前記2以上のシミュレータ部品から受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品に渡す出力データ受渡手段を具備する生体シミュレーション装置である。
かかる構成により、細胞の集合である組織や臓器、個体レベルでのシミュレーションを容易に行える。また、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することができる。例えば、心臓全体で見ると、洞房結節で発生した興奮は刺激伝導系によって心臓全体に伝播される。この過程は、電気現象の一種であり、電場解析などによりシミュレートすることができる。そして、各細胞が発生した収縮力によって心臓全体が収縮するが、これは構造力学的現象であり有限要素法などを用いて計算可能である。さらに、心臓の収縮によって心臓内の圧力が高まり血液が拍出される。これは流体力学的現象として捉えることができる。それ以外にも、冠動脈などによる心筋の酸素濃度勾配など、多くの現象が心拍動に関与している。さらに、細胞と臓器との間の相互作用も存在する。例えば、心臓の構造力学的変形によって生じる心筋細胞への加重は、興奮収縮連関を通じて細胞の電気生理学的現象に影響を与える。このように、心拍動一つみても、いくつもの現象とその相互作用を考慮する必要がある。さらに、小腸における薬物吸収など、異なる生体機能にはそれぞれに異なった多くの現象とその相互作用が関与する。これらの現象は、複数の生体機能で共通なもの、同じ手法で計算可能なもの、ある生体機能に特有のものなど、様々である。本実施の形態によれば、上記のような個々のシミュレーションを行えるシミュレーション部品を組み合わせた、生体機能を対象とした汎用的なシミュレーションプラットフォームを提供できる。
【0006】
本第二の発明の生体シミュレーション装置は、第一の発明の生体シミュレーション装置に対して、前記データ出力部品は、前記シミュレータ部品への入力データを取得する入力データ取得手段をさらに具備し、前記出力手段は、前記出力データ受付手段が受け付けた出力データと前記入力データ取得手段が取得した入力データを対にして蓄積し、出力データの入力を受け付ける出力データ受付部と、前記出力データ受付部が受け付けた出力データと対になる、または前記出力データ受付部が受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索部と、前記入力データ検索部が検索した入力データを出力する入力データ出力部をさらに具備する生体シミュレーション装置である。
かかる構成により、結果から条件を類推できることにより、病態の原因解析や創薬ターゲット検索などに適用し、例えば、身体を手術したり、患者にとって負荷の高い検査をしたりすることを回避でき、患者の状態を知ることができる。
【発明の効果】
【0007】
本発明は、個体、臓器・器官、細胞・組織、細胞内小器官、分子といったの生体機能を構成する機能要素に対応するシミュレータ部品を組み合わせた、種々の生体の機能がシミュレーションできる。
【発明を実施するための最良の形態】
【0008】
以下、生体シミュレーション装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
【0009】
本実施の形態において、2以上の生体要素のシミュレータ部品を利用して、複雑な生体シミュレーションを行える生体シミュレーション装置等について説明する。生体シミュレーション装置は、2以上の異なる生体要素のシミュレータ部品とデータ出力部品とシミュレーション管理部を具備する。2以上の生体要素のシミュレータ部品は、入力を受け付け、シミュレーション結果を出力するシミュレータの部品である。データ出力部品は、シミュレーションの結果を可視化するための部品である。シミュレーション管理部は、シミュレータ部品の出力を他のミュレータ部品の入力に変換し、他のシミュレータ部品に当該変換データを渡し、また、シミュレータ部品の出力をそのまま、または変換し、データ出力部品に渡す。
【0010】
つまり、シミュレータ部品は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素ごとの挙動であるミクロレベルの挙動をシミュレーションする。シミュレーション管理部は、生体構成要素間の相互作用であるマクロレベルの挙動をシミュレーション可能にする。データ出力部品は、各生体構成要素と外部環境との相互作用のシミュレーションを可能にする。
【0011】
以下、本発明の実施の形態の生体シミュレーション装置について、図面を用いて説明する。図1は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品102、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105を具備する。シミュレータ部品の符号は、総括して、101とする場合もある。
シミュレータ部品101は、入力データ受付手段1011、演算手段1012、出力データ出力手段1013を具備する。
データ出力部品102は、出力データ受付手段1021、出力手段1022を具備する。
【0012】
シミュレーション管理部103は、シミュレーションシナリオ情報格納手段1031、データ受付手段1032、入力データ受渡手段1033、出力データ受渡手段1034、入力受付手段1035、情報蓄積手段1036を具備する。
【0013】
入力データ受付手段1011は、ユーザまたは/およびシミュレーション管理部103からデータを受け付ける。ユーザからのデータの受け付けは、例えば、グラフィカルユーザインターフェイス(GUI)からの入力の受け付けである。かかる場合の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。シミュレーション管理部103からのデータの受け付けは、例えば、メッセージの受け取り(オブジェクト指向プログラミングによる実装の場合)や、関数の引数渡しや、データの受信などである。データの受信の場合は、シミュレーション管理部103とシミュレータ部品101は、異なる装置に実装されている。入力データ受付手段1011は、例えば、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0014】
演算手段1012は、入力データ受付手段1011が受け付けたデータに対して所定の演算を行い、出力データを構成する。つまり、演算手段1012は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出するコアの要素である。演算手段1012は、通常、MPUやメモリ等から実現され得る。演算手段1012の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0015】
出力データ出力手段1013は、演算手段1012が構成した出力データをシミュレーション管理部103に渡す。出力データをシミュレーション管理部103に渡す方法は、メッセージの送信(オブジェクト指向プログラミングによる実装の場合)や、関数の引数渡しや、データの送信などである。出力データ出力手段1013は、通常、MPUやメモリ等から実現され得る。出力データ出力手段1013の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、出力データをシミュレーション管理部103に渡す方法がデータの送信である場合、出力データ出力手段1013は、通常、無線または有線の通信手段、または放送手段で実現され得る。出力データをシミュレーション管理部103に渡す方法がデータの送信である場合、シミュレーション管理部103とシミュレータ部品101は、異なる装置に実装されている。
【0016】
出力データ受付手段1021は、シミュレーション管理部103から出力データを受け付ける。出力データを受け付ける手段は、イベントの発行によるもの、関数の引数渡し、データの受信などがある。出力データ受付手段1021は、通常、MPUやメモリ等から実現され得る。出力データ受付手段1021の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。出力データを受け付ける手段がデータの受信である場合、シミュレーション管理部103とデータ出力部品102は、異なる装置に実装されている。
【0017】
出力手段1022は、出力データ受付手段1021が受け付けた出力データを出力する。出力とは、ディスプレイへの表示、プリンタへの印字、音出力、記録媒体への蓄積、外部の装置への送信等を含む概念である。出力手段1022は、例えば、ディスプレイおよびそのドライバーソフト等から実現され得る。
【0018】
シミュレーションシナリオ情報格納手段1031は、2以上のシミュレータ部品101およびデータ出力部品102間のデータの流れ、および2以上のシミュレータ部品101およびデータ出力部品102の動作を制御する動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納している。シミュレーションシナリオ情報格納手段1031は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0019】
データ受付手段1032は、2以上のシミュレータ部品101からデータを受け付ける。また、データ受付手段1032は、情報蓄積手段1036が蓄積した情報(データ)も受け付ける。データ受付手段1032が受け付けるデータは、シミュレータ部品101のシミュレーションの結果のデータや入力されたデータである。データ受付手段1032がデータを受け付ける手段は、上述したように、メッセージやイベントの発行によるもの、関数の引数渡し、データの受信などがある。データ受付手段1032は、通常、MPUやメモリ等から実現され得る。データ受付手段1032の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0020】
入力データ受渡手段1033は、データ受付手段1032で受け付けたデータを、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいてシミュレータ部品101に渡す。入力データ受渡手段1033は、一のシミュレータ部品から受け付けたデータを、そのまま他のシミュレータ部品に渡しても良いし、何らかの加工をした後、当該加工したデータを他のシミュレータ部品に渡しても良い。入力データ受渡手段1033は、通常、MPUやメモリ等から実現され得る。入力データ受渡手段1033の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0021】
出力データ受渡手段1034は、2以上のシミュレータ部品101から受け付けたデータを、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいてデータ出力部品102に渡す。出力データ受渡手段1034のデータの受け渡し方法は、上述したように、メッセージやイベントの発行によるもの、関数の引数渡し、データの受信などがある。出力データ受渡手段1034は、通常、MPUやメモリ等から実現され得る。出力データ受渡手段1034の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0022】
入力受付手段1035は、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいて、ユーザに情報の入力を促し、情報の入力を受け付ける。かかる情報は、シミュレーションで利用される。入力受付手段1035は、入力を受け付けるGUI画面定義情報およびGUI画面定義情報から画面を出力し、入力を受け付けるソフトウェア等から実現され得る。
【0023】
情報蓄積手段1036は、入力受付手段1035が受け付けた情報を一時的に蓄積する。かかる情報は、所定の記録媒体(通常、揮発性の記録媒体)に蓄積される。情報蓄積手段1036は、通常、MPUやメモリ等から実現され得る。情報蓄積手段1036が情報を蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0024】
シミュレーションシナリオ情報入力受付部104は、シミュレーションシナリオ情報の入力を受け付ける。シミュレーションシナリオ情報入力受付部104は、シミュレーションシナリオ情報の新規な入力、またはシミュレーションシナリオ情報のカスタマイズのための修正の入力を受け付ける。シミュレーションシナリオ情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。シミュレーションシナリオ情報入力受付部104は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0025】
シミュレーションシナリオ情報蓄積部105は、シミュレーションシナリオ情報入力受付部104で受け付けたシミュレーションシナリオ情報をシミュレーションシナリオ情報格納手段1031に蓄積する。シミュレーションシナリオ情報蓄積部105は、通常、MPUやメモリ等から実現され得る。シミュレーションシナリオ情報蓄積部105が情報を蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0026】
以下、本生体シミュレーション装置の動作について図2のフローチャートを用いて説明する。なお、図2のフローチャートにおいて、シミュレーションシナリオ情報は、既にシミュレーションシナリオ情報格納手段1031に格納されているとする。つまり、シミュレーションシナリオ情報を入力したり、カスタマイズしたりするシミュレーションシナリオ情報入力受付部104とシミュレーションシナリオ情報蓄積部105の処理は、ここでは説明しない。また、各シミュレータ部品(101(1)、101(2)・・・101(n))への、ユーザからのデータ入力は完了しており、かかるデータは、予め各シミュレータ部品(101(1)、101(2)・・・101(n))が保持している、とする。ただし、ユーザからの、各シミュレータ部品(101(1)、101(2)・・・101(n))へのデータ入力は必須ではない。ユーザからのデータ入力が不要なシミュレータ部品も存在し得る。
(ステップS201)シミュレーション管理部103は、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報を読み込む。
(ステップS202)カウンタiに1を代入する。
【0027】
(ステップS203)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)がデータの入力を指示するデータ入力指示であるか否かを判断する。データ入力指示であればステップS204に行き、データ入力指示でなければステップS208に飛ぶ。
【0028】
(ステップS204)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報に基づいてユーザにデータ入力を促す入力画面を構成し、当該入力画面を表示する。なお、入力画面を構成する情報(例えば、HTMLやJAVA(登録商標)などのプログラム言語で記述されている)は、予め格納されている。また、入力画面を構成し、表示する技術は公知技術であるので、詳細な説明を省略する。
(ステップS205)入力受付手段1035は、ユーザからデータを受け付けたか否かを判断する。データを受け付ければステップS206に行き、データを受け付けなければステップS205に戻る。
(ステップS206)情報蓄積手段1036は、ステップS205で受け付けたデータを一時蓄積する。
(ステップS207)カウンタiをインクリメントする。ステップS203に戻る。
【0029】
(ステップS208)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)が、シミュレータ部品101にデータを渡す指示である入力データ受渡指示であるか否かを判断する。入力データ受渡指示であればステップS209に行き、入力データ受渡指示でなければステップS213に飛ぶ。
(ステップS209)入力データ受渡手段1033は、シミュレーションシナリオ情報のi行目の情報に基づいて、シミュレータ部品101に渡す入力データを構成する。
(ステップS210)入力データ受渡手段1033は、ステップS209で構成した入力データを、i行目の情報で特定されるシミュレータ部品101に渡す。
(ステップS211)シミュレータ部品101の入力データ受付手段1011は、データを受け付ける。
(ステップS212)シミュレータ部品101の入力データ受付手段1011は、ステップS211で受け付けたデータを一時蓄積する。ステップS207に行く。
【0030】
(ステップS213)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)が、シミュレータ部品101からデータを受け取る指示である出力データ受渡指示であるか否かを判断する。出力データ受渡指示であればステップS214に行き、出力データ受渡指示でなければステップS218に飛ぶ。
【0031】
(ステップS214)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報が示すシミュレータ部品101に対して、シミュレーションの結果であるデータ(シミュレータ部品101の出力データ)を要求する。
【0032】
(ステップS215)シミュレータ部品101の演算手段1012は、ステップS214の要求に基づいた演算を行う。かかる演算は、一時格納されているデータまたは/およびステップS214の要求に含まれるデータを利用して行われる。
(ステップS216)出力データ出力手段1013は、ステップS215における演算結果のデータをシミュレーション管理部103に出力する。
(ステップS217)シミュレーション管理部103のデータ受付手段1032は、ステップS216で出力されたデータを取得し、一時蓄積する。ステップS207に行く。
【0033】
(ステップS218)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)がデータをデータ出力部品102に渡し、出力するという指示である出力指示であるか否かを判断する。出力指示であればステップS219に行き、出力指示でなければステップS207に行く。
(ステップS219)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報に基づいて出力データを構成する。
(ステップS220)出力データ受渡手段1034は、ステップS219で構成した出力データをデータ出力部品102に送付する。
(ステップS221)出力データ受付手段1021は、出力データを受け付ける。そして、出力手段1022は、当該出力データを出力する。かかる出力が表示である場合、シミュレーションされる。
【0034】
なお、図2において、シミュレータ部品101、データ出力部品102、シミュレーション管理部103のすべての部品の実行を記載したが、通常、シミュレータ部品101、データ出力部品102、シミュレーション管理部103は、メッセージの送受信などにより、独立に実行されながら、統合して動作する。その場合、シミュレーション管理部103が、全体の動作を制御する機能を果たす。
【0035】
図3は、シミュレーション管理部103のみの動作を記載したフローチャートである。図2のフローチャートと比較して、ステップS211、ステップS212、ステップS215、ステップS216、ステップS217、ステップS221が存在しない。ステップS211、ステップS212、ステップS215、ステップS216はシミュレータ部品101の動作であり、ステップS221はデータ出力部品の動作である。また、ステップS301、ステップS302が加わっている。ステップS301、ステップS302は、ステップS217の動作を詳細にしたものである。以下、ステップS301、ステップS302の動作について説明する。
【0036】
(ステップS301)出力データ受渡手段1034は、シミュレータ部品101からデータを取得したか否かを判断する。データを取得すればステップS302に行き、データを取得しなければステップS301に戻る。
(ステップS302)出力データ受渡手段1034は、ステップS301で取得したデータを一時蓄積する。ステップS207に行く。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図4に示すシミュレーションシナリオ情報が格納されている。
【0037】
まず、図4のシミュレーションシナリオ情報について説明する。図4のシミュレーションシナリオ情報は、15行の情報からなる。8行目、14,15行目を除く各行の情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する。送受信先情報は、"["、"]"で囲まれている情報である。送受信先情報の"[GUI−>SimulationController]"は、ユーザが入力した情報がシミュレーション管理部103に渡されることを示す。つまり、図4において、"SimulationController"は、シミュレーション管理部103を示す。
また、"[SimulationController−>CellSimulator]"は、シミュレーション管理部103から細胞のシミュレーションを行う"CellSimulator"というシミュレータ部品101に、データや指示が送付されることを示す。
【0038】
以下、図4のシミュレーションシナリオ情報を用いた生体シミュレーション装置の具体的な動作について説明する。ここでは、シミュレータ部品101は2つであり、一のシミュレータ部品101は、単一心筋細胞のシミュレーションを行うシミュレータ部品(以下、「細胞シミュレータ」と適宜言う。)であり、他の一のシミュレータ部品101は、臓器の変形を算出するシミュレータ部品(以下、「有限要素モジュール」と適宜言う。)である、とする。そして、本例において、心筋細胞のシミュレーションを行う。臓器の変形を算出するシミュレータ部品は、有限要素法を用いたシミュレータである。
【0039】
まず、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の1行目の情報を読み込む。1行目の情報は、"[GUI−>SimulationController]setMeshData(3DMeshData)"である。"setMeshData(3DMeshData)"は、3Dメッシュデータを入力させるデータ入力指示である。かかる指示により、入力受付手段1035は、3Dメッシュデータを入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの3Dメッシュデータの選択入力を受け付け、設定する。通常、複数の3Dメッシュデータが格納されており、ユーザは複数の3Dメッシュデータの中から一の3Dメッシュデータを選択する。通常、一の3Dメッシュデータは、一のファイルであり、複数のファイルからユーザは選択する。設定とは、所定の記録領域に一時蓄積する処理である。なお、3Dメッシュデータそのものをユーザが入力し、入力受付手段1035が受け付けても良いことは言うまでもない。
【0040】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の2行目の情報を読み込む。2行目の情報は、"[GUI−>SimulationController]setMaterialProperty(youngRatio)"である。"setMaterialProperty(youngRatio)"は、材料定数(ヤング率)を入力させるデータ入力指示である。かかる材料定数(ヤング率)は、3Dメッシュデータに対して設定されるデータである。かかる指示により、入力受付手段1035は、材料定数(ヤング率)を入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの材料定数(ヤング率)の入力を受け付け、3Dメッシュデータに対して設定する。
【0041】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の3行目の情報を読み込む。3行目の情報は、"[GUI−>SimulationController]setBoundaryCondition(staticWaterPressure)"である。"setBoundaryCondition(staticWaterPressure)"は、静水圧を入力させるデータ入力指示である。かかる静水圧は、3Dメッシュデータに境界条件として内壁に設定されるデータである。かかる指示により、入力受付手段1035は、静水圧を入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの静水圧の入力を受け付け、3Dメッシュデータに境界条件として内壁に対して設定する。なお、心臓の場合、中に流れる血液などが細胞の挙動に影響を与る。血液の圧力データ(静水圧のデータ)はシステムの入力データの一種である。
【0042】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の4行目の情報を読み込む。4行目の情報は、"[GUI−>SimulationController]setCellDirection(surfaceElements)"である。"setCellDirection(surfaceElements)"は、細胞配列データの設定指示である。かかる指示をシミュレーション管理部103が受け付けることにより、シミュレーション管理部103は、3Dメッシュデータと内壁外壁要素データから細胞配列データを生成する。内壁外壁要素データとは、例えば、内壁および外壁を構成している要素の要素番号のリストである。細胞配列データとは、例えば、3Dメッシュデータの要素番号とxyz方向ベクトル(x1,Y1,z1)の情報を有する。3Dメッシュデータの要素番号とは、3Dメッシュデータを複数の要素に区切った際の要素を特定する情報である。なお、単細胞の空間的の配置方向によって、その収縮方向が異なる。よって、心臓全体の挙動も異なる。細胞の空間的な配置方向をあらわすのが細胞配列データである。
【0043】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の5行目の情報を読み込む。5行目の情報は、"[GUI−>SimulationController]setCellModels(cellModels)"である。"setCellModels(cellModels)"は、細胞モデルデータを入力させるデータ入力指示である。かかる細胞モデルデータは、3Dメッシュデータの各要素に対応するデータである。かかる指示により、入力受付手段1035は、細胞モデルデータを入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの細胞モデルデータの入力を受け付け、3Dメッシュデータの各要素に対応する細胞モデルデータとして設定する。細胞モデルデータとは、単細胞の生物的挙動を時間軸にあらわしたデータである。たとえば、細胞モデルデータには、細胞膜電位や各イオンチャネル濃度の変化データ、ADP・ATPなど代謝物質の変化データ、遺伝にかかわる蛋白質の変化データなどがある。細胞モデルデータは、例えば、XML形式で記述され得るが、そのデータ構造は問わない。
【0044】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の6行目の情報を読み込む。6行目の情報は、"[SimulationController−>CellSimulator]setCellModels(cellModels)"である。"setCellModels(cellModels)"は、細胞モデルデータを細胞シミュレータに設定する指示である入力データ受渡指示である。かかる入力データ受渡指示により、入力データ受渡手段1033は、細胞モデルデータを細胞シミュレータのシミュレータ部品101に渡す。そして、細胞シミュレータのシミュレータ部品101は、細胞モデルデータを受け取り、設定する。図4において、"CellSimulator"は、細胞シミュレータのシミュレータ部品101を示す。
【0045】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の7行目の情報を読み込む。7行目の情報は、"[SimulationController−CellSimulator]getCellReductionForce(dt,length)"である。"getCellReductionForce(dt,length)"は、細胞シミュレータで細胞ごとに筋節長に対するdt時間後の細胞収縮力を計算させ、その結果データを取得する指示である出力データ受渡指示である。かかる指示が、シミュレーション管理部103から細胞シミュレータに送付される。次に、細胞シミュレータは、細胞ごとに筋節長に対するdt時間後の細胞収縮力を計算し、その結果データをシミュレーション管理部103に送付する。その結果データは細胞収縮力データである。細胞収縮力データとは、細胞の収縮力の時系列データである。細胞収縮力データは、複数の力の値(単位:マイクロニュートン)を有するデータである。例えば、細胞収縮力データは、時刻と力の値の組を複数有するデータである。
【0046】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の8行目の情報を読み込む。そして、シミュレーション管理部103は、1周期分の計算が終了するまで7行目の情報が示す処理を繰り返す。そして、その結果を細胞収縮力データとして蓄積する。なお、細胞収縮力データは、例えば、要素番号と、時間を示す情報と、収縮力を示す情報を有する。細胞収縮力データは、細胞シミュレータから計算され、有限要素モジュールで解析され、心臓全体の拍動をおこす。なお、1周期分とは、1心拍に相当する区間をいう。細胞は心拍に応じて周期的に収縮力を発生する。
【0047】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の9行目の情報を読み込む。9行目の情報は、"[SimulationController−>FEMSimulator]setSimulationData(SimulationData)"である。"setSimulationData(SimulationData)"は、シミュレーションデータを送付し、設定を指示する入力データ受渡指示である。かかる指示は、シミュレーション管理部103から有限要素モジュールに対してなされる。かかる入力データ受渡指示により、シミュレーションデータが有限要素モジュールに送付され、当該有限要素モジュールはデータを受け付け、一時蓄積する。シミュレーションデータとは、ここでは、3Dメッシュデータと材料特性を示すデータと境界条件を示すデータを有する。単細胞の生物的挙動モデルから組織や器官のモデルを構築するために、細胞を空間的に配置し、その力学的な相互作用(有限要素解析法)によって、組織や器官の全体の挙動をシミュレートする。その際の細胞の空間配置情報が3Dメッシュデータである。また、心臓の場合、楕円に近いモデルなどが用いられる。材料特性データとは、細胞の力学的性質をあらわすデータである。さらに、組織や器官の壁にある細胞は組織の中にある細胞とよく違う挙動を示すため、有限要素解析では、それを指定する(組織の中にある細胞と壁の細胞を区別する)ためのデータが境界条件データである。なお、シミュレーションデータは、例えば、MFD形式であるが、その形式、構造は問わない。なお、MFD形式は、有限要素モジュールの入力ファイル形式として、頻繁に利用される。なお、図4において、"FEMSimulator"は、有限要素モジュール(シミュレーション部品の1つ)を示す。
【0048】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の10行目の情報を読み込む。10行目の情報は、"[SimulationController−>FEMSimulator]setCellDirection()"である。"setCellDirection()"は、細胞配列データを受け渡す指示である入力データ受渡指示である。かかる指示により、細胞配列データが有限要素モジュールに送付される。そして、当該シミュレータ部品101は、細胞配列データを受け付け、設定する。
【0049】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の11行目の情報を読み込む。11行目の情報は、"[SimulationController−>FEMSimulator]setCellReductionForce(CellReductionForce)"である。"setCellReductionForce(CellReductionForce)"は、有限要素モジュールに細胞収縮力データの設定を指示する入力データ受渡指示である。かかる指示により、細胞収縮力データがシミュレーション管理部103から有限要素モジュールに渡され、有限要素モジュールが当該細胞収縮力データを設定する。
【0050】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の12行目の情報を読み込む。12行目の情報は、"[SimulationController−>FEMSimulator]getOrganDeformation(dt)"である。"getOrganDeformation(dt)"は、有限要素モジュールにdt時間後の臓器変形を計算し、計算結果を送付することを指示する出力データ受渡指示である。かかる指示により、有限要素モジュールは、dt時間後の臓器変形を計算し、その計算結果をシミュレーション管理部103に送付する。
【0051】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の13行目の情報を読み込む。13行目の情報は、"[SimulationController−>Visualizer]setOrganDeformation(OrganDeformation)"である。なお、"Visualizer"は、データ出力部品102を示す。
そして、"setOrganDeformation(OrganDeformation)"は、臓器変形に関する有限要素モジュールの計算結果のデータをデータ出力部品102に渡し、当該データを可視化する出力指示である。かかる指示により、有限要素モジュールのシミュレーション結果データがデータ出力部品102に送付される。そして、データ出力部品102は、当該データを受け取り、視覚的に出力する。かかる出力により、臓器の変形は視覚的に図的に表示される。かかる表示の様子を示したのが、図5である。図5において、心臓の動きをシミュレーションしている様子を示している。なお、シミュレーション結果データは、例えば、t19/t16形式のデータである。また、シミュレーション結果データは、例えば、3D形状、変位、応力テンソル、歪みテンソル、速度、加速度の情報を含む。3D形状とは、心臓の3D形状、入力の3Dメッシュの形状情報である。形状情報は、例えば、心臓の形状を構成する点の情報(x,y,z)の集合である。また、変位とは、心臓3Dメッシュの各要素の空間変異データであり、かかる情報により、心臓拍動の動きがわかる。また、応力テンソルとは、有限要素モジュールから出力される各要素にかかった力データである。また、歪みテンソルとは、有限要素モジュールから出力される各要素の歪のデータである。また、速度とは、心臓3Dメッシュの各要素の空間動きの速度である。さらに、加速度とは、心臓3Dメッシュの各要素の空間動きの加速度である。
【0052】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の14行目の情報を読み込む。そして、シミュレーション管理部103は、1周期分の計算が終了するまで12,13行目の情報が示す処理を繰り返す。そして、臓器の変形のシミュレーションが実行される。
【0053】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の15行目の情報を読み込む。シミュレーションシナリオ情報の1行目の情報に戻る。そして、上述した処理が繰り返し実行される。なお、上記処理は、電源オフや処理終了の割り込みにより終了する。
【0054】
なお、上記の細胞シミュレータは、例えば、単一心筋細胞モデルを計算する細胞シミュレータで実現されている。また、有限要素モジュールは、構造力学的変形を計算する有限要素法ソルバ(たとえば、商用ソフト(Marc))で実現でき得る。また、データ出力部品102は、商用の可視化ツールキット(AVS)で実現でき得る。つまり、上述の生体シミュレーション装置は、シミュレーションシナリオ情報に基づいて、以下のように動作する。まず、選択した心筋細胞モデルを細胞シミュレータで実行する。次に、そのシミュレーション結果である収縮力の時系列データをシミュレーション管理部103が取得する。次に、収縮力の時系列データ、選択した細胞配列モデルと形状データを有限要素モジュールに渡し、有限要素モジュールが実行する。次に、有限要素モジュールは、形状変化の時系列データを出力する。次に、シミュレーション管理部103は形状変化の時系列データを取得し、データ出力部品102に渡す。データ出力部品102は、形状変化の時系列データに基づいて、心室拍動のシミュレーションを行う。かかるシミュレーションは、例えば、3次元のアニメーションで表示される。
【0055】
以上、本実施の形態によれば、個体、臓器・器官、細胞・組織、細胞内小器官、分子といった生体機能を構成する機能要素に対応するシミュレータ部品を組み合わせた、種々の生体の機能がシミュレーションできる。そして、医学分野において、種々の研究がなされ、解明されるのは、生体機能を構成する機能要素についてである場合が多い。それは研究の困難度から言えることである。また、例えば、種々の細胞等の部品の振る舞いが影響し合って、個体、臓器の振る舞いが決定される。本実施の形態における生体シミュレーション装置は、かかる医学分野の特質を考慮し、各生体の部品(心筋細胞など)をシミュレーションするシミュレータ部品と、生体の部品を制御する部位(シミュレーション管理部)を構造的に分離し、かつ、新しいシミュレータ部品の組み込みが、他の部品に影響を及ぼさず、かつ精度の高いシミュレーションを可能にする。つまり、本実施の形態によれば、解明されているシミュレータ部品を容易に組み合わせ、現在の医学の実情に合った精度の高い生体シミュレーションを可能にし、それによって将来の医学の研究と進歩が助長される。かつ、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる。ここで機能要素とは、上述の心筋細胞の電気生理学的な振る舞いや、細胞の代謝的な側面の振る舞いや、臓器の形状の変化などを言う。つまり、シミュレータ部品は、心筋細胞の電気生理学的な振る舞いをシミュレーションするソフトウェアや、臓器の形状をシミュレーションするソフトウェアや、細胞の代謝的な振る舞いをシミュレーションするソフトウェアなどにより実現され得る。かかることは、他の実施の形態においても同様である。
例えば、心臓全体で見ると、洞房結節で発生した興奮は刺激伝導系によって心臓全体に伝播される。この過程は、電気現象の一種であり、電場解析などによりシミュレートすることができる。そして、各細胞が発生した収縮力によって心臓全体が収縮するが、これは構造力学的現象であり有限要素法などを用いて計算可能である。さらに、心臓の収縮によって心臓内の圧力が高まり血液が拍出される。これは流体力学的現象として捉えることができる。それ以外にも、冠動脈などによる心筋の酸素濃度勾配など、多くの現象が心拍動に関与している。さらに、細胞と臓器との間の相互作用も存在する。例えば、心臓の構造力学的変形によって生じる心筋細胞への加重は、興奮収縮連関を通じて細胞の電気生理学的現象に影響を与える。このように、心拍動一つみても、いくつもの現象とその相互作用を考慮する必要がある。さらに、小腸における薬物吸収など、異なる生体機能にはそれぞれに異なった多くの現象とその相互作用が関与する。これらの現象は、複数の生体機能で共通なもの、同じ手法で計算可能なもの、ある生体機能に特有のものなど、様々である。本実施の形態によれば、生体機能を対象とした汎用的なシミュレーションプラットフォームを提供できる。かかることは、他の実施の形態においても同様である。
【0056】
また、生体機能や生体機能の機能要素は、上述したように、まだ十分に解明されていない。今後、医学の研究により、順次、解明されると考えられる。本実施の形態における生体シミュレーション装置の構造は、順次解明されるであろう生体機能や機能要素に対応して構築されたシミュレータ部品を組み込み、さらに詳細な、精度の高いシミュレーションを行う場合の好適な構造である。つまり、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる、という生体のシミュレーションに極めて適した構造を具備する。かかることは、他の実施の形態においても同様である。
【0057】
なお、本実施の形態によれば、シミュレーションシナリオ情報をカスタマイズする構成について、十分に説明しなかったが、シミュレーションシナリオ情報はカスタマイズ可能であっても良いことは言うまでもない。かかる場合、生体シミュレーション装置は、上記の生体シミュレーション装置の構成に加えて、シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付部と、シミュレーションシナリオ情報入力受付部で受け付けたシミュレーションシナリオ情報をシミュレーションシナリオ情報格納手段に蓄積するシミュレーションシナリオ情報蓄積部をさらに具備する。かかることは他の実施の形態においても同様である。
【0058】
また、本実施の形態によれば、シミュレータ部品は、上記例示したシミュレータ部品に限られないことは言うまでもない。つまり例示した2以上の異なるシミュレータ部品の一のシミュレータ部品は、単一心筋細胞のシミュレーションを行うシミュレータ部品であり、他の一のシミュレータ部品は、臓器の変形を算出するシミュレータ部品(有限要素モジュール)であったが、他のシミュレータ部品でも良い。かかることも他の実施の形態においても同様である。
また、本実施の形態における、各データ、情報の形式や構造は問わない。かかることも他の実施の形態においても同様である。
【0059】
また、本実施の形態によれば、データ出力部品の出力手段は、出力データ受付手段が受け付けた出力データを表示したが、出力データを蓄積したり、送信したりしても良い。かかることも他の実施の形態においても同様である。
【0060】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における生体シミュレーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、前記2以上のシミュレータプログラムは、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付ステップと、前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、前記出力データを前記シミュレーション管理部に渡す出力データ出力ステップを具備し、前記データ出力プログラムは、前記シミュレーション管理部から出力データを受け付ける出力データ受付ステップと、前記出力データ受付手段が受け付けた出力データを出力する出力ステップを具備し、前記シミュレーション管理プログラムは、前記2以上のシミュレータプログラムからデータを受け付けるデータ受付ステップと、格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備する生体シミュレーションプログラム、である。
また、上記のデータ出力プログラムの出力ステップは、前記出力データ受付ステップで受け付けた出力データを表示しても良い。
(実施の形態2)
【0061】
本実施の形態において、2以上の生体要素のシミュレータ部品を利用して、複雑な生体シミュレーションを行える生体シミュレーション装置等について説明する。本実施の形態において、生体シミュレーション装置は、シミュレーションの結果のデータを蓄積し、後に利用する形態である。
【0062】
生体シミュレーション装置は、2以上の異なる生体要素のシミュレータ部品とデータ出力部品とシミュレーション管理部を具備する。2以上の生体要素のシミュレータ部品は、入力を受け付け、シミュレーション結果を出力するシミュレータの部品である。データ出力部品は、シミュレーションの結果を蓄積するための部品である。シミュレーション管理部は、シミュレータ部品の出力を他のミュレータ部品の入力に変換し、他のシミュレータ部品に当該変換データを渡し、また、シミュレータ部品の出力をそのまま、または変換し、データ出力部品に渡す。シミュレータ部品は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素ごとの挙動であるミクロレベルの挙動をシミュレーションする。シミュレーション管理部は、生体構成要素間の相互作用であるマクロレベルの挙動をシミュレーション可能にする。データ出力部品は、各生体構成要素と外部環境との相互作用のシミュレーションを可能にする。
【0063】
以下、本発明の実施の形態の生体シミュレーション装置について、図面を用いて説明する。図6は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品802、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105、出力データ受付部106、入力データ検索部107、入力データ出力部108を具備する。シミュレータ部品の符号は、総括して、101とする場合もある。
データ出力部品802は、出力データ受付手段1021、入力データ取得手段8021、出力手段8022を具備する。
【0064】
入力データ取得手段8021は、1以上のシミュレータ部品101への入力データを取得する。入力データ取得手段8021は、シミュレータ部品101から直接に入力データを取得しても良いし、シミュレーション管理部103を経由して入力データを取得しても良い。なお、図8のブロック図において、入力データ取得手段8021は、シミュレーション管理部103を経由して入力データを取得する構成である。入力データ取得手段8021は、通常、MPUやメモリ等から実現され得る。入力データ取得手段8021の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0065】
出力手段8022は、出力データ受付手段1021が受け付けた出力データと入力データ取得手段8021が取得した入力データを対にして蓄積する。出力手段8022が情報を蓄積する記録媒体は、不揮発性の記録媒体が好適である。なお、かかる記録媒体は、生体シミュレーション装置に内蔵のものでも外付けのものでも良い。出力手段8022は、通常、MPUやメモリ等から実現され得る。出力手段8022の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0066】
出力データ受付部106は、出力データの入力を受け付ける。出力データとは、シミュレーションの結果を示すシミュレーションデータである。出力データの入力を行う入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。出力データ受付部106は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0067】
入力データ検索部107は、出力データ受付部106が受け付けた出力データと対になる、または出力データ受付部106が受け付けた出力データに近似した出力データと対になる入力データを検索する。2つの出力データを比較して近似しているか否かを判断する技術は公知技術であるので、ここでの詳細な説明は省略する。入力データ検索部107は、通常、MPUやメモリ等から実現され得る。入力データ検索部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0068】
入力データ出力部108は、入力データ検索部107が検索した入力データを出力する。出力とは、通常、ディスプレイへの表示を言うが、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。入力データ出力部108は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。入力データ出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0069】
以下、本生体シミュレーション装置の動作について説明する。本生体シミュレーション装置は、実施の形態1で説明したシミュレーション装置と比較して、シミュレーション結果の表示が、出力データ受付手段1021が受け付けた出力データと入力データ取得手段8021が取得した入力データを対にして蓄積する動作に変わっている。また、出力データ受付部106が出力データの入力を受け付けると、入力データ検索部107は、出力データ受付部106が受け付けた出力データと対になる、または出力データ受付部106が受け付けた出力データに近似した出力データと対になる入力データを検索する。次に、入力データ出力部108は、入力データ検索部107が検索した入力データを出力する。かかる処理により、実際の患者のデータ(出力データ)に基づいて、入力データが検索でき、患者の身体の内部の状態が把握できる。
【0070】
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図4に示すシミュレーションシナリオ情報が格納されている。かかる状況において、単一心筋細胞のシミュレーションを行うシミュレータ部品と、臓器の変形を算出するシミュレータ部品に対して入力データが入力される。そして、実施の形態1で述べたシミュレーションデータが、上記の入力されたデータと対に蓄積される。そして、シミュレータ部品への入力データと、シミュレーション結果である出力データ(シミュレーションデータ)を対で有する複数のレコードを有するデータベースが構築される。
【0071】
次に、出力データ受付部106は、実際の患者のデータ(出力データ)の入力を受け付ける、とする。そして、入力データ検索部107は、受け付けた出力データと一致するまたは近似する出力データと対になる入力データを上記の処理で構築したデータベースから取得する。次に、入力データ出力部108は、取得した入力データを出力する。
【0072】
以上、本実施の形態によれば、シミュレーション結果を蓄積でき、利用できる。シミュレーション結果の利用方法としては、外部から観測できる患者のデータ(出力データ)を入力し、シミュレータ部品に与える入力データを取得することにより、患者の身体の内部状態を取得できる。かかることにより、生体シミュレーション装置を用いて、身体を手術したり、患者にとって負荷の高い検査をしたりすることを回避でき、患者の状態を知ることができる。
【0073】
なお、本実施の形態における生体シミュレーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、前記2以上のシミュレータプログラムは、ユーザまたは/および前記シミュレーション管理プログラムからデータを受け付ける入力データ受付ステップと、前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、前記出力データを前記シミュレーション管理プログラムに渡す出力データ出力ステップを具備し、前記データ出力プログラムは、前記シミュレーション管理プログラムから出力データを受け付ける出力データ受付ステップと、前記シミュレータ部品への入力データを取得する入力データ取得ステップと、前記出力データ受付ステップで受け付けた出力データと前記入力データ取得ステップで取得した入力データを対にして蓄積する出力ステップを具備し、前記シミュレーション管理プログラムは、前記2以上のシミュレータ部品からデータを受け付けるデータ受付ステップと、格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備し、さらに、コンピュータに、出力データの入力を受け付ける出力データ受付ステップと、前記出力データ受付ステップが受け付けた出力データと対になる、または出力データ受付部ステップで受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索ステップと、前記入力データ検索ステップで検索した入力データを出力する入力データ出力ステップを実行させるための生体シミュレーションプログラム、である。
(実施の形態3)
上述した実施の形態の具体例等において、有限要素モジュールというシミュレータ部品101("FEMSimulator")と、細胞のシミュレーションを行うシミュレータ部品101("CellSimulator")は、片方向のデータ(メッセージと言っても良い)のやりとりであった(図4参照)。つまり、シミュレータ部品101("CellSimulator")で計算した細胞収縮力変化を一旦蓄積し、当該蓄積した細胞収縮力を要素収縮力に変換して、シミュレータ部品101("FEMSimulator")に入力するという構成であった。つまり、シミュレータ部品101("FEMSimulator")による筋長変化がシミュレータ部品101("CellSimulator")に反映されない、というシミュレーションシナリオ情報であった。つまり、張力と筋長は独立に計算されており、片方向連成シミュレーションであった(図7参照)。したがって、シミュレーションの精度が十分ではなかった(後述の図11参照)。
本実施の形態において、以下の具体例について述べる。つまり、まず、シミュレータ部品101("CellSimulator")で計算した収縮力を要素収縮力に変換し、シミュレータ部品101("FEMSimulator")に入力する。次に、形状変化を半筋節長変化に変換して、シミュレータ部品101("CellSimulator")に入力する。つまり、本実施の形態において述べる具体例では、張力と筋長間の相互作用をシミュレートできる。つまり、双方向連成シミュレーションである(図8参照)。その結果、非常に精度の高い生体シミュレーションが可能となる(後述の図11参照)。
以下、本実施の形態の生体シミュレーション装置について説明する。図1は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品102、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105を具備する。また、本実施の形態の生体シミュレーション装置の動作は、図2、図3のフローチャートを用いて説明した。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図9に示すシミュレーションシナリオ情報が格納されている。
まず、図9のシミュレーションシナリオ情報について説明する。図9のシミュレーションシナリオ情報は、18行の情報からなる。1行目から6行目は、図4のシミュレーションシナリオ情報と同様であり、説明済みである。図9の7行目は図4の9行目と同様であり、説明済みである。図9の8行目は図4の10行目と、引数を除いて同じである。
そして、まず、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の1行目から順次、8行目までの情報を読み込み、それぞれの情報に基づいて、実施の形態1で述べた動作を行う。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の9行目の情報を読み込み、実行する。図9の9行目"[SimulationController−>FEMSimulator]getCellLength(length)"は、シミュレーション管理部103から有限要素モジュールに細胞の長さを取得する指示が送付されることを示す。そして、シミュレーション管理部103は、細胞の長さを取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の10行目の情報を読み込み、実行する。図9の10行目"[[SimulationController−>CellSimulator]setCellLength(length)"は、シミュレーション管理部103が有限要素モジュールから取得した細胞の長さを細胞シミュレータに送付することを示す。そして、シミュレーション管理部103は、細胞シミュレータに細胞の長さを送付する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の11行目の情報を読み込み、実行する。図9の11行目"[SimulationController−>CellSimulator]stepGo(dt)"は、シミュレーション管理部103が、細胞シミュレータにdt時間分、細胞収縮力を計算することを指示することを示す。そして、シミュレーション管理部103は、細胞シミュレータにdt時間分計算することを指示し、細胞シミュレータはdt時間分、細胞収縮力を計算する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の12行目の情報を読み込み、実行する。図9の12行目"[SimulationController−>CellSimulator]getCellForce(CellForce)"は、シミュレーション管理部103は、細胞シミュレータが計算した細胞収縮力を取得することを示す。そして、シミュレーション管理部103は、細胞シミュレータから細胞収縮力を取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の13行目の情報を読み込み、実行する。図9の13行目"[SimulationController−>FEMSimulator]setCellForce(CellForce)"は、シミュレーション管理部103は、有限要素モジュールに、取得した細胞収縮力を送ることを示す。そして、細胞収縮力は、有限要素モジュールに送付される。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の14行目の情報を読み込み、実行する。図9の14行目"[SimulationController−>FEMSimulator]stepGo(dt)"は、シミュレーション管理部103は、有限要素モジュールに、dt時間分、臓器形状(3D形状)を計算することを指示することを示す。そして、有限要素モジュールは、dt時間分、臓器形状を計算する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の15行目の情報を読み込み、実行する。図9の15行目"[SimulationController−>FEMSimulator]getOrganDeformation(Organ)"は、シミュレーション管理部103は、有限要素モジュールが計算した臓器形状を、有限要素モジュールから取得することを示す。そして、シミュレーション管理部103は、有限要素モジュールから臓器形状を取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の16行目の情報を読み込み、実行する。図9の16行目"[SimulationController−>Visualizer]setOrganDeformation(Organ)"は、シミュレーション管理部103は、データ出力部品102に、臓器形状を送ることを示す。そして、シミュレーション管理部103は、データ出力部品102に、臓器形状を送る。次に、データ出力部品102は、臓器形状を受け付け、出力する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の17行目の情報を読み込み、実行する。図9の17行目"loop(9,16)"は、9行目から16行目までの処理を繰り返すことを示す。そして、シミュレーション管理部103は、9行目から16行目までの処理を、1周期分の計算が終了するまで繰り返す。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の18行目の情報を読み込み、実行する。図9の18行目"goto(1)"は、1行目に戻ることを示す。そして、シミュレーション管理部103は、シミュレーションシナリオ情報の1行目の情報に戻る。そして、上述した処理が繰り返し実行される。なお、上記処理は、電源オフや処理終了の割り込みにより終了する。
本具体例における処理は、上述したように、張力と筋長間の相互作用をシミュレートする双方向連成シミュレーションである。
また、図10に示す実験を行った。実験において、細胞の両端に収縮力測定装置を設置し、長さが変化しない状態にした。そして、細胞の長さ(半筋節長)を変化させて発生する収縮力を測定する実験を行った。かかる実細胞を使った実測値を、図11のグラフに示す。図11のグラフにおいて、横軸が半筋節長(単位:μm)、縦軸が正規化した細胞収縮力である。また、実施の形態1の片方向連成シミュレーションにおけるグラフと、本実施の形態の双方向連成シミュレーションにおけるグラフも、図11に示す。
図11のグラフにより、片方向連成シミュレーションでは、実細胞と異なる結果となるが、双方向連成シミュレーションでは実細胞とほぼ同じ結果が得られたことが分かる。
以上、本実施の形態によれば、精度の高いシミュレーションが、シミュレーションシナリオ情報等を変更するだけで簡単に実現できる。つまり、医学分野において、種々の研究がなされ、解明されるのは、生体機能を構成する機能要素についてである場合が多い。それは研究の困難度から言えることである。また、例えば、種々の細胞等の部品の振る舞いが影響し合って、個体、臓器の振る舞いが決定される。本実施の形態における生体シミュレーション装置は、かかる医学分野の特質を考慮し、各生体の部品(心筋細胞など)をシミュレーションするシミュレータ部品と、生体の部品を制御する部位(シミュレーション管理部)を構造的に分離し、かつ、新しいシミュレータ部品の組み込みが、他の部品に影響を及ぼさず、かつ精度の高いシミュレーションを可能にする。つまり、本実施の形態によれば、解明されているシミュレータ部品を容易に組み合わせ、現在の医学の実情に合った精度の高い生体シミュレーションを可能にし、それによって将来の医学の研究と進歩が助長される。かつ、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる。
なお、本実施の形態において述べた双方向連成シミュレーションは、実施の形態2における生体シミュレーション装置においても適用可能であることはいうまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
つまり、例えば、上記各実施の形態において、シミュレータ部品、シミュレータ管理部、データ出力部品等は、それぞれ個別の装置により実現されており、メッセージやデータの送受信(通信機能、放送機能等を利用)により、生体シミュレーションが実現されても良い。かかる生体シミュレーションシステムは、以下のようなシステムである。つまり、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品装置と、シミュレーション結果を出力するデータ出力部品装置と、前記2以上の異なるシミュレータ部品装置および前記データ出力部品装置の間のデータの送受信の制御を行うシミュレーション管理装置を具備する生体シミュレーションシステムであって、前記2以上のシミュレータ部品装置は、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、前記出力データを前記シミュレーション管理装置に送信する出力データ出力手段を具備し、前記データ出力部品装置は、前記シミュレーション管理装置から出力データを受信する出力データ受付手段と、前記出力データ受付手段が受信した出力データを出力する出力手段を具備し、前記シミュレーション管理装置は、前記2以上のシミュレータ部品装置およびデータ出力部品装置間の、データの送受信および動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、前記2以上のシミュレータ部品からデータを受信するデータ受付手段と、前記データ受付手段が受信したデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品装置に送信する入力データ受渡手段と、前記2以上のシミュレータ部品から受信したデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品装置に送信する出力データ受渡手段を具備する生体シミュレーションシステム、である。
なお、上述したプログラムにおいて、情報を出力する出力ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上述したプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0074】
以上のように、本発明にかかる生体シミュレーション装置は、種々の生体の機能がシミュレーションできるという効果を有し、生体をシミュレーションする生体シミュレーション装置として有用である。
【図面の簡単な説明】
【0075】
【図1】実施の形態1における生体シミュレーション装置のブロック図
【図2】同生体シミュレーション装置の動作について説明するフローチャート
【図3】同シミュレーション管理部の動作について説明するフローチャート
【図4】同シミュレーションシナリオ情報の例を示す図
【図5】同シミュレーションの表示例を示す図
【図6】実施の形態2における生体シミュレーション装置のブロック図
【図7】実施の形態3における片方向連成シミュレーションの概念図
【図8】同双方向連成シミュレーションの概念図
【図9】同シミュレーションシナリオ情報の例を示す図
【図10】同実験の概要を示す図
【図11】同実験結果グラフを示す図
【技術分野】
【0001】
本発明は、生物の臓器や器官等をシミュレーションするシミュレーション装置およびそのプログラム等に関するものである。
【背景技術】
【0002】
従来の生体機能のシミュレーションを行うことができるシミュレーション装置としてE−Cellというシミュレーション装置がある(非特許文献1参照)。E−Cellは、いわゆる細胞モデル構築基盤と言えるものである。
【非特許文献1】M.Tomita, K.Hashimoto, K.Takahashi, T.Shimizu, Y.Matsuzaki, F.Miyoshi, K.Saito, S.Tanida, K.Yugi, J.C.Venter, and C.A.Hutchison III, 「E−CELL:software environment for whole−cell simulation」 in Bioinformatics, vol.15, no.1, pp.72−84, 1999
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、非特許文献1におけるシミュレーション装置は、細胞のシミュレーションしか想定していないため、細胞の集合である組織や臓器、個体レベルでのシミュレーションができない、という課題があった。また、医学の進歩により、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いが検証され、各振る舞いごとのシミュレーションを行うシミュレータ部品が構築された場合、より総合的で、精度の高い生体のシミュレーションを行える環境を提供できていない、という課題があった。
【0004】
本発明は、従来の課題を解決するためになされたもので、細胞の集合である組織や臓器、個体レベルでのシミュレーションを容易に行える生体シミュレーション装置を提供することを目的とする。また、簡単なデータの追加定義(オーサリング)により、新しい組織や臓器、個体等もシミュレーションできる環境を提供することを目的とする。さらに、医学の進歩により、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いが検証され、各振る舞いごとのシミュレーションを行うシミュレータ部品が構築された場合、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することを目的とする。その結果、実情に合った精度の高いシミュレーションを可能にするとともに、それによって将来の医学の研究と進歩が助長されることを目的とする。
【課題を解決するための手段】
【0005】
本第一の発明の生体シミュレーション装置は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、シミュレーション結果を出力するデータ出力部品と、前記2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、前記2以上のシミュレータ部品は、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、前記出力データを前記シミュレーション管理部に渡す出力データ出力手段を具備し、前記データ出力部品は、前記シミュレーション管理部から出力データを受け付ける出力データ受付手段と、前記出力データ受付手段が受け付けた出力データを出力する出力手段を具備し、前記シミュレーション管理部は、前記2以上のシミュレータ部品およびデータ出力部品間の、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、前記2以上のシミュレータ部品からデータを受け付けるデータ受付手段と、前記データ受付手段で受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品に渡す入力データ受渡手段と、前記2以上のシミュレータ部品から受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品に渡す出力データ受渡手段を具備する生体シミュレーション装置である。
かかる構成により、細胞の集合である組織や臓器、個体レベルでのシミュレーションを容易に行える。また、より総合的で、精度の高い生体のシミュレーションを行える環境を容易に提供することができる。例えば、心臓全体で見ると、洞房結節で発生した興奮は刺激伝導系によって心臓全体に伝播される。この過程は、電気現象の一種であり、電場解析などによりシミュレートすることができる。そして、各細胞が発生した収縮力によって心臓全体が収縮するが、これは構造力学的現象であり有限要素法などを用いて計算可能である。さらに、心臓の収縮によって心臓内の圧力が高まり血液が拍出される。これは流体力学的現象として捉えることができる。それ以外にも、冠動脈などによる心筋の酸素濃度勾配など、多くの現象が心拍動に関与している。さらに、細胞と臓器との間の相互作用も存在する。例えば、心臓の構造力学的変形によって生じる心筋細胞への加重は、興奮収縮連関を通じて細胞の電気生理学的現象に影響を与える。このように、心拍動一つみても、いくつもの現象とその相互作用を考慮する必要がある。さらに、小腸における薬物吸収など、異なる生体機能にはそれぞれに異なった多くの現象とその相互作用が関与する。これらの現象は、複数の生体機能で共通なもの、同じ手法で計算可能なもの、ある生体機能に特有のものなど、様々である。本実施の形態によれば、上記のような個々のシミュレーションを行えるシミュレーション部品を組み合わせた、生体機能を対象とした汎用的なシミュレーションプラットフォームを提供できる。
【0006】
本第二の発明の生体シミュレーション装置は、第一の発明の生体シミュレーション装置に対して、前記データ出力部品は、前記シミュレータ部品への入力データを取得する入力データ取得手段をさらに具備し、前記出力手段は、前記出力データ受付手段が受け付けた出力データと前記入力データ取得手段が取得した入力データを対にして蓄積し、出力データの入力を受け付ける出力データ受付部と、前記出力データ受付部が受け付けた出力データと対になる、または前記出力データ受付部が受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索部と、前記入力データ検索部が検索した入力データを出力する入力データ出力部をさらに具備する生体シミュレーション装置である。
かかる構成により、結果から条件を類推できることにより、病態の原因解析や創薬ターゲット検索などに適用し、例えば、身体を手術したり、患者にとって負荷の高い検査をしたりすることを回避でき、患者の状態を知ることができる。
【発明の効果】
【0007】
本発明は、個体、臓器・器官、細胞・組織、細胞内小器官、分子といったの生体機能を構成する機能要素に対応するシミュレータ部品を組み合わせた、種々の生体の機能がシミュレーションできる。
【発明を実施するための最良の形態】
【0008】
以下、生体シミュレーション装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
【0009】
本実施の形態において、2以上の生体要素のシミュレータ部品を利用して、複雑な生体シミュレーションを行える生体シミュレーション装置等について説明する。生体シミュレーション装置は、2以上の異なる生体要素のシミュレータ部品とデータ出力部品とシミュレーション管理部を具備する。2以上の生体要素のシミュレータ部品は、入力を受け付け、シミュレーション結果を出力するシミュレータの部品である。データ出力部品は、シミュレーションの結果を可視化するための部品である。シミュレーション管理部は、シミュレータ部品の出力を他のミュレータ部品の入力に変換し、他のシミュレータ部品に当該変換データを渡し、また、シミュレータ部品の出力をそのまま、または変換し、データ出力部品に渡す。
【0010】
つまり、シミュレータ部品は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素ごとの挙動であるミクロレベルの挙動をシミュレーションする。シミュレーション管理部は、生体構成要素間の相互作用であるマクロレベルの挙動をシミュレーション可能にする。データ出力部品は、各生体構成要素と外部環境との相互作用のシミュレーションを可能にする。
【0011】
以下、本発明の実施の形態の生体シミュレーション装置について、図面を用いて説明する。図1は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品102、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105を具備する。シミュレータ部品の符号は、総括して、101とする場合もある。
シミュレータ部品101は、入力データ受付手段1011、演算手段1012、出力データ出力手段1013を具備する。
データ出力部品102は、出力データ受付手段1021、出力手段1022を具備する。
【0012】
シミュレーション管理部103は、シミュレーションシナリオ情報格納手段1031、データ受付手段1032、入力データ受渡手段1033、出力データ受渡手段1034、入力受付手段1035、情報蓄積手段1036を具備する。
【0013】
入力データ受付手段1011は、ユーザまたは/およびシミュレーション管理部103からデータを受け付ける。ユーザからのデータの受け付けは、例えば、グラフィカルユーザインターフェイス(GUI)からの入力の受け付けである。かかる場合の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。シミュレーション管理部103からのデータの受け付けは、例えば、メッセージの受け取り(オブジェクト指向プログラミングによる実装の場合)や、関数の引数渡しや、データの受信などである。データの受信の場合は、シミュレーション管理部103とシミュレータ部品101は、異なる装置に実装されている。入力データ受付手段1011は、例えば、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0014】
演算手段1012は、入力データ受付手段1011が受け付けたデータに対して所定の演算を行い、出力データを構成する。つまり、演算手段1012は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出するコアの要素である。演算手段1012は、通常、MPUやメモリ等から実現され得る。演算手段1012の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0015】
出力データ出力手段1013は、演算手段1012が構成した出力データをシミュレーション管理部103に渡す。出力データをシミュレーション管理部103に渡す方法は、メッセージの送信(オブジェクト指向プログラミングによる実装の場合)や、関数の引数渡しや、データの送信などである。出力データ出力手段1013は、通常、MPUやメモリ等から実現され得る。出力データ出力手段1013の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、出力データをシミュレーション管理部103に渡す方法がデータの送信である場合、出力データ出力手段1013は、通常、無線または有線の通信手段、または放送手段で実現され得る。出力データをシミュレーション管理部103に渡す方法がデータの送信である場合、シミュレーション管理部103とシミュレータ部品101は、異なる装置に実装されている。
【0016】
出力データ受付手段1021は、シミュレーション管理部103から出力データを受け付ける。出力データを受け付ける手段は、イベントの発行によるもの、関数の引数渡し、データの受信などがある。出力データ受付手段1021は、通常、MPUやメモリ等から実現され得る。出力データ受付手段1021の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。出力データを受け付ける手段がデータの受信である場合、シミュレーション管理部103とデータ出力部品102は、異なる装置に実装されている。
【0017】
出力手段1022は、出力データ受付手段1021が受け付けた出力データを出力する。出力とは、ディスプレイへの表示、プリンタへの印字、音出力、記録媒体への蓄積、外部の装置への送信等を含む概念である。出力手段1022は、例えば、ディスプレイおよびそのドライバーソフト等から実現され得る。
【0018】
シミュレーションシナリオ情報格納手段1031は、2以上のシミュレータ部品101およびデータ出力部品102間のデータの流れ、および2以上のシミュレータ部品101およびデータ出力部品102の動作を制御する動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納している。シミュレーションシナリオ情報格納手段1031は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0019】
データ受付手段1032は、2以上のシミュレータ部品101からデータを受け付ける。また、データ受付手段1032は、情報蓄積手段1036が蓄積した情報(データ)も受け付ける。データ受付手段1032が受け付けるデータは、シミュレータ部品101のシミュレーションの結果のデータや入力されたデータである。データ受付手段1032がデータを受け付ける手段は、上述したように、メッセージやイベントの発行によるもの、関数の引数渡し、データの受信などがある。データ受付手段1032は、通常、MPUやメモリ等から実現され得る。データ受付手段1032の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0020】
入力データ受渡手段1033は、データ受付手段1032で受け付けたデータを、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいてシミュレータ部品101に渡す。入力データ受渡手段1033は、一のシミュレータ部品から受け付けたデータを、そのまま他のシミュレータ部品に渡しても良いし、何らかの加工をした後、当該加工したデータを他のシミュレータ部品に渡しても良い。入力データ受渡手段1033は、通常、MPUやメモリ等から実現され得る。入力データ受渡手段1033の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0021】
出力データ受渡手段1034は、2以上のシミュレータ部品101から受け付けたデータを、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいてデータ出力部品102に渡す。出力データ受渡手段1034のデータの受け渡し方法は、上述したように、メッセージやイベントの発行によるもの、関数の引数渡し、データの受信などがある。出力データ受渡手段1034は、通常、MPUやメモリ等から実現され得る。出力データ受渡手段1034の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0022】
入力受付手段1035は、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報に基づいて、ユーザに情報の入力を促し、情報の入力を受け付ける。かかる情報は、シミュレーションで利用される。入力受付手段1035は、入力を受け付けるGUI画面定義情報およびGUI画面定義情報から画面を出力し、入力を受け付けるソフトウェア等から実現され得る。
【0023】
情報蓄積手段1036は、入力受付手段1035が受け付けた情報を一時的に蓄積する。かかる情報は、所定の記録媒体(通常、揮発性の記録媒体)に蓄積される。情報蓄積手段1036は、通常、MPUやメモリ等から実現され得る。情報蓄積手段1036が情報を蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0024】
シミュレーションシナリオ情報入力受付部104は、シミュレーションシナリオ情報の入力を受け付ける。シミュレーションシナリオ情報入力受付部104は、シミュレーションシナリオ情報の新規な入力、またはシミュレーションシナリオ情報のカスタマイズのための修正の入力を受け付ける。シミュレーションシナリオ情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。シミュレーションシナリオ情報入力受付部104は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0025】
シミュレーションシナリオ情報蓄積部105は、シミュレーションシナリオ情報入力受付部104で受け付けたシミュレーションシナリオ情報をシミュレーションシナリオ情報格納手段1031に蓄積する。シミュレーションシナリオ情報蓄積部105は、通常、MPUやメモリ等から実現され得る。シミュレーションシナリオ情報蓄積部105が情報を蓄積するための処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0026】
以下、本生体シミュレーション装置の動作について図2のフローチャートを用いて説明する。なお、図2のフローチャートにおいて、シミュレーションシナリオ情報は、既にシミュレーションシナリオ情報格納手段1031に格納されているとする。つまり、シミュレーションシナリオ情報を入力したり、カスタマイズしたりするシミュレーションシナリオ情報入力受付部104とシミュレーションシナリオ情報蓄積部105の処理は、ここでは説明しない。また、各シミュレータ部品(101(1)、101(2)・・・101(n))への、ユーザからのデータ入力は完了しており、かかるデータは、予め各シミュレータ部品(101(1)、101(2)・・・101(n))が保持している、とする。ただし、ユーザからの、各シミュレータ部品(101(1)、101(2)・・・101(n))へのデータ入力は必須ではない。ユーザからのデータ入力が不要なシミュレータ部品も存在し得る。
(ステップS201)シミュレーション管理部103は、シミュレーションシナリオ情報格納手段1031に格納されているシミュレーションシナリオ情報を読み込む。
(ステップS202)カウンタiに1を代入する。
【0027】
(ステップS203)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)がデータの入力を指示するデータ入力指示であるか否かを判断する。データ入力指示であればステップS204に行き、データ入力指示でなければステップS208に飛ぶ。
【0028】
(ステップS204)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報に基づいてユーザにデータ入力を促す入力画面を構成し、当該入力画面を表示する。なお、入力画面を構成する情報(例えば、HTMLやJAVA(登録商標)などのプログラム言語で記述されている)は、予め格納されている。また、入力画面を構成し、表示する技術は公知技術であるので、詳細な説明を省略する。
(ステップS205)入力受付手段1035は、ユーザからデータを受け付けたか否かを判断する。データを受け付ければステップS206に行き、データを受け付けなければステップS205に戻る。
(ステップS206)情報蓄積手段1036は、ステップS205で受け付けたデータを一時蓄積する。
(ステップS207)カウンタiをインクリメントする。ステップS203に戻る。
【0029】
(ステップS208)入力受付手段1035は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)が、シミュレータ部品101にデータを渡す指示である入力データ受渡指示であるか否かを判断する。入力データ受渡指示であればステップS209に行き、入力データ受渡指示でなければステップS213に飛ぶ。
(ステップS209)入力データ受渡手段1033は、シミュレーションシナリオ情報のi行目の情報に基づいて、シミュレータ部品101に渡す入力データを構成する。
(ステップS210)入力データ受渡手段1033は、ステップS209で構成した入力データを、i行目の情報で特定されるシミュレータ部品101に渡す。
(ステップS211)シミュレータ部品101の入力データ受付手段1011は、データを受け付ける。
(ステップS212)シミュレータ部品101の入力データ受付手段1011は、ステップS211で受け付けたデータを一時蓄積する。ステップS207に行く。
【0030】
(ステップS213)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)が、シミュレータ部品101からデータを受け取る指示である出力データ受渡指示であるか否かを判断する。出力データ受渡指示であればステップS214に行き、出力データ受渡指示でなければステップS218に飛ぶ。
【0031】
(ステップS214)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報が示すシミュレータ部品101に対して、シミュレーションの結果であるデータ(シミュレータ部品101の出力データ)を要求する。
【0032】
(ステップS215)シミュレータ部品101の演算手段1012は、ステップS214の要求に基づいた演算を行う。かかる演算は、一時格納されているデータまたは/およびステップS214の要求に含まれるデータを利用して行われる。
(ステップS216)出力データ出力手段1013は、ステップS215における演算結果のデータをシミュレーション管理部103に出力する。
(ステップS217)シミュレーション管理部103のデータ受付手段1032は、ステップS216で出力されたデータを取得し、一時蓄積する。ステップS207に行く。
【0033】
(ステップS218)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報(i番目の情報)がデータをデータ出力部品102に渡し、出力するという指示である出力指示であるか否かを判断する。出力指示であればステップS219に行き、出力指示でなければステップS207に行く。
(ステップS219)出力データ受渡手段1034は、シミュレーションシナリオ情報のi行目の情報に基づいて出力データを構成する。
(ステップS220)出力データ受渡手段1034は、ステップS219で構成した出力データをデータ出力部品102に送付する。
(ステップS221)出力データ受付手段1021は、出力データを受け付ける。そして、出力手段1022は、当該出力データを出力する。かかる出力が表示である場合、シミュレーションされる。
【0034】
なお、図2において、シミュレータ部品101、データ出力部品102、シミュレーション管理部103のすべての部品の実行を記載したが、通常、シミュレータ部品101、データ出力部品102、シミュレーション管理部103は、メッセージの送受信などにより、独立に実行されながら、統合して動作する。その場合、シミュレーション管理部103が、全体の動作を制御する機能を果たす。
【0035】
図3は、シミュレーション管理部103のみの動作を記載したフローチャートである。図2のフローチャートと比較して、ステップS211、ステップS212、ステップS215、ステップS216、ステップS217、ステップS221が存在しない。ステップS211、ステップS212、ステップS215、ステップS216はシミュレータ部品101の動作であり、ステップS221はデータ出力部品の動作である。また、ステップS301、ステップS302が加わっている。ステップS301、ステップS302は、ステップS217の動作を詳細にしたものである。以下、ステップS301、ステップS302の動作について説明する。
【0036】
(ステップS301)出力データ受渡手段1034は、シミュレータ部品101からデータを取得したか否かを判断する。データを取得すればステップS302に行き、データを取得しなければステップS301に戻る。
(ステップS302)出力データ受渡手段1034は、ステップS301で取得したデータを一時蓄積する。ステップS207に行く。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図4に示すシミュレーションシナリオ情報が格納されている。
【0037】
まず、図4のシミュレーションシナリオ情報について説明する。図4のシミュレーションシナリオ情報は、15行の情報からなる。8行目、14,15行目を除く各行の情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する。送受信先情報は、"["、"]"で囲まれている情報である。送受信先情報の"[GUI−>SimulationController]"は、ユーザが入力した情報がシミュレーション管理部103に渡されることを示す。つまり、図4において、"SimulationController"は、シミュレーション管理部103を示す。
また、"[SimulationController−>CellSimulator]"は、シミュレーション管理部103から細胞のシミュレーションを行う"CellSimulator"というシミュレータ部品101に、データや指示が送付されることを示す。
【0038】
以下、図4のシミュレーションシナリオ情報を用いた生体シミュレーション装置の具体的な動作について説明する。ここでは、シミュレータ部品101は2つであり、一のシミュレータ部品101は、単一心筋細胞のシミュレーションを行うシミュレータ部品(以下、「細胞シミュレータ」と適宜言う。)であり、他の一のシミュレータ部品101は、臓器の変形を算出するシミュレータ部品(以下、「有限要素モジュール」と適宜言う。)である、とする。そして、本例において、心筋細胞のシミュレーションを行う。臓器の変形を算出するシミュレータ部品は、有限要素法を用いたシミュレータである。
【0039】
まず、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の1行目の情報を読み込む。1行目の情報は、"[GUI−>SimulationController]setMeshData(3DMeshData)"である。"setMeshData(3DMeshData)"は、3Dメッシュデータを入力させるデータ入力指示である。かかる指示により、入力受付手段1035は、3Dメッシュデータを入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの3Dメッシュデータの選択入力を受け付け、設定する。通常、複数の3Dメッシュデータが格納されており、ユーザは複数の3Dメッシュデータの中から一の3Dメッシュデータを選択する。通常、一の3Dメッシュデータは、一のファイルであり、複数のファイルからユーザは選択する。設定とは、所定の記録領域に一時蓄積する処理である。なお、3Dメッシュデータそのものをユーザが入力し、入力受付手段1035が受け付けても良いことは言うまでもない。
【0040】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の2行目の情報を読み込む。2行目の情報は、"[GUI−>SimulationController]setMaterialProperty(youngRatio)"である。"setMaterialProperty(youngRatio)"は、材料定数(ヤング率)を入力させるデータ入力指示である。かかる材料定数(ヤング率)は、3Dメッシュデータに対して設定されるデータである。かかる指示により、入力受付手段1035は、材料定数(ヤング率)を入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの材料定数(ヤング率)の入力を受け付け、3Dメッシュデータに対して設定する。
【0041】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の3行目の情報を読み込む。3行目の情報は、"[GUI−>SimulationController]setBoundaryCondition(staticWaterPressure)"である。"setBoundaryCondition(staticWaterPressure)"は、静水圧を入力させるデータ入力指示である。かかる静水圧は、3Dメッシュデータに境界条件として内壁に設定されるデータである。かかる指示により、入力受付手段1035は、静水圧を入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの静水圧の入力を受け付け、3Dメッシュデータに境界条件として内壁に対して設定する。なお、心臓の場合、中に流れる血液などが細胞の挙動に影響を与る。血液の圧力データ(静水圧のデータ)はシステムの入力データの一種である。
【0042】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の4行目の情報を読み込む。4行目の情報は、"[GUI−>SimulationController]setCellDirection(surfaceElements)"である。"setCellDirection(surfaceElements)"は、細胞配列データの設定指示である。かかる指示をシミュレーション管理部103が受け付けることにより、シミュレーション管理部103は、3Dメッシュデータと内壁外壁要素データから細胞配列データを生成する。内壁外壁要素データとは、例えば、内壁および外壁を構成している要素の要素番号のリストである。細胞配列データとは、例えば、3Dメッシュデータの要素番号とxyz方向ベクトル(x1,Y1,z1)の情報を有する。3Dメッシュデータの要素番号とは、3Dメッシュデータを複数の要素に区切った際の要素を特定する情報である。なお、単細胞の空間的の配置方向によって、その収縮方向が異なる。よって、心臓全体の挙動も異なる。細胞の空間的な配置方向をあらわすのが細胞配列データである。
【0043】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の5行目の情報を読み込む。5行目の情報は、"[GUI−>SimulationController]setCellModels(cellModels)"である。"setCellModels(cellModels)"は、細胞モデルデータを入力させるデータ入力指示である。かかる細胞モデルデータは、3Dメッシュデータの各要素に対応するデータである。かかる指示により、入力受付手段1035は、細胞モデルデータを入力させるためのGUI画面を構成し、表示する。次に、入力受付手段1035は、ユーザからの細胞モデルデータの入力を受け付け、3Dメッシュデータの各要素に対応する細胞モデルデータとして設定する。細胞モデルデータとは、単細胞の生物的挙動を時間軸にあらわしたデータである。たとえば、細胞モデルデータには、細胞膜電位や各イオンチャネル濃度の変化データ、ADP・ATPなど代謝物質の変化データ、遺伝にかかわる蛋白質の変化データなどがある。細胞モデルデータは、例えば、XML形式で記述され得るが、そのデータ構造は問わない。
【0044】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の6行目の情報を読み込む。6行目の情報は、"[SimulationController−>CellSimulator]setCellModels(cellModels)"である。"setCellModels(cellModels)"は、細胞モデルデータを細胞シミュレータに設定する指示である入力データ受渡指示である。かかる入力データ受渡指示により、入力データ受渡手段1033は、細胞モデルデータを細胞シミュレータのシミュレータ部品101に渡す。そして、細胞シミュレータのシミュレータ部品101は、細胞モデルデータを受け取り、設定する。図4において、"CellSimulator"は、細胞シミュレータのシミュレータ部品101を示す。
【0045】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の7行目の情報を読み込む。7行目の情報は、"[SimulationController−CellSimulator]getCellReductionForce(dt,length)"である。"getCellReductionForce(dt,length)"は、細胞シミュレータで細胞ごとに筋節長に対するdt時間後の細胞収縮力を計算させ、その結果データを取得する指示である出力データ受渡指示である。かかる指示が、シミュレーション管理部103から細胞シミュレータに送付される。次に、細胞シミュレータは、細胞ごとに筋節長に対するdt時間後の細胞収縮力を計算し、その結果データをシミュレーション管理部103に送付する。その結果データは細胞収縮力データである。細胞収縮力データとは、細胞の収縮力の時系列データである。細胞収縮力データは、複数の力の値(単位:マイクロニュートン)を有するデータである。例えば、細胞収縮力データは、時刻と力の値の組を複数有するデータである。
【0046】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の8行目の情報を読み込む。そして、シミュレーション管理部103は、1周期分の計算が終了するまで7行目の情報が示す処理を繰り返す。そして、その結果を細胞収縮力データとして蓄積する。なお、細胞収縮力データは、例えば、要素番号と、時間を示す情報と、収縮力を示す情報を有する。細胞収縮力データは、細胞シミュレータから計算され、有限要素モジュールで解析され、心臓全体の拍動をおこす。なお、1周期分とは、1心拍に相当する区間をいう。細胞は心拍に応じて周期的に収縮力を発生する。
【0047】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の9行目の情報を読み込む。9行目の情報は、"[SimulationController−>FEMSimulator]setSimulationData(SimulationData)"である。"setSimulationData(SimulationData)"は、シミュレーションデータを送付し、設定を指示する入力データ受渡指示である。かかる指示は、シミュレーション管理部103から有限要素モジュールに対してなされる。かかる入力データ受渡指示により、シミュレーションデータが有限要素モジュールに送付され、当該有限要素モジュールはデータを受け付け、一時蓄積する。シミュレーションデータとは、ここでは、3Dメッシュデータと材料特性を示すデータと境界条件を示すデータを有する。単細胞の生物的挙動モデルから組織や器官のモデルを構築するために、細胞を空間的に配置し、その力学的な相互作用(有限要素解析法)によって、組織や器官の全体の挙動をシミュレートする。その際の細胞の空間配置情報が3Dメッシュデータである。また、心臓の場合、楕円に近いモデルなどが用いられる。材料特性データとは、細胞の力学的性質をあらわすデータである。さらに、組織や器官の壁にある細胞は組織の中にある細胞とよく違う挙動を示すため、有限要素解析では、それを指定する(組織の中にある細胞と壁の細胞を区別する)ためのデータが境界条件データである。なお、シミュレーションデータは、例えば、MFD形式であるが、その形式、構造は問わない。なお、MFD形式は、有限要素モジュールの入力ファイル形式として、頻繁に利用される。なお、図4において、"FEMSimulator"は、有限要素モジュール(シミュレーション部品の1つ)を示す。
【0048】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の10行目の情報を読み込む。10行目の情報は、"[SimulationController−>FEMSimulator]setCellDirection()"である。"setCellDirection()"は、細胞配列データを受け渡す指示である入力データ受渡指示である。かかる指示により、細胞配列データが有限要素モジュールに送付される。そして、当該シミュレータ部品101は、細胞配列データを受け付け、設定する。
【0049】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の11行目の情報を読み込む。11行目の情報は、"[SimulationController−>FEMSimulator]setCellReductionForce(CellReductionForce)"である。"setCellReductionForce(CellReductionForce)"は、有限要素モジュールに細胞収縮力データの設定を指示する入力データ受渡指示である。かかる指示により、細胞収縮力データがシミュレーション管理部103から有限要素モジュールに渡され、有限要素モジュールが当該細胞収縮力データを設定する。
【0050】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の12行目の情報を読み込む。12行目の情報は、"[SimulationController−>FEMSimulator]getOrganDeformation(dt)"である。"getOrganDeformation(dt)"は、有限要素モジュールにdt時間後の臓器変形を計算し、計算結果を送付することを指示する出力データ受渡指示である。かかる指示により、有限要素モジュールは、dt時間後の臓器変形を計算し、その計算結果をシミュレーション管理部103に送付する。
【0051】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の13行目の情報を読み込む。13行目の情報は、"[SimulationController−>Visualizer]setOrganDeformation(OrganDeformation)"である。なお、"Visualizer"は、データ出力部品102を示す。
そして、"setOrganDeformation(OrganDeformation)"は、臓器変形に関する有限要素モジュールの計算結果のデータをデータ出力部品102に渡し、当該データを可視化する出力指示である。かかる指示により、有限要素モジュールのシミュレーション結果データがデータ出力部品102に送付される。そして、データ出力部品102は、当該データを受け取り、視覚的に出力する。かかる出力により、臓器の変形は視覚的に図的に表示される。かかる表示の様子を示したのが、図5である。図5において、心臓の動きをシミュレーションしている様子を示している。なお、シミュレーション結果データは、例えば、t19/t16形式のデータである。また、シミュレーション結果データは、例えば、3D形状、変位、応力テンソル、歪みテンソル、速度、加速度の情報を含む。3D形状とは、心臓の3D形状、入力の3Dメッシュの形状情報である。形状情報は、例えば、心臓の形状を構成する点の情報(x,y,z)の集合である。また、変位とは、心臓3Dメッシュの各要素の空間変異データであり、かかる情報により、心臓拍動の動きがわかる。また、応力テンソルとは、有限要素モジュールから出力される各要素にかかった力データである。また、歪みテンソルとは、有限要素モジュールから出力される各要素の歪のデータである。また、速度とは、心臓3Dメッシュの各要素の空間動きの速度である。さらに、加速度とは、心臓3Dメッシュの各要素の空間動きの加速度である。
【0052】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の14行目の情報を読み込む。そして、シミュレーション管理部103は、1周期分の計算が終了するまで12,13行目の情報が示す処理を繰り返す。そして、臓器の変形のシミュレーションが実行される。
【0053】
次に、シミュレーション管理部103は、図4のシミュレーションシナリオ情報の15行目の情報を読み込む。シミュレーションシナリオ情報の1行目の情報に戻る。そして、上述した処理が繰り返し実行される。なお、上記処理は、電源オフや処理終了の割り込みにより終了する。
【0054】
なお、上記の細胞シミュレータは、例えば、単一心筋細胞モデルを計算する細胞シミュレータで実現されている。また、有限要素モジュールは、構造力学的変形を計算する有限要素法ソルバ(たとえば、商用ソフト(Marc))で実現でき得る。また、データ出力部品102は、商用の可視化ツールキット(AVS)で実現でき得る。つまり、上述の生体シミュレーション装置は、シミュレーションシナリオ情報に基づいて、以下のように動作する。まず、選択した心筋細胞モデルを細胞シミュレータで実行する。次に、そのシミュレーション結果である収縮力の時系列データをシミュレーション管理部103が取得する。次に、収縮力の時系列データ、選択した細胞配列モデルと形状データを有限要素モジュールに渡し、有限要素モジュールが実行する。次に、有限要素モジュールは、形状変化の時系列データを出力する。次に、シミュレーション管理部103は形状変化の時系列データを取得し、データ出力部品102に渡す。データ出力部品102は、形状変化の時系列データに基づいて、心室拍動のシミュレーションを行う。かかるシミュレーションは、例えば、3次元のアニメーションで表示される。
【0055】
以上、本実施の形態によれば、個体、臓器・器官、細胞・組織、細胞内小器官、分子といった生体機能を構成する機能要素に対応するシミュレータ部品を組み合わせた、種々の生体の機能がシミュレーションできる。そして、医学分野において、種々の研究がなされ、解明されるのは、生体機能を構成する機能要素についてである場合が多い。それは研究の困難度から言えることである。また、例えば、種々の細胞等の部品の振る舞いが影響し合って、個体、臓器の振る舞いが決定される。本実施の形態における生体シミュレーション装置は、かかる医学分野の特質を考慮し、各生体の部品(心筋細胞など)をシミュレーションするシミュレータ部品と、生体の部品を制御する部位(シミュレーション管理部)を構造的に分離し、かつ、新しいシミュレータ部品の組み込みが、他の部品に影響を及ぼさず、かつ精度の高いシミュレーションを可能にする。つまり、本実施の形態によれば、解明されているシミュレータ部品を容易に組み合わせ、現在の医学の実情に合った精度の高い生体シミュレーションを可能にし、それによって将来の医学の研究と進歩が助長される。かつ、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる。ここで機能要素とは、上述の心筋細胞の電気生理学的な振る舞いや、細胞の代謝的な側面の振る舞いや、臓器の形状の変化などを言う。つまり、シミュレータ部品は、心筋細胞の電気生理学的な振る舞いをシミュレーションするソフトウェアや、臓器の形状をシミュレーションするソフトウェアや、細胞の代謝的な振る舞いをシミュレーションするソフトウェアなどにより実現され得る。かかることは、他の実施の形態においても同様である。
例えば、心臓全体で見ると、洞房結節で発生した興奮は刺激伝導系によって心臓全体に伝播される。この過程は、電気現象の一種であり、電場解析などによりシミュレートすることができる。そして、各細胞が発生した収縮力によって心臓全体が収縮するが、これは構造力学的現象であり有限要素法などを用いて計算可能である。さらに、心臓の収縮によって心臓内の圧力が高まり血液が拍出される。これは流体力学的現象として捉えることができる。それ以外にも、冠動脈などによる心筋の酸素濃度勾配など、多くの現象が心拍動に関与している。さらに、細胞と臓器との間の相互作用も存在する。例えば、心臓の構造力学的変形によって生じる心筋細胞への加重は、興奮収縮連関を通じて細胞の電気生理学的現象に影響を与える。このように、心拍動一つみても、いくつもの現象とその相互作用を考慮する必要がある。さらに、小腸における薬物吸収など、異なる生体機能にはそれぞれに異なった多くの現象とその相互作用が関与する。これらの現象は、複数の生体機能で共通なもの、同じ手法で計算可能なもの、ある生体機能に特有のものなど、様々である。本実施の形態によれば、生体機能を対象とした汎用的なシミュレーションプラットフォームを提供できる。かかることは、他の実施の形態においても同様である。
【0056】
また、生体機能や生体機能の機能要素は、上述したように、まだ十分に解明されていない。今後、医学の研究により、順次、解明されると考えられる。本実施の形態における生体シミュレーション装置の構造は、順次解明されるであろう生体機能や機能要素に対応して構築されたシミュレータ部品を組み込み、さらに詳細な、精度の高いシミュレーションを行う場合の好適な構造である。つまり、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる、という生体のシミュレーションに極めて適した構造を具備する。かかることは、他の実施の形態においても同様である。
【0057】
なお、本実施の形態によれば、シミュレーションシナリオ情報をカスタマイズする構成について、十分に説明しなかったが、シミュレーションシナリオ情報はカスタマイズ可能であっても良いことは言うまでもない。かかる場合、生体シミュレーション装置は、上記の生体シミュレーション装置の構成に加えて、シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付部と、シミュレーションシナリオ情報入力受付部で受け付けたシミュレーションシナリオ情報をシミュレーションシナリオ情報格納手段に蓄積するシミュレーションシナリオ情報蓄積部をさらに具備する。かかることは他の実施の形態においても同様である。
【0058】
また、本実施の形態によれば、シミュレータ部品は、上記例示したシミュレータ部品に限られないことは言うまでもない。つまり例示した2以上の異なるシミュレータ部品の一のシミュレータ部品は、単一心筋細胞のシミュレーションを行うシミュレータ部品であり、他の一のシミュレータ部品は、臓器の変形を算出するシミュレータ部品(有限要素モジュール)であったが、他のシミュレータ部品でも良い。かかることも他の実施の形態においても同様である。
また、本実施の形態における、各データ、情報の形式や構造は問わない。かかることも他の実施の形態においても同様である。
【0059】
また、本実施の形態によれば、データ出力部品の出力手段は、出力データ受付手段が受け付けた出力データを表示したが、出力データを蓄積したり、送信したりしても良い。かかることも他の実施の形態においても同様である。
【0060】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における生体シミュレーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、前記2以上のシミュレータプログラムは、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付ステップと、前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、前記出力データを前記シミュレーション管理部に渡す出力データ出力ステップを具備し、前記データ出力プログラムは、前記シミュレーション管理部から出力データを受け付ける出力データ受付ステップと、前記出力データ受付手段が受け付けた出力データを出力する出力ステップを具備し、前記シミュレーション管理プログラムは、前記2以上のシミュレータプログラムからデータを受け付けるデータ受付ステップと、格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備する生体シミュレーションプログラム、である。
また、上記のデータ出力プログラムの出力ステップは、前記出力データ受付ステップで受け付けた出力データを表示しても良い。
(実施の形態2)
【0061】
本実施の形態において、2以上の生体要素のシミュレータ部品を利用して、複雑な生体シミュレーションを行える生体シミュレーション装置等について説明する。本実施の形態において、生体シミュレーション装置は、シミュレーションの結果のデータを蓄積し、後に利用する形態である。
【0062】
生体シミュレーション装置は、2以上の異なる生体要素のシミュレータ部品とデータ出力部品とシミュレーション管理部を具備する。2以上の生体要素のシミュレータ部品は、入力を受け付け、シミュレーション結果を出力するシミュレータの部品である。データ出力部品は、シミュレーションの結果を蓄積するための部品である。シミュレーション管理部は、シミュレータ部品の出力を他のミュレータ部品の入力に変換し、他のシミュレータ部品に当該変換データを渡し、また、シミュレータ部品の出力をそのまま、または変換し、データ出力部品に渡す。シミュレータ部品は、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素ごとの挙動であるミクロレベルの挙動をシミュレーションする。シミュレーション管理部は、生体構成要素間の相互作用であるマクロレベルの挙動をシミュレーション可能にする。データ出力部品は、各生体構成要素と外部環境との相互作用のシミュレーションを可能にする。
【0063】
以下、本発明の実施の形態の生体シミュレーション装置について、図面を用いて説明する。図6は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品802、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105、出力データ受付部106、入力データ検索部107、入力データ出力部108を具備する。シミュレータ部品の符号は、総括して、101とする場合もある。
データ出力部品802は、出力データ受付手段1021、入力データ取得手段8021、出力手段8022を具備する。
【0064】
入力データ取得手段8021は、1以上のシミュレータ部品101への入力データを取得する。入力データ取得手段8021は、シミュレータ部品101から直接に入力データを取得しても良いし、シミュレーション管理部103を経由して入力データを取得しても良い。なお、図8のブロック図において、入力データ取得手段8021は、シミュレーション管理部103を経由して入力データを取得する構成である。入力データ取得手段8021は、通常、MPUやメモリ等から実現され得る。入力データ取得手段8021の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0065】
出力手段8022は、出力データ受付手段1021が受け付けた出力データと入力データ取得手段8021が取得した入力データを対にして蓄積する。出力手段8022が情報を蓄積する記録媒体は、不揮発性の記録媒体が好適である。なお、かかる記録媒体は、生体シミュレーション装置に内蔵のものでも外付けのものでも良い。出力手段8022は、通常、MPUやメモリ等から実現され得る。出力手段8022の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0066】
出力データ受付部106は、出力データの入力を受け付ける。出力データとは、シミュレーションの結果を示すシミュレーションデータである。出力データの入力を行う入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。出力データ受付部106は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0067】
入力データ検索部107は、出力データ受付部106が受け付けた出力データと対になる、または出力データ受付部106が受け付けた出力データに近似した出力データと対になる入力データを検索する。2つの出力データを比較して近似しているか否かを判断する技術は公知技術であるので、ここでの詳細な説明は省略する。入力データ検索部107は、通常、MPUやメモリ等から実現され得る。入力データ検索部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
【0068】
入力データ出力部108は、入力データ検索部107が検索した入力データを出力する。出力とは、通常、ディスプレイへの表示を言うが、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。入力データ出力部108は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。入力データ出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0069】
以下、本生体シミュレーション装置の動作について説明する。本生体シミュレーション装置は、実施の形態1で説明したシミュレーション装置と比較して、シミュレーション結果の表示が、出力データ受付手段1021が受け付けた出力データと入力データ取得手段8021が取得した入力データを対にして蓄積する動作に変わっている。また、出力データ受付部106が出力データの入力を受け付けると、入力データ検索部107は、出力データ受付部106が受け付けた出力データと対になる、または出力データ受付部106が受け付けた出力データに近似した出力データと対になる入力データを検索する。次に、入力データ出力部108は、入力データ検索部107が検索した入力データを出力する。かかる処理により、実際の患者のデータ(出力データ)に基づいて、入力データが検索でき、患者の身体の内部の状態が把握できる。
【0070】
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図4に示すシミュレーションシナリオ情報が格納されている。かかる状況において、単一心筋細胞のシミュレーションを行うシミュレータ部品と、臓器の変形を算出するシミュレータ部品に対して入力データが入力される。そして、実施の形態1で述べたシミュレーションデータが、上記の入力されたデータと対に蓄積される。そして、シミュレータ部品への入力データと、シミュレーション結果である出力データ(シミュレーションデータ)を対で有する複数のレコードを有するデータベースが構築される。
【0071】
次に、出力データ受付部106は、実際の患者のデータ(出力データ)の入力を受け付ける、とする。そして、入力データ検索部107は、受け付けた出力データと一致するまたは近似する出力データと対になる入力データを上記の処理で構築したデータベースから取得する。次に、入力データ出力部108は、取得した入力データを出力する。
【0072】
以上、本実施の形態によれば、シミュレーション結果を蓄積でき、利用できる。シミュレーション結果の利用方法としては、外部から観測できる患者のデータ(出力データ)を入力し、シミュレータ部品に与える入力データを取得することにより、患者の身体の内部状態を取得できる。かかることにより、生体シミュレーション装置を用いて、身体を手術したり、患者にとって負荷の高い検査をしたりすることを回避でき、患者の状態を知ることができる。
【0073】
なお、本実施の形態における生体シミュレーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、前記2以上のシミュレータプログラムは、ユーザまたは/および前記シミュレーション管理プログラムからデータを受け付ける入力データ受付ステップと、前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、前記出力データを前記シミュレーション管理プログラムに渡す出力データ出力ステップを具備し、前記データ出力プログラムは、前記シミュレーション管理プログラムから出力データを受け付ける出力データ受付ステップと、前記シミュレータ部品への入力データを取得する入力データ取得ステップと、前記出力データ受付ステップで受け付けた出力データと前記入力データ取得ステップで取得した入力データを対にして蓄積する出力ステップを具備し、前記シミュレーション管理プログラムは、前記2以上のシミュレータ部品からデータを受け付けるデータ受付ステップと、格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備し、さらに、コンピュータに、出力データの入力を受け付ける出力データ受付ステップと、前記出力データ受付ステップが受け付けた出力データと対になる、または出力データ受付部ステップで受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索ステップと、前記入力データ検索ステップで検索した入力データを出力する入力データ出力ステップを実行させるための生体シミュレーションプログラム、である。
(実施の形態3)
上述した実施の形態の具体例等において、有限要素モジュールというシミュレータ部品101("FEMSimulator")と、細胞のシミュレーションを行うシミュレータ部品101("CellSimulator")は、片方向のデータ(メッセージと言っても良い)のやりとりであった(図4参照)。つまり、シミュレータ部品101("CellSimulator")で計算した細胞収縮力変化を一旦蓄積し、当該蓄積した細胞収縮力を要素収縮力に変換して、シミュレータ部品101("FEMSimulator")に入力するという構成であった。つまり、シミュレータ部品101("FEMSimulator")による筋長変化がシミュレータ部品101("CellSimulator")に反映されない、というシミュレーションシナリオ情報であった。つまり、張力と筋長は独立に計算されており、片方向連成シミュレーションであった(図7参照)。したがって、シミュレーションの精度が十分ではなかった(後述の図11参照)。
本実施の形態において、以下の具体例について述べる。つまり、まず、シミュレータ部品101("CellSimulator")で計算した収縮力を要素収縮力に変換し、シミュレータ部品101("FEMSimulator")に入力する。次に、形状変化を半筋節長変化に変換して、シミュレータ部品101("CellSimulator")に入力する。つまり、本実施の形態において述べる具体例では、張力と筋長間の相互作用をシミュレートできる。つまり、双方向連成シミュレーションである(図8参照)。その結果、非常に精度の高い生体シミュレーションが可能となる(後述の図11参照)。
以下、本実施の形態の生体シミュレーション装置について説明する。図1は、本実施の形態における生体シミュレーション装置のブロック図である。生体シミュレーション装置は、2以上の異なるシミュレータ部品(101(1)、101(2)・・・101(n))、データ出力部品102、シミュレーション管理部103、シミュレーションシナリオ情報入力受付部104、シミュレーションシナリオ情報蓄積部105を具備する。また、本実施の形態の生体シミュレーション装置の動作は、図2、図3のフローチャートを用いて説明した。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。今、シミュレーションシナリオ情報格納手段1031に図9に示すシミュレーションシナリオ情報が格納されている。
まず、図9のシミュレーションシナリオ情報について説明する。図9のシミュレーションシナリオ情報は、18行の情報からなる。1行目から6行目は、図4のシミュレーションシナリオ情報と同様であり、説明済みである。図9の7行目は図4の9行目と同様であり、説明済みである。図9の8行目は図4の10行目と、引数を除いて同じである。
そして、まず、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の1行目から順次、8行目までの情報を読み込み、それぞれの情報に基づいて、実施の形態1で述べた動作を行う。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の9行目の情報を読み込み、実行する。図9の9行目"[SimulationController−>FEMSimulator]getCellLength(length)"は、シミュレーション管理部103から有限要素モジュールに細胞の長さを取得する指示が送付されることを示す。そして、シミュレーション管理部103は、細胞の長さを取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の10行目の情報を読み込み、実行する。図9の10行目"[[SimulationController−>CellSimulator]setCellLength(length)"は、シミュレーション管理部103が有限要素モジュールから取得した細胞の長さを細胞シミュレータに送付することを示す。そして、シミュレーション管理部103は、細胞シミュレータに細胞の長さを送付する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の11行目の情報を読み込み、実行する。図9の11行目"[SimulationController−>CellSimulator]stepGo(dt)"は、シミュレーション管理部103が、細胞シミュレータにdt時間分、細胞収縮力を計算することを指示することを示す。そして、シミュレーション管理部103は、細胞シミュレータにdt時間分計算することを指示し、細胞シミュレータはdt時間分、細胞収縮力を計算する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の12行目の情報を読み込み、実行する。図9の12行目"[SimulationController−>CellSimulator]getCellForce(CellForce)"は、シミュレーション管理部103は、細胞シミュレータが計算した細胞収縮力を取得することを示す。そして、シミュレーション管理部103は、細胞シミュレータから細胞収縮力を取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の13行目の情報を読み込み、実行する。図9の13行目"[SimulationController−>FEMSimulator]setCellForce(CellForce)"は、シミュレーション管理部103は、有限要素モジュールに、取得した細胞収縮力を送ることを示す。そして、細胞収縮力は、有限要素モジュールに送付される。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の14行目の情報を読み込み、実行する。図9の14行目"[SimulationController−>FEMSimulator]stepGo(dt)"は、シミュレーション管理部103は、有限要素モジュールに、dt時間分、臓器形状(3D形状)を計算することを指示することを示す。そして、有限要素モジュールは、dt時間分、臓器形状を計算する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の15行目の情報を読み込み、実行する。図9の15行目"[SimulationController−>FEMSimulator]getOrganDeformation(Organ)"は、シミュレーション管理部103は、有限要素モジュールが計算した臓器形状を、有限要素モジュールから取得することを示す。そして、シミュレーション管理部103は、有限要素モジュールから臓器形状を取得する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の16行目の情報を読み込み、実行する。図9の16行目"[SimulationController−>Visualizer]setOrganDeformation(Organ)"は、シミュレーション管理部103は、データ出力部品102に、臓器形状を送ることを示す。そして、シミュレーション管理部103は、データ出力部品102に、臓器形状を送る。次に、データ出力部品102は、臓器形状を受け付け、出力する。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の17行目の情報を読み込み、実行する。図9の17行目"loop(9,16)"は、9行目から16行目までの処理を繰り返すことを示す。そして、シミュレーション管理部103は、9行目から16行目までの処理を、1周期分の計算が終了するまで繰り返す。
次に、シミュレーション管理部103は、図9のシミュレーションシナリオ情報の18行目の情報を読み込み、実行する。図9の18行目"goto(1)"は、1行目に戻ることを示す。そして、シミュレーション管理部103は、シミュレーションシナリオ情報の1行目の情報に戻る。そして、上述した処理が繰り返し実行される。なお、上記処理は、電源オフや処理終了の割り込みにより終了する。
本具体例における処理は、上述したように、張力と筋長間の相互作用をシミュレートする双方向連成シミュレーションである。
また、図10に示す実験を行った。実験において、細胞の両端に収縮力測定装置を設置し、長さが変化しない状態にした。そして、細胞の長さ(半筋節長)を変化させて発生する収縮力を測定する実験を行った。かかる実細胞を使った実測値を、図11のグラフに示す。図11のグラフにおいて、横軸が半筋節長(単位:μm)、縦軸が正規化した細胞収縮力である。また、実施の形態1の片方向連成シミュレーションにおけるグラフと、本実施の形態の双方向連成シミュレーションにおけるグラフも、図11に示す。
図11のグラフにより、片方向連成シミュレーションでは、実細胞と異なる結果となるが、双方向連成シミュレーションでは実細胞とほぼ同じ結果が得られたことが分かる。
以上、本実施の形態によれば、精度の高いシミュレーションが、シミュレーションシナリオ情報等を変更するだけで簡単に実現できる。つまり、医学分野において、種々の研究がなされ、解明されるのは、生体機能を構成する機能要素についてである場合が多い。それは研究の困難度から言えることである。また、例えば、種々の細胞等の部品の振る舞いが影響し合って、個体、臓器の振る舞いが決定される。本実施の形態における生体シミュレーション装置は、かかる医学分野の特質を考慮し、各生体の部品(心筋細胞など)をシミュレーションするシミュレータ部品と、生体の部品を制御する部位(シミュレーション管理部)を構造的に分離し、かつ、新しいシミュレータ部品の組み込みが、他の部品に影響を及ぼさず、かつ精度の高いシミュレーションを可能にする。つまり、本実施の形態によれば、解明されているシミュレータ部品を容易に組み合わせ、現在の医学の実情に合った精度の高い生体シミュレーションを可能にし、それによって将来の医学の研究と進歩が助長される。かつ、医学の進歩に合わせたシミュレーション機能の拡張が極めて容易にできる。
なお、本実施の形態において述べた双方向連成シミュレーションは、実施の形態2における生体シミュレーション装置においても適用可能であることはいうまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
つまり、例えば、上記各実施の形態において、シミュレータ部品、シミュレータ管理部、データ出力部品等は、それぞれ個別の装置により実現されており、メッセージやデータの送受信(通信機能、放送機能等を利用)により、生体シミュレーションが実現されても良い。かかる生体シミュレーションシステムは、以下のようなシステムである。つまり、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品装置と、シミュレーション結果を出力するデータ出力部品装置と、前記2以上の異なるシミュレータ部品装置および前記データ出力部品装置の間のデータの送受信の制御を行うシミュレーション管理装置を具備する生体シミュレーションシステムであって、前記2以上のシミュレータ部品装置は、ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、前記出力データを前記シミュレーション管理装置に送信する出力データ出力手段を具備し、前記データ出力部品装置は、前記シミュレーション管理装置から出力データを受信する出力データ受付手段と、前記出力データ受付手段が受信した出力データを出力する出力手段を具備し、前記シミュレーション管理装置は、前記2以上のシミュレータ部品装置およびデータ出力部品装置間の、データの送受信および動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、前記2以上のシミュレータ部品からデータを受信するデータ受付手段と、前記データ受付手段が受信したデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品装置に送信する入力データ受渡手段と、前記2以上のシミュレータ部品から受信したデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品装置に送信する出力データ受渡手段を具備する生体シミュレーションシステム、である。
なお、上述したプログラムにおいて、情報を出力する出力ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上述したプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0074】
以上のように、本発明にかかる生体シミュレーション装置は、種々の生体の機能がシミュレーションできるという効果を有し、生体をシミュレーションする生体シミュレーション装置として有用である。
【図面の簡単な説明】
【0075】
【図1】実施の形態1における生体シミュレーション装置のブロック図
【図2】同生体シミュレーション装置の動作について説明するフローチャート
【図3】同シミュレーション管理部の動作について説明するフローチャート
【図4】同シミュレーションシナリオ情報の例を示す図
【図5】同シミュレーションの表示例を示す図
【図6】実施の形態2における生体シミュレーション装置のブロック図
【図7】実施の形態3における片方向連成シミュレーションの概念図
【図8】同双方向連成シミュレーションの概念図
【図9】同シミュレーションシナリオ情報の例を示す図
【図10】同実験の概要を示す図
【図11】同実験結果グラフを示す図
【特許請求の範囲】
【請求項1】
分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、
シミュレーション結果を出力するデータ出力部品と、
前記2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、
前記2以上のシミュレータ部品は、
ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、
前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、
前記出力データを前記シミュレーション管理部に渡す出力データ出力手段を具備し、
前記データ出力部品は、
前記シミュレーション管理部から出力データを受け付ける出力データ受付手段と、
前記出力データ受付手段が受け付けた出力データを出力する出力手段を具備し、
前記シミュレーション管理部は、
前記2以上のシミュレータ部品およびデータ出力部品間の、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、
前記2以上のシミュレータ部品からデータを受け付けるデータ受付手段と、
前記データ受付手段で受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品に渡す入力データ受渡手段と、
前記2以上のシミュレータ部品から受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品に渡す出力データ受渡手段を具備する生体シミュレーション装置。
【請求項2】
前記データ出力部品の出力手段は、前記出力データ受付手段が受け付けた出力データを表示する請求項1記載の生体シミュレーション装置。
【請求項3】
前記データ出力部品は、
前記シミュレータ部品への入力データを取得する入力データ取得手段をさらに具備し、
前記出力手段は、前記出力データ受付手段が受け付けた出力データと前記入力データ取得手段が取得した入力データを対にして蓄積する請求項1記載の生体シミュレーション装置。
【請求項4】
出力データの入力を受け付ける出力データ受付部と、
前記出力データ受付部が受け付けた出力データと対になる、または前記出力データ受付部が受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索部と、
前記入力データ検索部が検索した入力データを出力する入力データ出力部をさらに具備する請求項3記載の生体シミュレーション装置。
【請求項5】
前記シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付部と、
前記シミュレーションシナリオ情報入力受付部が受け付けたシミュレーションシナリオ情報を前記シミュレーションシナリオ情報格納手段に蓄積するシミュレーションシナリオ情報蓄積部をさらに具備する請求項1から請求項4いずれか記載の生体シミュレーション装置。
【請求項6】
前記2以上の異なるシミュレータ部品の一のシミュレータ部品は、単一心筋細胞のシミュレーションを行うシミュレータ部品であり、
他の一のシミュレータ部品は、臓器の変形を算出するシミュレータ部品である請求項1から請求項5いずれか記載の生体シミュレーション装置。
【請求項7】
前記シミュレーションシナリオ情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する請求項1から請求項6いずれか記載の生体シミュレーション装置。
【請求項8】
コンピュータに、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、
コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、
コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、
前記2以上のシミュレータプログラムは、
ユーザまたは/および前記シミュレーション管理プログラムからデータを受け付ける入力データ受付ステップと、
前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、
前記出力データを前記シミュレーション管理プログラムに渡す出力データ出力ステップを具備し、
前記データ出力プログラムは、
前記シミュレーション管理プログラムから出力データを受け付ける出力データ受付ステップと、
前記出力データ受付手段が受け付けた出力データを出力する出力ステップを具備し、
前記シミュレーション管理プログラムは、
前記2以上のシミュレータ部品からデータを受け付けるデータ受付ステップと、
格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、
前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備するプログラム。
【請求項9】
データ出力プログラムの出力ステップは、前記出力データ受付ステップで受け付けた出力データを表示する請求項8記載のプログラム。
【請求項10】
前記データ出力プログラムは、
前記シミュレータ部品への入力データを取得する入力データ取得ステップをさらにコンピュータに実行させ、
前記出力ステップは、前記出力データ受付ステップで受け付けた出力データと前記入力データ取得ステップで取得した入力データを対にして蓄積する請求項8記載のプログラム。
【請求項11】
コンピュータに、
出力データの入力を受け付ける出力データ受付ステップと、
前記出力データ受付ステップが受け付けた出力データと対になる、または出力データ受付部ステップで受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索ステップと、
前記入力データ検索ステップで検索した入力データを出力する入力データ出力ステップをさらに実行させる請求項10記載のプログラム。
【請求項12】
コンピュータに、
前記シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付ステップと、
前記シミュレーションシナリオ情報入力受付ステップで受け付けたシミュレーションシナリオ情報を蓄積するシミュレーションシナリオ情報蓄積ステップをさらに実行させる請求項8から請求項11いずれか記載のプログラム。
【請求項13】
前記2以上の異なるシミュレータプログラムの一のシミュレータプログラムは、単一心筋細胞のシミュレーションを行うシミュレータプログラムであり、
他の一のシミュレータプログラムは、臓器の変形を算出するシミュレータプログラムである請求項8から請求項12いずれか記載のプログラム。
【請求項14】
前記シミュレーションシナリオ情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する請求項8から請求項13いずれか記載のプログラム。
【請求項15】
分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品装置と、
シミュレーション結果を出力するデータ出力部品装置と、
前記2以上の異なるシミュレータ部品装置および前記データ出力部品装置の間のデータの送受信の制御を行うシミュレーション管理装置を具備する生体シミュレーションシステムであって、
前記2以上のシミュレータ部品装置は、
ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、
前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、
前記出力データを前記シミュレーション管理装置に送信する出力データ出力手段を具備し、
前記データ出力部品装置は、
前記シミュレーション管理装置から出力データを受信する出力データ受付手段と、
前記出力データ受付手段が受信した出力データを出力する出力手段を具備し、
前記シミュレーション管理装置は、
前記2以上のシミュレータ部品装置およびデータ出力部品装置間の、データの送受信および動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、
前記2以上のシミュレータ部品からデータを受信するデータ受付手段と、
前記データ受付手段が受信したデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品装置に送信する入力データ受渡手段と、
前記2以上のシミュレータ部品から受信したデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品装置に送信する出力データ受渡手段を具備する生体シミュレーションシステム。
【請求項1】
分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品と、
シミュレーション結果を出力するデータ出力部品と、
前記2以上の異なるシミュレータ部品および前記データ出力部品の間のデータの受け渡しの制御を行うシミュレーション管理部を具備する生体シミュレーション装置であって、
前記2以上のシミュレータ部品は、
ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、
前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、
前記出力データを前記シミュレーション管理部に渡す出力データ出力手段を具備し、
前記データ出力部品は、
前記シミュレーション管理部から出力データを受け付ける出力データ受付手段と、
前記出力データ受付手段が受け付けた出力データを出力する出力手段を具備し、
前記シミュレーション管理部は、
前記2以上のシミュレータ部品およびデータ出力部品間の、データの流れおよび動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、
前記2以上のシミュレータ部品からデータを受け付けるデータ受付手段と、
前記データ受付手段で受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品に渡す入力データ受渡手段と、
前記2以上のシミュレータ部品から受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品に渡す出力データ受渡手段を具備する生体シミュレーション装置。
【請求項2】
前記データ出力部品の出力手段は、前記出力データ受付手段が受け付けた出力データを表示する請求項1記載の生体シミュレーション装置。
【請求項3】
前記データ出力部品は、
前記シミュレータ部品への入力データを取得する入力データ取得手段をさらに具備し、
前記出力手段は、前記出力データ受付手段が受け付けた出力データと前記入力データ取得手段が取得した入力データを対にして蓄積する請求項1記載の生体シミュレーション装置。
【請求項4】
出力データの入力を受け付ける出力データ受付部と、
前記出力データ受付部が受け付けた出力データと対になる、または前記出力データ受付部が受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索部と、
前記入力データ検索部が検索した入力データを出力する入力データ出力部をさらに具備する請求項3記載の生体シミュレーション装置。
【請求項5】
前記シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付部と、
前記シミュレーションシナリオ情報入力受付部が受け付けたシミュレーションシナリオ情報を前記シミュレーションシナリオ情報格納手段に蓄積するシミュレーションシナリオ情報蓄積部をさらに具備する請求項1から請求項4いずれか記載の生体シミュレーション装置。
【請求項6】
前記2以上の異なるシミュレータ部品の一のシミュレータ部品は、単一心筋細胞のシミュレーションを行うシミュレータ部品であり、
他の一のシミュレータ部品は、臓器の変形を算出するシミュレータ部品である請求項1から請求項5いずれか記載の生体シミュレーション装置。
【請求項7】
前記シミュレーションシナリオ情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する請求項1から請求項6いずれか記載の生体シミュレーション装置。
【請求項8】
コンピュータに、分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出させる2以上の異なるシミュレーションを行わせるシミュレータプログラムと、
コンピュータに、シミュレーション結果を出力させるデータ出力プログラムと、
コンピュータに、前記2以上の異なるシミュレータプログラムおよび前記データ出力プログラムの間のデータの受け渡しの制御をさせるシミュレーション管理プログラムを具備する生体シミュレーションプログラムであって、
前記2以上のシミュレータプログラムは、
ユーザまたは/および前記シミュレーション管理プログラムからデータを受け付ける入力データ受付ステップと、
前記入力データ受付ステップで受け付けたデータに対して所定の演算を行い、出力データを構成する演算ステップと、
前記出力データを前記シミュレーション管理プログラムに渡す出力データ出力ステップを具備し、
前記データ出力プログラムは、
前記シミュレーション管理プログラムから出力データを受け付ける出力データ受付ステップと、
前記出力データ受付手段が受け付けた出力データを出力する出力ステップを具備し、
前記シミュレーション管理プログラムは、
前記2以上のシミュレータ部品からデータを受け付けるデータ受付ステップと、
格納されているシミュレーションシナリオ情報に基づいて、前記データ受付手段で受け付けたデータを前記シミュレータプログラムに渡す入力データ受渡ステップと、
前記2以上のシミュレータプログラムから受け付けたデータを前記シミュレーションシナリオ情報に基づいて前記データ出力プログラムに渡す出力データ受渡ステップを具備するプログラム。
【請求項9】
データ出力プログラムの出力ステップは、前記出力データ受付ステップで受け付けた出力データを表示する請求項8記載のプログラム。
【請求項10】
前記データ出力プログラムは、
前記シミュレータ部品への入力データを取得する入力データ取得ステップをさらにコンピュータに実行させ、
前記出力ステップは、前記出力データ受付ステップで受け付けた出力データと前記入力データ取得ステップで取得した入力データを対にして蓄積する請求項8記載のプログラム。
【請求項11】
コンピュータに、
出力データの入力を受け付ける出力データ受付ステップと、
前記出力データ受付ステップが受け付けた出力データと対になる、または出力データ受付部ステップで受け付けた出力データに近似した出力データと対になる入力データを検索する入力データ検索ステップと、
前記入力データ検索ステップで検索した入力データを出力する入力データ出力ステップをさらに実行させる請求項10記載のプログラム。
【請求項12】
コンピュータに、
前記シミュレーションシナリオ情報の入力を受け付けるシミュレーションシナリオ情報入力受付ステップと、
前記シミュレーションシナリオ情報入力受付ステップで受け付けたシミュレーションシナリオ情報を蓄積するシミュレーションシナリオ情報蓄積ステップをさらに実行させる請求項8から請求項11いずれか記載のプログラム。
【請求項13】
前記2以上の異なるシミュレータプログラムの一のシミュレータプログラムは、単一心筋細胞のシミュレーションを行うシミュレータプログラムであり、
他の一のシミュレータプログラムは、臓器の変形を算出するシミュレータプログラムである請求項8から請求項12いずれか記載のプログラム。
【請求項14】
前記シミュレーションシナリオ情報は、情報の送信先と受信先を示す送受信先情報と、指示を示す指示情報を有する請求項8から請求項13いずれか記載のプログラム。
【請求項15】
分子、細胞内小器官、細胞、組織、もしくは臓器等の、生物を構成する要素である生体構成要素の振る舞いを算出する2以上の異なるシミュレータ部品装置と、
シミュレーション結果を出力するデータ出力部品装置と、
前記2以上の異なるシミュレータ部品装置および前記データ出力部品装置の間のデータの送受信の制御を行うシミュレーション管理装置を具備する生体シミュレーションシステムであって、
前記2以上のシミュレータ部品装置は、
ユーザまたは/および前記シミュレーション管理部からデータを受け付ける入力データ受付手段と、
前記入力データ受付手段が受け付けたデータに対して所定の演算を行い、出力データを構成する演算手段と、
前記出力データを前記シミュレーション管理装置に送信する出力データ出力手段を具備し、
前記データ出力部品装置は、
前記シミュレーション管理装置から出力データを受信する出力データ受付手段と、
前記出力データ受付手段が受信した出力データを出力する出力手段を具備し、
前記シミュレーション管理装置は、
前記2以上のシミュレータ部品装置およびデータ出力部品装置間の、データの送受信および動作シーケンスに関する情報であるシミュレーションシナリオ情報を格納しているシミュレーションシナリオ情報格納手段と、
前記2以上のシミュレータ部品からデータを受信するデータ受付手段と、
前記データ受付手段が受信したデータを前記シミュレーションシナリオ情報に基づいて前記シミュレータ部品装置に送信する入力データ受渡手段と、
前記2以上のシミュレータ部品から受信したデータを前記シミュレーションシナリオ情報に基づいて前記データ出力部品装置に送信する出力データ受渡手段を具備する生体シミュレーションシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【国際公開番号】WO2005/083615
【国際公開日】平成17年9月9日(2005.9.9)
【発行日】平成19年11月29日(2007.11.29)
【国際特許分類】
【出願番号】特願2006−510394(P2006−510394)
【国際出願番号】PCT/JP2005/002138
【国際出願日】平成17年2月14日(2005.2.14)
【出願人】(504132272)国立大学法人京都大学 (1,269)
【国際公開日】平成17年9月9日(2005.9.9)
【発行日】平成19年11月29日(2007.11.29)
【国際特許分類】
【国際出願番号】PCT/JP2005/002138
【国際出願日】平成17年2月14日(2005.2.14)
【出願人】(504132272)国立大学法人京都大学 (1,269)
[ Back to top ]