(57)【要約】【課題】ランダム木の生成の負担を軽減した遺伝子進化シミュレータを提供する。【解決手段】ＣＰＵ１１が所定の初期化ルールに従い遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成し、重複した選択を許しながら第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、その塩基配列データの各々に対し、その塩基配列データを親基配列データとして、当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずに、親塩基配列データに対する子塩基配列データを生成して、所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成し、これとともに塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供される遺伝子進化シミュレータである。【選択図】　　　　図１
2004094456.tif 000002
【特許請求の範囲】
【請求項１】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、
重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、
選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、
当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、
前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手段と、
を含み、
前記世代更新手段における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることを特徴とする遺伝子進化シミュレータ。
【請求項２】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、
重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、
選択された塩基配列データの各々を親基配列データとして所定の処理を実行し、各親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手段と、
を含み、
前記世代更新手段における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることを特徴とする遺伝子進化シミュレータ。
【請求項３】
請求項１または２に記載の遺伝子進化シミュレータにおいて、さらに、
所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手段と、
前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手段と、
を含むことを特徴とする遺伝子進化シミュレータ。
【請求項４】
請求項１から３のいずれか一項に記載の遺伝子進化シミュレータにおいて、
前記置換処理において用いられる前記所定の確率は、世代に応じて変化することを特徴とする遺伝子進化シミュレータ。
【請求項５】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、
第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する手段と、
所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手段と、
前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手段と、
を含むことを特徴とする遺伝子進化シミュレータ。
【請求項６】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化工程と、
重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、
選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、
当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、
前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新工程と、
を含み、
前記世代更新工程における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることを特徴とする遺伝子進化のシミュレーション方法。
【請求項７】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化工程と、
第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する工程と、
所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する工程と、
前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する工程と、
を含むことを特徴とする遺伝子進化のシミュレーション方法。
【請求項８】
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手順と、
重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、
選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、
当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、
前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手順と、
前記世代更新工程における塩基配列データの親子関係の情報を記録させる手順と、
をコンピュータに実行させ、
少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることを特徴とする遺伝子進化シミュレーションプログラム。
【請求項９】
コンピュータに、
所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手順と、
第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する手順と、
所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手順と、
前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手順と、
を実行させることを特徴とする遺伝子進化シミュレーションプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを用いて遺伝子進化のシミュレーションを行う遺伝子進化シミュレータ及びシミュレーション方法に関する。
【０００２】
【従来の技術】
生物学の遺伝子進化については昨今までは理論的に考察する以外に研究の方法がないと考えられていたが、近年、コンピュータ技術が発達し、遺伝子進化に関する研究・実験の一部としてコンピュータを利用したシミュレーションという手法が開発されてきている。
【０００３】
一般的に生物では、遺伝子は、ＤＮＡ（ｄｅｏｘｙｒｉｂｏｎｕｃｌｅｉｃ　ａｃｉｄ）と呼ばれる核酸から成り立っている。このＤＮＡは、互いに鎖状に結合した塩基の列を２列含み、両鎖上の対応する位置にある塩基の対は、ワトソン−クリック則に従って互いに弱い水素結合をしている。この塩基対は、通常の動物では億の単位で存在している。
【０００４】
コンピュータを利用したシミュレーションでは、一方の鎖上の各塩基（ＤＮＡにおいてはアデニン（Ａ），チミン（Ｔ），グアニン（Ｇ），シトシン（Ｃ）の４種類）をそれぞれ符号化した塩基配列データとして扱う。例えば、アデニン−アデニン−チミン−チミンという塩基配列については、「ＡＡＴＴ」といった文字符号によって表す。この塩基配列データを実際の動物の遺伝子長と同等とすると、シミュレーションに用いる計算機資源が膨大となるので、塩基配列データは１００万以下程度の長さとするのが一般的である。
【０００５】
遺伝子進化のシミュレーションでは、塩基配列データに対して所定の処理を実行して次世代の塩基配列データを生成することで、進化を模式的に表現する。具体的には塩基配列データについて、その塩基配列データ上の塩基データの各々について、所定の確率で他の塩基データに置換し、又は置換せずにそのままとする処理（突然変異に対応する処理）を行って、新たな塩基配列データを生成する。従来の遺伝子進化シミュレータでは、予め定めた進化の系統図に従って複数の塩基配列データのうち一つを基準として、突然変異に対応する処理を実行して次世代の塩基配列データを生成していた。
【０００６】
具体的には、５０万から１００万程度の塩基データの列を含んでいる塩基配列データを初めに生成する。この塩基配列データ上では、Ａ，Ｔ，Ｇ，Ｃの存在確率は、同じと仮定される。すなわち、各塩基位置にＡ，Ｔ，Ｇ，Ｃが等確率に出現するようランダムに割り当てる。第１世代として、この最初の塩基列を１つ用意する。第２世代を生成するためには、予め定められた系統図に従って、まず子孫の数（次世代に存在するべき個体数）だけ塩基配列データのコピーを生成し、各塩基配列データについて、その各塩基データの置換の処理を実行する。これを現世代の全塩基配列に対して行うことによって次世代の塩基配列の集団が得られる。なお、ここで世代とはこのプロセス一巡を表しており、実際の生物学的年代としてはそのパラメータにより数十万年、数百万年、あるいはそれ以上の現象を表している。また、置換の処理において、どの塩基データも他の塩基データに等確率で置換される場合、そのモデルをＪｕｋｅｓ−Ｋａｎｔｏｒ（ジュークス・カントール）モデルと呼ばれる（根井正利，「分子進化遺伝学」，培風館，１９８７年）。
【０００７】
【発明が解決しようとする課題】
このように、上記従来の遺伝子進化シミュレータでは、事前に進化の過程を表す系統図（実質的にはランダム木）を生成しておく必要があり、また、このランダム木は、検証しようとする実験データによって毎回生成しなければならない。
【０００８】
そこで、このようなランダム木の生成の負担を軽減した遺伝子進化シミュレータが望まれていた。
【０００９】
また一方で、塩基配列の解析方法の一つとして、ＡＦＬＰ（Ａｍｐｌｉｔｕｄｅ　Ｆｒａｇｍｅｎｔ　Ｌｅｎｇｔｈ　ｐｏｌｙｍｏｒｐｈｉｓｍ）と呼ばれる方法が近年脚光を浴びている。この解析方法は、ＰＣＲ（Ｐｏｌｙｍｅｒａｓｅ　Ｃｈａｉｎ　Ｒｅａｃｔｉｏｎ）を基礎とするもので、具体的には、ホストＤＮＡをＥｃｏＲＩや、ＭｓｅＩなどの制限酵素（ｒｅｓｔｒｉｃｔｉｏｎ　ｅｎｚｙｍｅ）を用いて切断し、様々なサイズのＤＮＡフラグメントを含むプールを生成し、ＰＣＲで各フラグメントを選別しながら増幅する。この増幅された断片の電気泳動パターンから多型情報を解析するというものである。切断部分は制限酵素の種類によって異なり、実験を行う者が所望の酵素を組み合わせて切断を行えばよい。また、切断によりフラグメントを生成する際に、選択的プライマーと呼ばれる人工的な塩基列をフラグメントの両端に接合することで、より制限のついたフラグメントが生成可能となっている。このＡＦＬＰでは、生成された特定の長さのフラグメントを持つこと、又は持たないことを遺伝子の一つの性質と見なして、その出現頻度数を統計的に分析することになる。
【００１０】
しかしながら、従来の遺伝子進化シミュレータにおいて、このＡＦＬＰの解析手法を適用しているものは未だまれである。
【００１１】
本発明は上記実情に鑑みて為されたもので、ランダム木の生成の負担を軽減した遺伝子進化シミュレータを提供することをその目的の一つとする。
【００１２】
【課題を解決するための手段】
上記従来例の問題点を解決するための本発明は、遺伝子進化シミュレータであって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手段と、を含み、前記世代更新手段における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることを特徴としている。
【００１３】
また、本発明のある態様によると、遺伝子進化シミュレータであって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、選択された塩基配列データの各々を親基配列データとして所定の処理を実行し、各親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手段と、を含み、前記世代更新手段における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることとした。
【００１４】
ここでさらに、所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手段と、前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手段と、を含むこととするのも好ましい。また、これらにおいて、前記置換処理において用いられる前記所定の確率は、世代に応じて変化することとするのも好ましい。
【００１５】
さらに、本発明の別の側面によると、遺伝子進化のシミュレータであって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手段と、第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する手段と、所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手段と、前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手段と、を含むこととした。
【００１６】
さらに、本発明の別の態様によれば、遺伝子進化のシミュレーション方法であって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化工程と、重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新工程と、を含み、前記世代更新工程における塩基配列データの親子関係の情報を記録し、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることとした。
【００１７】
また本発明の別の態様によれば、遺伝子進化のシミュレーション方法であって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化工程と、第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する工程と、所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する工程と、前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する工程と、を含むこととした。
【００１８】
さらに、本発明の他の態様によれば、遺伝子進化のシミュレーションプログラムであって、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手順と、重複した選択を許しながら、第ｋ世代のデータセットから所定複数回、塩基配列データを選択し、選択された塩基配列データの各々について、その塩基配列データを親基配列データとして、当該親塩基配列データに含まれる各塩基データについて、当該塩基データを他の塩基データに所定の確率で置換し、又は置換せずにそのままとする置換処理を実行し、前記親塩基配列データに対する子塩基配列データを生成して、前記所定複数個の子塩基配列データからなる第ｋ＋１世代のデータセットを生成する世代更新手順と、前記世代更新工程における塩基配列データの親子関係の情報を記録させる手順と、をコンピュータに実行させ、少なくとも一つの世代のデータセットが所定の遺伝子進化の解析処理に供されることとした。
【００１９】
さらに、本発明の別の態様によれば、遺伝子進化のシミュレーションプログラムであって、コンピュータに、所定の初期化ルールに従って遺伝子の塩基配列に対応する塩基配列データを複数個生成し、複数個の塩基配列データからなる第１世代のデータセットを生成する初期化手順と、第ｋ世代のデータセットに含まれる塩基配列データに対して所定の処理を実行して、第ｋ＋１世代のデータセットを生成する手順と、所定世代のデータセットに含まれる塩基配列データから所定の制限酵素の制限サイトに対応する塩基配列部分を少なくとも一つ検出する手順と、前記検出された塩基配列部分及び／または前記検出された２つの塩基配列部分で囲まれた塩基配列断片に対する所定統計処理を実行する手順と、を実行させることとした。
【００２０】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る遺伝子進化シミュレータは、一般的なコンピュータによって実現できる。すなわち、本実施の形態の遺伝子進化シミュレータは、図１に示すように、ＣＰＵ１１と、記憶部１２と、操作部１３と、表示部１４とを含んで構成されている。また、これらの各部は互いにバスを介して接続されている。
【００２１】
ＣＰＵ１１は、記憶部１２に格納されているプログラムに従って動作する。このＣＰＵ１１による具体的な処理の内容は後に詳しく述べる。記憶部１２は、ＣＰＵ１１によって実行されるプログラムを格納している。この記憶部１２は、またＣＰＵ１１の処理の過程でＣＰＵ１１が所定のデータを保持するためのワークメモリとしても動作する。具体的にこの記憶部１２は、ハードディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の電気的・磁気的にプログラムを記憶するコンピュータ読み取り可能な記憶媒体と、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）などの記憶素子とを含んでなる。
【００２２】
操作部１３は、キーボードやマウス等であり、利用者が行った操作の内容をＣＰＵ１１に出力する。表示部１４は、ディスプレイ等であり、ＣＰＵ１１から入力される指示に従って、情報を利用者に提示する。
【００２３】
ここでＣＰＵ１１によって実行される処理の具体的内容について図２を参照しながら説明する。ここでは、説明を簡単にするために遺伝子の置換処理では、ジュークス・カントールのモデルを利用することとして説明する。ＣＰＵ１１は、最初に所定複数（例えば５０万個）の塩基データ列からなる塩基配列データを生成し（Ｓ１）、生成した塩基配列データを記憶部１２に格納する。
【００２４】
この処理Ｓ１においては、各塩基データの位置にＡ，Ｔ，Ｇ，Ｃ（それぞれアデニン、チミン、グアニン、シトシンの塩基を表す）のいずれかの塩基データをランダムに選択しながら割り当てることによって行う。例えば各塩基が等確率で現れるように割り当てることができる。また生物界の実際の各塩基の出現確率に従って塩基を割り当てることもできる。この際、各塩基位置の塩基データは、完全に他の位置の塩基データとは独立に割り当てる。こうして塩基配列データが生成されると、ＣＰＵ１１は、これを所定複数個（例えばｎ個）だけ複写して、ｎ個の同一の塩基配列データ（データセット）を生成し（Ｓ２）、それぞれを記憶部１２に格納する。ここでのｎは、例えば２０程度であり、この値はサンプル個体数に相当する。なお、各塩基配列データには、それぞれ１からｎまでの番号を識別番号として付しておく。また、ＣＰＵ１１はここで、世代数をカウントするカウンタ（世代カウンタ）を「１」にリセットしておく。すなわち、処理Ｓ２において生成されたｎ個の塩基配列データからなるデータセットは、第１世代のデータセットとなる。
【００２５】
ＣＰＵ１１は、世代カウンタの現在のカウント値ｋが予め最大の世代として設定された値を越えたか否かを調べ（Ｓ３）、越えていれば（Ｙｅｓならば）、処理を終了する。またこの処理Ｓ３において、世代カウンタのカウント値が設定された値を越えていなければ（Ｎｏならば）、世代カウンタのカウント値をｋ＋１にインクリメントする（Ｓ４）。ここでＣＰＵ１１は、当該世代の個体数（すなわち塩基配列データの数）をカウントするカウンタ（個体数カウンタ）を「０」にリセットしておく。
【００２６】
そしてＣＰＵ１１は、個体数カウンタのカウント値が予め定めた数ｎ（このｎは、必ずしも各世代で同一でなくともよい）を越えているか否かを調べ（Ｓ５）、越えていなければ（Ｎｏならば）、第ｋ世代のデータセットに含まれる塩基配列データの数ｎを用いて、１からｎまでの整数Ｒをランダムに発生させる（Ｓ６）。そして第ｋ世代のデータセットのうち、識別番号がＲとなっている塩基配列データを選択的に複製する（Ｓ７）。ＣＰＵ１１は、この複製した塩基配列データを第ｋ＋１世代の塩基配列データとして記憶部１２に格納する。ＣＰＵ１１は、この処理Ｓ７で複製した塩基配列データに対して所定の処理を行って、第ｋ＋１世代の塩基配列データを生成することとなる（Ｓ８）。
【００２７】
具体的に、この処理Ｓ８における所定の処理は、次のような処理である。すなわち、処理Ｓ７において選択的に複製された塩基配列データについて、当該塩基配列データ上の各塩基データを所定の確率で他の塩基データに置換し、又は当該塩基データをそのままとする。例えば、塩基データ「Ａ」をそのままにする確率を０．９９９９７とし、塩基データ「Ａ」から「Ｔ」、「Ｇ」、「Ｃ」のいずれかに置換する確率はそれぞれ等しく．００００１であるものとする。ここではジュークス・カントールモデルを利用するので、塩基データ「Ａ」だけでなく、Ｔ，Ｇ，Ｃのぞれぞれについても同じ確率設定であるものとしている。この置換の操作によって、第ｋ＋１世代の遺伝子が第ｋ世代の遺伝子から突然変異を経て生成されたこととなる。なお、こうして生成した塩基配列データについては、その生成順に識別番号を新たに割り当てておく（すなわち現在の個体数カウンタの値を識別番号として設定すればよい）（Ｓ９）。
【００２８】
なお、進化のシミュレーションでは塩基の置換だけで充分可能であることがしられているが、もちろん各塩基をある確率でもって消去したり、あるいはある塩基とその隣の塩基の間に、その両者の塩基の組み合わせで決まるある確率で新たな塩基を挿入するようなプロセスをここに加えても良い。
【００２９】
ＣＰＵ１１は、この処理の後、個体数カウンタのカウント値をインクリメントして、処理Ｓ５に戻って処理を続ける。
【００３０】
この処理Ｓ５〜処理Ｓ９の繰り返しにおいて、第ｋ世代のデータセットから重複を許しながらｎ個の塩基配列データが複製され、所定処理を介して次世代（第ｋ＋１世代）のデータセットに含められる。この様子は各世代でｎ＝７の場合、例えば図３に示すように、第ｋ世代のデータセットのうち「１」、「４」、「５」、「６」の識別番号が付されている塩基配列データがそれぞれ２回、３回、１回、１回の割合で選択的に複製されて、第ｋ＋１世代の７個の塩基配列データになるといったようになる。この図３では第ｋ世代のデータセットのうち、「２」、「３」、「７」の識別番号が付された塩基配列データは利用されない。この操作によって、ランダムな遺伝系統図が生成されたことと同じことになる。ある塩基配列データを親塩基配列データとして、この親塩基配列データから置換処理等によって次世代の塩基配列データ（子塩基配列データ）を生成したときに、これらを親子関係として記録する。すると同じ塩基配列データを親として生成された子塩基配列データ同士は兄弟関係になり、その親である塩基配列データにそれぞれ関連づけられていることになる。各世代から重複を許してランダムに塩基配列データを親として選択するので、長い世代の間に世代間の関連づけによって遺伝的系統図が生成された状態となる。
【００３１】
なお、ＣＰＵ１１は、処理Ｓ５において、個体数カウンタのカウント値がｎを越えていれば（Ｙｅｓならば）、新たに生成した世代のデータセットについての統計処理を実行し（Ｓ１０）、処理Ｓ３に戻って処理を続ける。
【００３２】
ここでＣＰＵ１１が処理Ｓ１０にて行う統計処理の具体的な例について説明する。ここではＡＦＬＰを模式的に利用した統計処理を行う場合を例として説明する。統計処理の対象となった世代のデータセットに含まれる各塩基配列データの各々について、塩基データの並びとして、予め既知の制限酵素との関係で定められたもの（制限サイトに対応する並び）が存在するか否かを調べる。このような塩基データの並びとしては、例えばＴＴＡＡやＧＡＡＴＴＣなどが代表的である。ＴＴＡＡは真中のＴとＡの間の位置で、またＧＡＡＴＴは最初のＧとＡの間で塩基が切断されるのが知られている。従って、塩基配列データにこれらの制限サイトに特異的に反応する制限酵素を適用したならば、ＴＴＡＡとＧＡＡＴＴＣの位置で塩基配列がいつも切断されることになる。なお、制限酵素には切断を行う方向性があり、ＴＴＡＡに対する制限酵素はＧＡＡＴＴＣに双対なＣＴＴＡＡＧの塩基列には反応しないことが知られている。しかし、本実施形態のシミュレータの場合では塩基配列は一倍体を扱っているので、塩基配列はどちらか一定の方向にスキャンするようにすればそのような問題は自動的に回避されている。
【００３３】
すなわち、本実施の形態においては、ＣＰＵ１１は、図４に示すように処理の対象となった塩基配列データＨから所定の制限サイトＲ（例えばＴＴＡＡやＧＡＡＴＴＣ等の塩基配列部分）を少なくとも一つ検出し、制限サイトで切断したとした場合に、２つの制限サイトで囲まれた塩基配列部分Ｐを特定する。そして制限サイトＲの部分及び／又は特定された塩基配列部分Ｐに含まれる部分的な塩基配列データ（断片データ）を検出の元となった塩基配列データの識別番号に関連づけて記憶部１２に格納する。ここで、塩基配列部分Ｐを挟む２つの制限サイトは、塩基配列データＨ上で隣接する制限サイトであってもよいし、隣り合わせでない、任意の制限サイト２つで囲まれた断片を構成するようにしても良い。この場合断片と断片が重複する共通部分ができることもある。なお、検出されたすべての制限サイトを採用して、そこで切断する必要はない。
【００３４】
そうするとある特定の長さについて、ある塩基配列データからは、その長さの断片データができているが、別の塩基配列データからはその長さの断片データができていないなどの現象が起き得る。例えばある長さの断片データが存在するか否かによって、その断片データの元となった塩基配列データを優性、劣性の遺伝子として記録し、その結果を表示部１４に表示することができ、これにより例えば任意交配集団において遺伝子型の頻度が対応する遺伝子頻度の積によって得られるとするハーディ・ワインバーグの法則（Ｈａｒｄｙ−Ｗｅｉｎｂｅｒｇの法則）が成立するか否かなどを検証することができる。また、様々なパラメターに対し、この法則が成り立つか否かや、成り立つ場合、どの位理論値から異なるのか、あるいはどのような要因によってこの法則に適合しない結果がでてくるかなどをシミュレーションによって確認することができるようになる。
【００３５】
本実施の形態の遺伝子進化シミュレータによると、系統図に使われるランダム木を生成することなく、インブリーディング（ｉｎｂｒｅｅｄｉｎｇ）を考慮した遺伝子進化のシミュレーションが可能になり、様々な検定を行うことができる。特に、進化の過程における集団内の塩基配列（ＤＮＡに対応する）を全て検査することが可能になり、単にパラメターの平均の変化を求めるのみならずより細かいデータの検証が可能になる。すなわち本実施の形態では、進化シミュレータにおいて、系統樹であるランダム木を予め多数生成する代りに、次世代の個体群のもとになる現世代の個体群から個体（ここでは塩基配列）をランダムに選択して、実質的にランダム木を生成した場合と同じ効果が得られるようにした。
【００３６】
またここまでの説明では、処理Ｓ８における処理での置換の確率は、どの世代でも一定として説明したが、この確率βをシミュレーションの途中で変更可能とするのも好ましい。また、この確率βを世代カウンタのカウント値に応じて変化するよう定めてもよい。例えば、生物学的な意義を考慮して、次の（１）式のように定めることができる。
【００３７】
【数１】
2004094456.tif 000003
ここでαとｃは定数、ｔは時間（世代カウンタのカウント値）であり、この（１）式によって求められる確率の値βは、世代が進むに従って単調減少していくようになっている。また、同様の関数としてｃを１以下の数として（２）式のような関数としてもよい。さらにこの確率変化は任意の塩基対について別々の関数でもって定義することにしても良い。従って、ＧからＴとＴからＧとが異なった置換率をもつことも可能である。
【００３８】
また、ここまでは遺伝子が１倍体の場合を例として説明したが、２倍体の場合塩基配列の交叉や削除といった処理を含めてシミュレータを構築することも可能である。
【００３９】
なお、本実施の形態のシミュレータは、実験等の学術的目的で用いられることもあるが、本実施の形態のシミュレータを製造・販売することができ、有用である。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る遺伝子進化シミュレータの構成ブロック図である。
【図２】本発明の実施の形態に係る遺伝子進化シミュレータの動作の例を表すフローチャート図である。
【図３】本発明の実施の形態に係る遺伝子進化シミュレータの処理により仮想的に形成される系統図を表す説明図である。
【図４】統計処理における断片化の処理の例を表す説明図である。
【符号の説明】
１１　ＣＰＵ、１２　記憶部、１３　操作部、１４　表示部。
【図１】
2004094456.tif 000004
【図２】
2004094456.tif 000005
【図３】
2004094456.tif 000006
【図４】
2004094456.tif 000007