(57)【要約】【課題】従来の生体シミュレーション装置において、想定されていない計算原理に基づく演算式を組み込むことは、極めて困難であった。【解決手段】本発明は、生体機能をシミュレートするメソッドである生体機能メソッドをオブジェクト指向に基づいて実行して生体機能をシミュレーションする生体シミュレーション装置であって、医学生物学分野の研究の発展により解明された生体の機能等を示すクラスを追加するだけで、新たな生体機能のシミュレーションが容易に組み込むことができる構造を有する生体シミュレーション装置であって、かかる生体シミュレーション装置により、機能追加が極めて容易になった。【選択図】図１
2007334377.tif 000002
【特許請求の範囲】
【請求項１】
生体機能をシミュレートするメソッドである生体機能メソッドをオブジェクト指向に基づいて実行して生体機能をシミュレーションする生体シミュレーション装置であって、
生体を構成する部品であり、一のクラスに属する部品である生体機能インスタンスおよび当該生体機能インスタンスの階層構造を示す情報を有する生体モデル構造情報を格納している生体モデル構造情報格納部と、
生体の変数に関する情報である変数情報を処理するメソッドを保持しているクラスであるノードクラスと、
ノードクラスの継承先クラスであり、前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記生体インスタンスの階層構造を構成するメソッドを保持しているクラスである階層構造構成クラスと、
前記階層構造構成クラスの継承先クラスであり、かつ、生体機能をシミュレートするための演算式を示す生体機能メソッドをメソッドとして具備するクラスである反応クラスと、
前記階層構造構成クラスの継承先クラスであり、かつ、前記生体機能メソッドの実行結果を取得し、解析するメソッドを具備している解析クラスを保持し、
前記生体モデル構造情報を解釈し、前記階層構造構成クラスにおける階層構造に基づいて生体インスタンスをメモリ上にマッピングし、前記生体インスタンスが属するクラスのメソッドを実行することにより前記生体インスタンスの状態を変化させ、当該変化した生体インスタンスの状態を前記解析クラスのメソッドに与えて解析結果を出力することにより生体機能をシミュレーションする生体シミュレーション装置。
【請求項２】
前記メモリ上にマッピングされた１以上の生体インスタンスにアクセスし、所定の処理を行うメソッドを保持している訪問者クラスをさらに保持し、
前記解析クラスのメソッドは、前記訪問者クラスのメソッドの実行結果に基づいて解析結果を取得する請求項１記載の生体シミュレーション装置。
【請求項３】
前記反応クラスの継承先クラスであり、所定の生体機能メソッドをメソッドとして具備するクラスの情報を受け付ける受付部をさらに具備する請求項１または請求項２記載の生体シミュレーション装置。
【請求項４】
生体を構成する部品である２以上の生体部品および当該生体部品の階層構造を示す情報を有する生体モデル構造情報を格納している生体モデル構造情報格納部と、
生体の変数に関する情報である変数情報を格納している変数情報格納部と、
生体機能をシミュレートする演算式を生体機能毎に格納している演算式格納部と、
前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記２以上の生体部品の階層構造を構成する階層構造構成部と、
前記階層構造を構成した１以上の生体部品に対して、当該生体部品が実現する生体機能に対応する１以上の演算式を実行する実行部と、
前記実行部が実行した結果に基づいて、解析結果を出力する出力部を具備する生体シミュレーション装置。
【請求項５】
前記出力部は、
前記実行部が演算式を実行した後の、前記生体部品の状態を取得する状態取得手段と、
前記状態に基づいて、解析結果を出力する出力手段を具備する請求項４記載の生体シミュレーション装置。
【請求項６】
前記演算式格納部は、生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を１以上格納しており、
生体演算式情報を受け付ける受付部と、
前記受付部が受け付けた生体演算式情報を前記演算式格納部に蓄積する蓄積部をさらに具備する請求項４または請求項５記載の生体シミュレーション装置。
【請求項７】
コンピュータに、
生体機能をシミュレーションさせるプログラムであって、
生体を構成する部品であり、一のクラスに属する部品である生体インスタンスおよび当該生体インスタンスの階層構造を示す情報を有する生体モデル構造情報を格納しており、
生体の変数に関する情報である変数情報を処理するメソッドを保持しているクラスであるノードクラスと、
ノードクラスの継承先クラスであり、前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記生体インスタンスの階層構造を構成するメソッドを保持しているクラスである階層構造構成クラスと、
前記階層構造構成クラスの継承先クラスであり、かつ、生体機能をシミュレートするための演算式を示す生体機能メソッドをメソッドとして具備する反応クラスと、
前記階層構造構成クラスの継承先クラスであり、かつ、前記生体機能メソッドの実行結果を取得し、解析するメソッドを具備している解析クラスを保持し、
前記生体モデル構造情報を解釈し、前記階層構造構成クラスにおける階層構造に基づいて生体インスタンスをメモリ上にマッピングするステップと、
前記生体インスタンスが属するクラスのメソッドを実行するステップと、
当該メソッドの実行により前記生体インスタンスの状態を変化させ、当該変化した生体インスタンスの状態を前記解析クラスのメソッドに与えて解析結果を出力するステップを実行させるためのプログラム。
【請求項８】
前記メモリ上にマッピングされた１以上の生体インスタンスにアクセスし、所定の処理を行うメソッドを保持している訪問者クラスをさらに保持し、
前記解析クラスのメソッドは、前記訪問者クラスのメソッドの実行結果に基づいて解析結果を取得する請求項７記載のプログラム。
【請求項９】
コンピュータに、
前記反応クラスの子クラスであり、所定の生体機能メソッドをメソッドとして具備するクラスの情報を受け付ける受付ステップをさらに実行させる請求項７または請求項８記載のプログラム。
【請求項１０】
コンピュータに、
生体を構成する部品である２以上の生体部品および当該生体部品の階層構造を示す情報を有する生体モデル構造情報を格納しており、
生体の変数に関する情報である変数情報を格納しているおり、
生体機能をシミュレートする演算式を生体機能毎に格納しており、
格納されている生体モデル構造情報に基づいて、メモリ上に前記２以上の生体部品の階層構造を構成する階層構造構成ステップと、
前記階層構造を構成した１以上の生体部品に対して、当該生体部品が実現する生体機能に対応する１以上の演算式を実行する実行ステップと、
前記実行ステップで実行した結果に基づいて、解析結果を出力する出力ステップを実行させるためのプログラム。
【請求項１１】
前記出力ステップは、
前記実行ステップで演算式を実行した後の、前記生体部品の状態を取得する状態取得サブステップと、
前記状態に基づいて、解析結果を出力するサブステップを具備する請求項１０記載のプログラム。
【請求項１２】
コンピュータに、
生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を受け付ける受付ステップと、
前記受付ステップで受け付けた生体演算式情報を蓄積する蓄積ステップをさらに実行させるための請求項１０または請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生体機能の解明に対応して、機能追加やカスタマイズが極めて容易な構造を有する生体シミュレーション装置等に関するものである。
【背景技術】
【０００２】
従来の生体機能のシミュレーションを行うことができるシミュレーション装置としてＥ−Ｃｅｌｌ、Ｖｉｒｔｕａｌ  Ｃｅｌｌというシミュレーション装置がある（非特許文献１、非特許文献２参照）。Ｅ−Ｃｅｌｌは、細胞機能をシミュレートする生体シミュレーション装置である。
【０００３】
また、一般に、生体機能をコンピュータ上で再現、すなわち数理時空間に再現することを試みるとき、そこには異なる様々な概念に基づく計算式を統一して計算できる手法が必要となる。たとえば、臓器としてみた心臓の流体力学、細胞の電気的活動、細胞の収縮による力学的活動、もしくは細胞内の分子反応過程、質量作用の法則など非常に多くの様々な概念に基づく計算式が必要となる。
【非特許文献１】Ｍ．Ｔｏｍｉｔａ，  Ｋ．Ｈａｓｈｉｍｏｔｏ，  Ｋ．Ｔａｋａｈａｓｈｉ，  Ｔ．Ｓｈｉｍｉｚｕ，  Ｙ．Ｍａｔｓｕｚａｋｉ，  Ｆ．Ｍｉｙｏｓｈｉ，  Ｋ．Ｓａｉｔｏ，  Ｓ．Ｔａｎｉｄａ，  Ｋ．Ｙｕｇｉ，  Ｊ．Ｃ．Ｖｅｎｔｅｒ，  ａｎｄ  Ｃ．Ａ．Ｈｕｔｃｈｉｓｏｎ  ＩＩＩ，  「Ｅ−ＣＥＬＬ：ｓｏｆｔｗａｒｅ  ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  ｗｈｏｌｅ−ｃｅｌｌ  ｓｉｍｕｌａｔｉｏｎ」  ｉｎ  Ｂｉｏｉｎｆｏｒｍａｔｉｃｓ，  ｖｏｌ．１５，  ｎｏ．１，  ｐｐ．７２−８４，１９９９
【非特許文献２】Ｌ．Ｍ．Ｌｏｅｗ，ａｎｄ  Ｊ．Ｃ．Ｓｃｈａｆｆ：Ｔｈｅ  Ｖｉｒｔｕａｌ  Ｃｅｌｌ：ａ  ｓｏｆｔｗａｒｅ  ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ｃｅｌｌ  ｂｉｏｌｏｇｙ，  Ｔｒｅｎｄｓ  Ｂｉｏｔｅｃｈｎｏｌ，  １９−１０，  ４０１／４０６，２００１
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の生体シミュレーション装置において、演算式の数が増すにつれ、式の管理が困難であった。これは、従来の生体シミュレーション装置が、生体の構造、特性に基づいた数式管理構造を有していなかったからである。
【０００５】
また、従来の生体シミュレーション装置において、想定されていない計算原理に基づく演算式を組み込むことは、極めて困難であった。つまり、想定されていない計算原理に基づく演算式を組み込むためには、膨大な量のプログラムの記述が必要であった。
一方、医学生物学分野の研究は、今後も大きな発展が見込まれており、それらの研究成果（演算式など）を容易に追加できる仕組みが極めて重要である。
【課題を解決するための手段】
【０００６】
本第一の発明は、生体機能をシミュレートするメソッドである生体機能メソッドをオブジェクト指向に基づいて実行して生体機能をシミュレーションする生体シミュレーション装置であって、生体を構成する部品であり、一のクラスに属する部品である生体インスタンスおよび当該生体インスタンスの階層構造を示す情報を有する生体モデル構造情報を格納している生体モデル構造情報格納部と、生体の変数に関する情報である変数情報を処理するメソッドを保持しているクラスであるノードクラスと、ノードクラスの継承先クラスであり、前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記生体インスタンスの階層構造を構成するメソッドを具備しているクラスである階層構造構成クラスと、前記階層構造構成クラスの継承先クラスであり、かつ、生体機能をシミュレートするための演算式を示す生体機能メソッドをメソッドとして具備するクラスである反応クラスと、前記階層構造構成クラスの継承先クラスであり、かつ、前記生体機能メソッドの実行結果を取得し、解析するメソッドを具備している解析クラスを保持し、前記生体モデル構造情報を解釈し、前記階層構造構成クラスにおける階層構造に基づいて生体インスタンスをメモリ上にマッピングし、所定の順序で前記生体インスタンスが属するクラスのメソッドを実行することにより前記生体インスタンスの状態を変化させ、当該変化した生体インスタンスの状態を前記解析クラスのメソッドに与えて解析結果を出力することにより生体機能をシミュレーションする生体シミュレーション装置である。
【０００７】
また、第二の発明は、第一の発明に対して、前記メモリ上にマッピングされた１以上の生体インスタンスにアクセスし、所定の処理を行うメソッドを保持している訪問者クラスをさらに保持し、前記解析クラスのメソッドは、前記訪問者クラスのメソッドの実行結果に基づいて解析結果を取得する生体シミュレーション装置である。
【０００８】
また、第三の発明は、第一の発明、第二の発明に対して、前記反応クラスの継承先クラスであり、所定の生体機能メソッドをメソッドとして具備するクラスの情報を受け付ける受付部をさらに具備する生体シミュレーション装置である。
【０００９】
かかる第一、第二、第三の発明の構成により、新たな生体の機能を容易に組み込むことができる生体シミュレーション装置等を提供できる。また、オブジェクト指向モデルに従ったメソッド実行等により、さらに容易に、新たな生体の機能を組み込むことができる。したがって、医学生物学分野の研究の発展により解明された生体の機能を容易にシミュレーションできる。
【００１０】
また、第四の発明は、生体を構成する部品である２以上の生体部品および当該生体部品の階層構造を示す情報を有する生体モデル構造情報を格納している生体モデル構造情報格納部と、生体の変数に関する情報である変数情報を格納している変数情報格納部と、生体機能をシミュレートする演算式を生体機能毎に格納している演算式格納部と、前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記２以上の生体部品の階層構造を構成する階層構造構成部と、前記階層構造を構成した１以上の生体部品に対して、当該生体部品が実現する生体機能に対応する１以上の演算式を実行する実行部と、前記実行部が実行した結果に基づいて、解析結果を出力する出力部を具備する生体シミュレーション装置である。
【００１１】
また、第五の発明は、第四の発明に対して、前記出力部は、前記実行部が演算式を実行した後の、前記生体部品の状態を取得する状態取得手段と、前記状態に基づいて、解析結果を出力する出力手段を具備する生体シミュレーション装置である。
【００１２】
さらに、第六の発明は、第四、第五の発明に対して、前記演算式格納部は、生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を１以上格納しており、生体演算式情報を受け付ける受付部と、前記受付部が受け付けた生体演算式情報を前記演算式格納部に蓄積する蓄積部をさらに具備する生体シミュレーション装置である。
【００１３】
かかる第四、第五、第六の発明の構成により、新たな生体の機能を容易に組み込むことができる生体シミュレーション装置等を提供できる。したがって、医学生物学分野の研究の発展により解明された生体の機能を容易にシミュレーションできる。
【発明の効果】
【００１４】
本発明は、医学生物学分野の研究の発展により解明された生体の機能等を容易に組み込むことができる生体シミュレーション装置等を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、生体シミュレーション装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００１６】
図１は、本実施の形態における生体シミュレーション装置の基本クラス階層図である。図１は、ＵＭＬという書式で記述したクラス図である。本生体シミュレーション装置は、オブジェクト指向に基づく構造を有している。つまり、本生体シミュレーション装置は、クラスと、クラスに属するインスタンスを有する。また、クラスは、実行可能な関数（以下、適宜「メソッド」という。）を保持している。インスタンスは、ここでは、生体を構成する部品であり、一のクラスに属する部品である生体インスタンスである。生体インスタンスの例として、細胞外液、細胞、Ｎａチャネル、Ｋチャネルなどがある。細胞外液は、細胞の外側にある液を示すインスタンスである。細胞は、細胞を示すインスタンスである。Ｎａチャネル、Ｋチャネルは、それぞれ、細胞が有するＮａチャネル、Ｋチャネルを示すインスタンスである。
また、図１において、ノードクラスは最上位クラスである。また、ノードクラスの継承先クラスが階層構造クラスである。さらに、階層構造クラスの継承先クラスが、解析クラスと反応クラスである。
【００１７】
ノードクラスは、生体の変数に関する情報である変数情報を処理するメソッドを保持しているクラスである。ノードクラスは、Ｋ（カリウムイオン）、Ｎａ（ナトリウムイオン）、Ｖｍ（膜電位）などのインスタンスが属し得る。また、変数情報を処理するメソッドとして、インスタンスの値を取得するメソッド（ｇｅｔＶａｌｕｅ（））や、インスタンス（変数）に値を設定するメソッド（ｓｅｔＶａｌｕｅ（ｖａｌｕｅ））などがある。「ｓｅｔＶａｌｕｅ（ｖａｌｕｅ）」は、値「ｖａｌｕｅ」をインスタンスに設定するメソッドである。
ノードクラスの変数は、シミュレーション時に反応クラス及び解析クラスに属する生体インスタンスから読み出され、生体インスタンスに属する計算メソッドから値を書き込まれるのに使われる。
【００１８】
階層構造クラスは、ノードクラスの継承先クラスであり、生体モデル構造情報に基づいて、メモリ上に生体インスタンスの階層構造を構成するメソッドを保持しているクラスである。具体的には、階層構造クラスのメソッドは、以下のような処理を行う。つまり、生体モデル構造情報は、生体を構成する部品であり、一のクラスに属する部品である生体インスタンスおよび当該生体インスタンスの階層構造を示す情報を有する情報である。生体モデル構造情報は、例えば、ファイルである。また、生体モデル構造情報は、例えば、ＸＭＬで記述されている。なお、階層構造を記述するためにＸＭＬは好適である。階層構造クラスのメソッドは、生体モデル構造情報が有するインスタンスの階層構造に対応したメモリ構造を構成するメソッド等である。さらに具体的には、階層構造を構成する親のインスタンスのポインタ領域を、メモリ上に確保（ａｌｌｏｃ）するメソッド等である。この確保したポインタ領域には、子のインスタンスの実体が存在する領域のアドレスが格納される。
【００１９】
反応クラスは、階層構造構成クラスの継承先クラスであり、かつ、生体機能をシミュレートするための演算式を示す生体機能メソッドをメソッドとして具備するクラスを継承先クラスとして保持し、当該生体機能メソッドを実行するメソッドを保持しているクラスである。つまり、生体シミュレーションを行うためには、反応クラスの継承先クラスとして、各生体機能のシミュレーションに必要な生体機能メソッドを保持しているクラスが定義されている必要がある。
【００２０】
解析クラスは、階層構造構成クラスの継承先クラスであり、かつ、生体機能メソッドの実行結果を取得し、解析するメソッドを保持している。生体機能メソッドの実行結果とは、生体機能メソッドの実行により、変化したインスタンスの状態（例えば、膜電位の値や、Ｋ濃度など）である。解析クラスにおける、結果を出力するメソッドは、どのような態様で結果を出力しても良い。例えば、あるメソッドは、膜電位の変化をグラフで出力する。また、他のメソッドは、カリウムイオンの濃度の変化を数値で出力する。さらに、他のメソッドは、心臓の動きを視覚的に出力する。なお、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。
【００２１】
生体モデル構造情報格納部は、生体を構成する部品であり、一のクラスに属する部品である生体インスタンスおよび当該生体インスタンスの階層構造を示す情報を有する生体モデル構造情報を格納している。生体モデル構造情報は、上述したように、例えば、ＸＭＬで記述されたファイルである。生体モデル構造情報格納部は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、生体モデル構造情報は、外部から本生体シミュレーション装置に供給される（通信や手入力等により）情報でも良い。
【００２２】
また、本シミュレーション装置は、以下の実行部を具備する。実行部は、生体モデル構造情報格納部の生体モデル構造情報を解釈し、階層構造構成クラスにおける階層構造に基づいて生体インスタンスをメモリ上にマッピングし、所定の順序（予め決められていても良いし、計算式を解釈して決める順序でも良い）で生体インスタンスが属するクラスのメソッドを実行することにより記生体インスタンスの状態を変化させ、当該変化した生体インスタンスの状態を解析クラスのメソッドに与えて解析結果を出力することにより生体機能をシミュレーションする。生体インスタンスが属するクラスのメソッドは、例えば、反応クラスの継承先クラスのメソッドであり、所定の生体機能を実現するメソッドである生体機能メソッドである。実行部は、通常、ＭＰＵやメモリ等から実現され得る。実行部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
以下、本生体シミュレーション装置の動作について図２から図４のフローチャートを用いて説明する。
（ステップＳ２０１）格納されている生体モデル構造情報を読み出す。
【００２３】
（ステップＳ２０２）ステップＳ２０１で読み出した生体モデル構造情報を解釈し、当該生体モデル構造情報に基づいて、インスタンスの階層構造を構築する。かかる階層構造のデータは、メモリ上に置かれている。なお、インスタンスの階層構造を構築する処理については、図３のフローチャートを用いて詳細に説明する。
【００２４】
（ステップＳ２０３）全ての反応クラスに属する生体機能インスタンスの処理を行う。インスタンスの処理とは、インスタンスが属するクラスおよびその上位クラスの生体機能メソッドをインスタンスに対して実行することである。かかるインスタンスの処理により、生体機能がシミュレーションされる。微分方程式で記述された生体機能計算式については積分計算を行う。一インスタンスの処理の詳細は、図４のフローチャートを用いて説明する。
（ステップＳ２０４）全ての解析クラスに属するインスタンスの処理の結果を出力する。かかる出力により、生体機能のシミュレーション結果が得られる。
【００２５】
（ステップＳ２０５）処理を終了するか否かを判断する。処理を終了しないのであればステップＳ２０３に戻る。処理を終了するか否かは、シミュレーションを開始してから所定の時間が経過したことを検出することにより判断しても良いし、終了指示を受け付けたことを検知することにより判断しても良い。その他、終了のトリガーは問わない。なお、所定の時間の情報は、例えば、生体モデル構造情報に含まれている。
次に、インスタンスの階層構造を構築する処理について、図３のフローチャートを用いて説明する。
（ステップＳ３０１）カウンタｉに１を代入する。
【００２６】
（ステップＳ３０２）生体モデル構造情報（ここでは、例えば、生体モデル構造情報はファイルであり、各行にインスタンスの情報の定義が存在する、とする。）のｉ番目の行の定義がインスタンスの情報の定義であるか否かを判断する。インスタンスの情報の定義であればステップＳ３０３に行き、インスタンスの情報の定義でなければステップＳ３０８に飛ぶ。なお、ｉ番目の行の定義がインスタンスの情報の定義でない場合、当該定義に対応する別の処理を行っても良い。
【００２７】
（ステップＳ３０３）ｉ番目の行の定義の中の、インスタンスに関する情報であるインスタンス情報を取得する。インスタンス情報とは、例えば、インスタンスの名称、クラス名である。また、インスタンス情報とは、例えば、インスタンスが変数である場合には、変数の値、単位である。
（ステップＳ３０４）ステップＳ３０３で取得したインスタンス情報を設定する。インスタンス情報の設定とは、メモリ上にインスタンス情報を書き込むことである。
【００２８】
（ステップＳ３０５）ｉ行目の行に対応するインスタンスに親のインスタンスが存在するか否かを判断する。親のインスタンスが存在すればステップＳ３０６に行き、親のインスタンスが存在しなければステップＳ３０８に飛ぶ。
（ステップＳ３０６）親子関係を設定するためのリンクの領域（子インスタンスの領域）をメモリ上に確保する。
（ステップＳ３０７）ステップＳ３０６で確保したメモリ上に、親のインスタンスが定義されているメモリ上のアドレスを書き込む。このアドレスの書き込み処理により、親子関係を規定するリンクが設定される。
（ステップＳ３０８）生体モデル構造情報のすべての行の処理が終了したか否かを判断する。終了していなければステップＳ３０９に行く。終了していれば、上位関数にリターンする。
（ステップＳ３０９）カウンタｉを１、インクリメントする。ステップＳ３０２に戻る。
図４は、一つのインスタンスの処理の詳細について説明するフローチャートである。
（ステップＳ４０１）インスタンスが属するクラス名を取得する。
（ステップＳ４０２）カウンタｉに１を代入する。
【００２９】
（ステップＳ４０３）ステップＳ４０１で取得したクラス名で特定されるクラス、および当該クラスより上位のクラスに、ｉ番目のメソッドが存在するか否かを判断する。ｉ番目のメソッドが存在すればステップＳ４０４に行き、ｉ番目のメソッドが存在しなければ上位関数にリターンする。
（ステップＳ４０４）本インスタンスに対して、ｉ番目のメソッドを実行する。
（ステップＳ４０５）カウンタｉを１、インクリメントする。ステップＳ４０３に戻る。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。
図５は、生体モデル構造情報の例を示すデータである。本生体モデル構造情報は、ここでは、ＸＭＬで記述されており、一ファイルで構成されている。
【００３０】
また、図６は、図１で述べた基本クラス階層図に対して、反応クラスの継承先クラスとしていくつかのクラスの定義を追加した、シミュレーション対象のクラス階層図である。かかるクラスの定義は、通常、受付部が受け付け、生体シミュレーション装置に蓄積される。なお、図６も図１と同様、ＵＭＬという書式で記述したクラス図である。
【００３１】
本クラス階層図において、図６の各ボックスは、クラス名（ボックスの上段）とクラスに属するメソッド（ボックスの下段）を記載している。また、反応クラスの下位クラスとして定義されたクラスは、生体機能をシミュレートするための演算式を示す生体機能メソッドを１以上保持している。セルクラスは、細胞の振る舞いを示す演算式（通常、微分方程式）を示すメソッドを保持している。また、チャネルクラスは、チャネル共通の振る舞いを示す演算式を（通常、微分方程式）を示すメソッドを保持している。Ｎａチャネル、Ｋチャネルは、ＮａチャネルまたはＫチャネル特有の振る舞いを示す演算式を（通常、微分方程式）を示すメソッドを保持している。
かかる状況において、生体シミュレーション装置は、シミュレーションを開始する、とする。なお、シミュレーションを開始するトリガーは、ユーザからの指示や外部装置からの指示等、問わない。
【００３２】
次に、生体シミュレーション装置は、図５の生体モデル構造情報を読み込む。そして、生体シミュレーション装置は、生体モデル構造情報を解釈する。なお、生体モデル構造情報はＸＭＬファイルであるので、ＸＭＬのパーサの技術により生体モデル構造情報の解釈は可能である。
【００３３】
そして、生体シミュレーション装置は、図７に示すインスタンスの階層構造を得る。図７において、インスタンス「細胞外液」は、変数「Ｎａ」「Ｋ」およびインスタンス「細胞」を所有（集約）する。また、インスタンス「細胞」は、変数「Ｎａ」「Ｋ」「Ｖｍ」およびインスタンス「Ｎａチャネル」「Ｋチャネル」を所有する。インスタンスは、所有（集約）関係により、階層構造を構成する。
また、図７において、破線の矢印は、「参照」を示す。つまり、例えば、インスタンス「Ｎａチャネル」は、変数「Ｎａ」「Ｖｍ」を参照する。なお、図７は、ＵＭＬという書式で記述したインスタンス図である。
【００３４】
次に、生体シミュレーション装置は、４つのインスタンス「細胞外液」、「細胞」、「Ｎａチャネル」、「Ｋチャネル」を処理する。処理する順序は、例えば、階層の深いインスタンスからである。つまり、生体シミュレーション装置は、「Ｎａチャネル」、「Ｋチャネル」、「細胞」、「細胞外液」の順でインスタンスを処理する。このように、階層構造において階層の深いインスタンスから処理するのは、個々の機能要素の振る舞いの集合として全体の振る舞いを表現するのに都合がよいからである。インスタンス処理は、上述したように、当該インスタンスが属するクラスおよび上位のクラスのメソッドを実行することである。
そして、生体シミュレーション装置は、メソッドの実行結果を取得し、出力する。かかる出力処理は、解析クラスのメソッドにより実現される。
その出力の一部を図８に示す。図８は、インスタンス「細胞」が所有している「Ｖｍ」（膜電位）の値である。
【００３５】
以上、本実施の形態によれば、新たな生体の機能を容易に組み込むことができる生体シミュレーション装置等を提供できる。したがって、医学生物学分野の研究の発展により解明された生体の機能を容易にシミュレーションできる。具体的には、反応クラスの下位クラスとして、生体の機能毎にクラスを設け、当該クラスのメソッドとして、生体機能をシミュレーションする演算式を定義するだけで、新たな生体の機能をシミュレーションできる。
なお、本実施の形態の具体例によれば、解析クラスのメソッドは、解析結果をグラフ出力したが、アニメーション等による視覚的な出力等を行なうものでも良いことは言うまでもない。
【００３６】
また、本実施の形態において、メモリ上にマッピングされた１以上の生体インスタンスにアクセスし、所定の処理を行うメソッドを保持している訪問者クラスをさらに保持し、解析クラスのメソッドは、訪問者クラスのメソッドの実行結果に基づいて解析結果を取得するようなクラス階層でも良い。かかるクラス階層図を図９に示す。なお、図９も図１等と同様、ＵＭＬという書式で記述したクラス図である。
【００３７】
また、本実施の形態において、生体シミュレーション装置は、反応クラスの継承先クラスであり、所定の生体機能メソッドをメソッドとして具備するクラスの情報を受け付ける受付部をさらに具備する構成でも良い。かかる場合、新たなクラスの情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。なお、新たなクラスの情報とは、クラス名、クラスのメソッド等である。
【００３８】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、生体機能をシミュレーションさせるプログラムであって、生体を構成する部品であり、一のクラスに属する部品である生体インスタンスおよび当該生体インスタンスの階層構造を示す情報を有する生体モデル構造情報を格納しており、生体の変数に関する情報である変数情報を処理するメソッドを保持しているクラスであるノードクラスと、ノードクラスの継承先クラスであり、前記生体モデル構造情報格納部の生体モデル構造情報に基づいて、メモリ上に前記生体インスタンスの階層構造を構成するメソッドを保持しているクラスである階層構造構成クラスと、前記階層構造構成クラスの継承先クラスであり、かつ、生体機能をシミュレートするための演算式を示す生体機能メソッドをメソッドとして具備するクラスを継承先クラスとして保持し、当該生体機能メソッドを実行するメソッドを保持しているクラスである反応クラスと、前記階層構造構成クラスの継承先クラスであり、かつ、前記生体機能メソッドの実行結果を取得し、出力するメソッドを保持している解析クラスを保持し、前記生体モデル構造情報を解釈し、前記階層構造構成クラスにおける階層構造に基づいて生体インスタンスをメモリ上にマッピングするステップと、前記生体インスタンスが属するクラスのメソッドを実行するステップと、当該メソッドの実行により前記生体インスタンスの状態を変化させ、当該変化した生体インスタンスの状態を前記解析クラスのメソッドに与えて解析結果を出力するステップを実行させるためのプログラム、である。
また、上記プログラムは、前記メモリ上にマッピングされた１以上の生体インスタンスにアクセスし、所定の処理を行うメソッドを保持している訪問者クラスをさらに保持し、
前記解析クラスのメソッドは、前記訪問者クラスのメソッドの実行結果に基づいて解析結果を取得するものであっても良い。
また、上記プログラムは、コンピュータに、前記反応クラスの継承先クラスであり、所定の生体機能メソッドをメソッドとして具備するクラスの情報を受け付ける受付ステップをさらに実行させても良い。
（実施の形態２）
【００３９】
本実施の形態において、動作原理が、必ずしもオブジェクト指向に基づかない生体シミュレーション装置について説明する。本実施の形態において、生体シミュレーション装置の動作結果は、実施の形態１の生体シミュレーション装置と同様である。
【００４０】
図１０は、本生体シミュレーション装置のブロック図を示す。本生体シミュレーション装置は、生体モデル構造情報格納部１０１、変数情報格納部１０２、演算式格納部１０３、階層構造構成部１０４、実行部１０５、出力部１０６、受付部１０７、蓄積部１０８を具備する。出力部１０６は、状態取得手段１０６１、出力手段１０６２を具備する。
【００４１】
生体モデル構造情報格納部１０１は、生体を構成する部品である２以上の生体部品および当該生体部品の階層構造を示す情報を有する生体モデル構造情報を格納している。生体モデル構造情報は、上述したように、例えば、ＸＭＬで記述されたファイルである。生体部品とは、例えば、細胞やＮａチャネル等である。生体モデル構造情報格納部１０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４２】
変数情報格納部１０２は、生体の変数に関する情報である変数情報を格納している。変数とは、ＮａイオンやＫイオンや膜電位等である。変数情報は、例えば、変数名や変数に設定されている値などを有する。変数情報格納部１０２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４３】
演算式格納部１０３は、生体機能をシミュレートする演算式を生体機能毎に格納している。演算式は、主として微分方程式である。演算式格納部１０３は、通常、生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を１以上格納している。生体機能識別子は、例えば、「分子機能」であり。演算式は、生体内の分子の機能を求める式である。かかる演算式は、通常、医学生物学分野の研究の発展により解明された式である。演算式格納部１０３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４４】
階層構造構成部１０４は、生体モデル構造情報格納部１０１の生体モデル構造情報に基づいて、メモリ上に２以上の生体部品の階層構造を構成する。生体モデル構造情報は、生体部品の階層構造を定義しており、階層構造構成部１０４は、かかる生体モデル構造情報に基づいて生体部品の階層関係をメモリ上に構成する。具体的には、階層構造構成部１０４は、例えば、親子の生体部品間連結するリンクのためのポインタ領域のメモリ確保の処理を行う。階層構造構成部１０４は、通常、ＭＰＵやメモリ等から実現され得る。階層構造構成部１０４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４５】
実行部１０５は、階層構造を有する１以上の生体部品に対して、当該生体部品が実現する生体機能に対応する１以上の演算式を実行する。通常、生体部品は、その属性値として生体機能識別子を有する。実行部１０５は、当該生体機能識別子に対応する演算式を演算式格納部１０３から取得する。そして、実行部１０５は、取得した演算式を実行する。
【００４６】
出力部１０６は、実行部１０５が実行した結果に基づいて、解析結果を出力する。解析結果とは、実行部１０５が演算式を実行した結果でも良いし、演算式の実行結果の良否（健康か否かなど）等でも良い。また、解析結果の出力態様は問わない。出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。
【００４７】
受付部１０７は、生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を受け付ける。生体演算式情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部１０７は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。なお、受付部１０７は、生体モデル構造情報をも受け付けても良い。
【００４８】
蓄積部１０８は、受付部１０７が受け付けた生体演算式情報を演算式格納部１０３に蓄積する。蓄積部１０８は、通常、ＭＰＵやメモリ等から実現され得る。蓄積部１０８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。なお、蓄積部１０８は、受付部１０７が受け付けた生体モデル構造情報を生体モデル構造情報格納部１０１に蓄積しても良い。
状態取得手段１０６１は、実行部１０５が演算式を実行した後の、生体部品の状態を取得する。生体部品の状態とは、生体部品が有する変数の値等である。
【００４９】
出力手段１０６２は、状態取得手段１０６１が取得した状態に基づいて、解析結果を出力する。出力の態様は問わない。例えば、出力手段１０６２は、膜電位の変化をグラフで出力する。また、出力手段１０６２は、カリウムイオンの濃度の変化を数値で出力する。さらに、出力手段１０６２は、心臓の動きを視覚的に出力する。なお、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信等を含む概念である。
以下、本生体シミュレーション装置がシミュレーションを行う際の動作について図１１から図１３のフローチャートを用いて説明する。
（ステップＳ１１０１）階層構造構成部１０４は、生体モデル構造情報格納部１０１に格納されている生体モデル構造情報を読み出す。
【００５０】
（ステップＳ１１０２）階層構造構成部１０４は、ステップＳ１１０１で読み出した生体モデル構造情報を解釈し、当該生体モデル構造情報に基づいて、生体部品の階層構造を構築する。かかる階層構造のデータは、メモリ上に置かれている。なお、生体部品の階層構造を構築する処理については、図１２のフローチャートを用いて詳細に説明する。
（ステップＳ１１０３）カウンタｉに生体部品の数を代入し、カウンタｊに１を代入する。なお、生体部品の数は、ステップＳ１１０２において生体モデル構造情報を解釈した際に取得され得る。
【００５１】
（ステップＳ１１０４）ｊ番目の生体部品の処理を行う。生体部品の処理とは、生体部品の属性値である生体機能識別子に対応する生体機能のシミュレーションを行う演算式を生体部品に対して実行することである。かかる生体部品の処理により、生体機能がシミュレーションされる。生体部品の処理の詳細は、図１３のフローチャートを用いて説明する。なお、演算式を具備しない生体部品はかかる処理の対象にはならない。
【００５２】
（ステップＳ１１０５）出力部１０６は、ｊ番目の生体部の処理の結果を出力する。かかる出力により、生体機能のシミュレーション結果が得られる。かかる出力の際に、状態取得手段１０６１が生体部品の状態を取得し、出力手段１０６２が、当該状態に基づいて、解析結果を出力する。
【００５３】
（ステップＳ１１０６）実行部１０５は、処理を終了するか否かを判断する。処理を終了しないのであればステップＳ１１０７に行く。処理を終了するか否かは、所定の数のｊであるか否かにより判断しても良いし、シミュレーションを開始してから所定の時間が経過したことを検出することにより判断しても良いし、終了指示を受け付けたことを検知することにより判断しても良い。その他、終了のトリガーは問わない。
（ステップＳ１１０７）実行部１０５は、ｉとｊが等しいか否かを判断する。ｉとｊが等しければステップＳ１１０８に行き、ｉとｊが等しくなければステップＳ１１０９に飛ぶ。
（ステップＳ１１０８）実行部１０５は、ｊに１を代入する。ステップＳ１１０４に戻る。
（ステップＳ１１０９）実行部１０５は、ｊを１、インクリメントする。ステップＳ１１０４に戻る。
次に、生体部品の階層構造を構築する処理について、図１２のフローチャートを用いて説明する。
（ステップＳ１２０１）階層構造構成部１０４は、カウンタｉに１を代入する。
【００５４】
（ステップＳ１２０２）階層構造構成部１０４は、生体モデル構造情報（ここでは、例えば、ファイルである）のｉ番目の行の定義が生体部品の情報の定義であるか否かを判断する。生体部品の情報の定義であればステップＳ１２０３に行き、生体部品の情報の定義でなければステップＳ１２０８に飛ぶ。なお、ｉ番目の行の定義が生体部品の情報の定義でない場合、当該定義に対応する別の処理を行っても良い。
【００５５】
（ステップＳ１２０３）階層構造構成部１０４は、ｉ番目の行の定義の中の、生体部品に関する情報である生体部品情報を取得する。生体部品情報とは、例えば、生体部品の名称、生体部品の機能を識別する生体機能識別子等である。また、生体部品情報とは、例えば、生体部品が変数である場合には、変数の値である。
（ステップＳ１２０４）階層構造構成部１０４は、ステップＳ１２０３で取得した生体部品情報を設定する。生体部品情報の設定とは、メモリ上に生体部品情報を書き込むことである。
【００５６】
（ステップＳ１２０５）階層構造構成部１０４は、ｉ行目の行に対応する生体部品に親の生体部品が存在するか否かを判断する。親の生体部品が存在すればステップＳ１２０６に行き、親の生体部品が存在しなければステップＳ１２０８に飛ぶ。
（ステップＳ１２０６）階層構造構成部１０４は、親子関係を設定するための領域（リンクの領域でも、配列の領域等でも良い。）をメモリ上に確保する。
【００５７】
（ステップＳ１２０７）階層構造構成部１０４は、生体部品の親子関係を設定する。具体的には、階層構造構成部１０４は、例えば、ステップＳ１２０６で確保したメモリ上に、親の生体部品が定義されているメモリ上のアドレスを書き込む。このアドレスの書き込み処理により、親子関係を規定するリンクが設定される。
（ステップＳ１２０８）階層構造構成部１０４は、生体モデル構造情報のすべての行の処理が終了したか否かを判断する。終了していなければステップＳ１２０９に行く。終了していれば、上位関数にリターンする。
（ステップＳ１２０９）階層構造構成部１０４は、カウンタｉを１、インクリメントする。ステップＳ１２０２に戻る。
図１３は、生体部品の処理の詳細について説明するフローチャートである。
（ステップＳ１３０１）実行部１０５は、生体部品の属性値である生体機能識別子を取得する。
（ステップＳ１３０２）実行部１０５は、カウンタｉに１を代入する。
【００５８】
（ステップＳ１３０３）実行部１０５は、ステップＳ１３０１で取得した生体機能識別子に対応する演算式の中で、ｉ番目の演算式が存在するか否かを判断する。ｉ番目の演算式が存在すればステップＳ１３０４に行き、ｉ番目の演算式が存在しなければ上位関数にリターンする。
（ステップＳ１３０４）実行部１０５は、本生体部品に対して、ｉ番目の演算式を実行する。
（ステップＳ１３０５）実行部１０５は、カウンタｉを１、インクリメントする。
以下、本実施の形態における生体シミュレーション装置の具体的な動作について説明する。
【００５９】
図５は、生体モデル構造情報の例を示すデータである。図１４は、演算式格納部１０３が格納している演算式管理表である。演算式管理表は、１以上の生体演算式情報をレコードとして有する。生体演算式情報は、生体機能識別子と１以上の演算式を有する。
かかる状況において、生体シミュレーション装置は、シミュレーションを開始する、とする。なお、シミュレーションを開始するトリガーは、ユーザからの指示や外部装置からの指示等、問わない。
次に、生体シミュレーション装置は、図５の生体モデル構造情報を読み込む。そして、生体シミュレーション装置は、生体モデル構造情報を解釈する。
そして、生体シミュレーション装置は、図７に示す生体部品の階層構造を得る。
【００６０】
次に、生体シミュレーション装置は、４つの生体部品「細胞外液」、「細胞」、「Ｎａチャネル」、「Ｋチャネル」を処理する。処理する順序は、例えば、階層の深い生体部品からである。つまり、生体シミュレーション装置は、「Ｎａチャネル」、「Ｋチャネル」、「細胞」、「細胞外液」の順で生体部品を処理する。このように、階層構造において階層の深い生体部品から処理するのは、個々の機能要素の振る舞いの集合として全体の振る舞いを表現するのに都合がよいからである。生体部品処理は、上述したように、当該生体部品の属性値である生体機能識別子と対になる演算式をすべて実行することである。
そして、生体シミュレーション装置は、演算式の実行結果を取得し、出力する。
その出力の一部を図８に示す。図８は、インスタンス「細胞」が所有している「Ｖｍ」（膜電位）の値である。
【００６１】
以上、本実施の形態によれば、新たな生体の機能を容易に組み込むことができる生体シミュレーション装置等を提供できる。したがって、医学生物学分野の研究の発展により解明された生体の機能を容易にシミュレーションできる。
【００６２】
なお、本実施の形態における生体シミュレーション装置は、実施の形態１におけるオブジェクト指向に基づいて構成できることは言うまでもない。かかる場合、変数情報格納部１０２は実施の形態１のノードクラスに対応し、演算式格納部１０３は反応クラスを含み、階層構造構成部１０４は階層構造クラスに対応し、出力部１０６は解析クラスに対応する。
また、生体シミュレーション装置の出力例は、一つのグラフのみに限らず、例えば、図１５に示すような出力でも良いことは言うまでもない。
【００６３】
また、本実施の形態における生体シミュレーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、生体を構成する部品である２以上の生体部品および当該生体部品の階層構造を示す情報を有する生体モデル構造情報を格納しており、生体の変数に関する情報である変数情報を格納しており、生体機能をシミュレートする演算式を生体機能毎に格納しており、格納されている生体モデル構造情報に基づいて、メモリ上に前記２以上の生体部品の階層構造を構成する階層構造構成ステップと、前記階層構造を構成した１以上の生体部品に対して、当該生体部品が実現する生体機能に対応する１以上の演算式を実行する実行ステップと、前記実行ステップで実行した結果に基づいて、解析結果を出力する出力ステップを実行させるためのプログラム、である。
【００６４】
また、上記プログラムにおいて、前記出力ステップは、前記実行ステップで演算式を実行した後の、前記生体部品の状態を取得する状態取得サブステップと、前記状態に基づいて、解析結果を出力するサブステップを具備しても良い。
【００６５】
さらに、上記プログラムにおいて、コンピュータに、生体機能を識別する生体機能識別子と１以上の演算式を有する生体演算式情報を受け付ける受付ステップと、前記受付ステップで受け付けた生体演算式情報を蓄積する蓄積ステップをさらに実行させるためのプログラム、である。
なお、本明細書で述べたプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【００６６】
また、上記実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００６７】
以上のように、本発明にかかる生体シミュレーション装置は、新たな生体の機能を容易に組み込むことができるという効果を有し、生体シミュレーション装置として有用である。
【図面の簡単な説明】
【００６８】
【図１】実施の形態１の生体シミュレーション装置の基本クラス階層図
【図２】同生体シミュレーション装置の動作について説明するフローチャート
【図３】同生体シミュレーション装置の動作について説明するフローチャート
【図４】同生体シミュレーション装置の動作について説明するフローチャート
【図５】同生体モデル構造情報の例を示す図
【図６】同シミュレーション対象のクラス階層図
【図７】同インスタンスの階層構造を示す図
【図８】同生体シミュレーション装置の出力例を示す図
【図９】同生体シミュレーション装置のクラス階層図
【図１０】実施の形態２の生体シミュレーション装置のブロック図
【図１１】同生体シミュレーション装置の動作について説明するフローチャート
【図１２】同生体シミュレーション装置の動作について説明するフローチャート
【図１３】同生体シミュレーション装置の動作について説明するフローチャート
【図１４】同演算式管理表を示す図
【図１５】同生体シミュレーション装置の出力例を示す図
【符号の説明】
【００６９】
１０１  生体モデル構造情報格納部
１０２  変数情報格納部
１０３  演算式格納部
１０４  階層構造構成部
１０５  実行部
１０６  出力部
１０７  受付部
１０８  蓄積部
１０６１  状態取得手段
１０６２  出力手段
【図１】
2007334377.tif 000003
【図２】
2007334377.tif 000004
【図３】
2007334377.tif 000005
【図４】
2007334377.tif 000006
【図５】
2007334377.tif 000007
【図６】
2007334377.tif 000008
【図７】
2007334377.tif 000009
【図８】
2007334377.tif 000010
【図９】
2007334377.tif 000011
【図１０】
2007334377.tif 000012
【図１１】
2007334377.tif 000013
【図１２】
2007334377.tif 000014
【図１３】
2007334377.tif 000015
【図１４】
2007334377.tif 000016
【図１５】
2007334377.tif 000017