(57)【特許請求の範囲】
【請求項１】
三角数の計算法を利用して正確確率検定のための２×ｎ型分割表の総数を数え上げる装置であって、
分割表データ入力処理部と、
分割表総数計算処理部と、
該分割表総数計算処理部の計算結果を出力する分割表総数出力処理部とを有し、
前記分割表総数計算処理部は、入力された分割表データから求めた行和データと列和データに基づき、行和データから得られる超平面内に含まれる格子点と、列和データから得られる閉区間の直積集合に含まれる格子点のうちで、前記超平面と前記直積集合との共通部分に含まれる格子点の数を、三角数の交代和の計算を用いて算出することにより、２×ｎ型分割表の数を求める処理を行うことを特徴とする２×ｎ型分割表の総数数え上げ装置。
【請求項２】
請求項１に記載の２×ｎ型分割表の総数数え上げ装置において、
許容できる計算時間を受け付ける計算時間受付処理部および許容できる近似範囲を受け付ける近似範囲受付処理部のいずれか一つ、または両方をさらに有することを特徴とする２×ｎ型分割表の総数数え上げ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統計検定の一手法であるフィッシャーの正確確率検定を行う情報処理装置にかかわる技術に関し、特に、ゲノム（genome）情報処理などの分野での統計検定に必要とされる分割表の総数を数え上げる、２×ｎ型分割表の総数数え上げ処理装置に関する。
【背景技術】
【０００２】
バイオ統計の分野ではこれまで様々な検定の手法が開発されており、特に分割表に基づく検定法は基本的なデータ分析法として幅広く活用されている。
【０００３】
さらに、近年、ヒトゲノムが完全解読され、また、引き続いて様々な生物種のゲノムが解読されて遺伝子の機能解析研究が活発に行われるようになったため、実験データ解析を行う統計検定技術への要請が高まっている。
【０００４】
研究内容も、特定の疾患の有無、薬物の効果の程度、副作用の有無などの表現型に関与する遺伝子の探索が興味の対象となっている。これを行うためには、ゲノムワイドにわたる多数の分割表の検定を高速に実施する必要がある。
【０００５】
以下、例として、マイクロサテライトマーカーを利用したヒトゲノム全体にわたる疾患感受性遺伝子の探索をとり、分割表を利用した正確確率検定の基本的な説明を行う。
【０００６】
いま例えば、患者と健常者の集団をそれぞれ２０人ずつ用意し、候補となる遺伝子周辺にマイクロサテライトマーカーを設定し、実験的に観測してタイピングをすると、図１のようなデータが得られる。ここで、Ａ１，Ａ２，Ａ３はこのマーカーでの各アリル（allele；対立遺伝子）の名前であり、このマーカーでは３種類のアリルをもつことを示している。また、各個体は２つずつアリルを持つので、図１では例えば患者でアリルＡ１とＡ２をもつ個体は９人いることを示している。この患者と健常者の実験データをまとめて図２のアリル毎の観測データに変換する。例えば、Ａ１の値は（Ａ１を２つ持つ個体数）×２＋（Ａ１とＡ２を持つ個体数）＋（Ａ１とＡ３を持つ個体数）で計算できる。
【０００７】
これらの計算は、別の例として、ＡＢＯ型の血液型の調査結果のまとめ方と同じである。複数の個体の血液型を検査してＡＯ型、ＢＢ型、ＡＢ型などをカウントしたのち、Ａ因子、Ｂ因子、Ｏ因子の別に表形式に整理する手順と同じである。
【０００８】
図２では、さらに行和と列和、および全体のアリル総数を集計し追加している。これが統計検定の対象となる２×ｎの分割表である。図３は変数を用いて一般的に表したものである。
【０００９】
マイクロサテライトマーカーを利用したゲノムワイドの疾患感受性遺伝子の探索では、３万箇所近くのマーカーで各々検定を実施する必要があり、さらに、これ全体を複数ラウンド繰り返す必要がある（非特許文献１）。また、各検定では、図２または図３に示した２×ｎの分割表を作成し、正確確率検定を行う。しかしながら、マイクロサテライトには数種類〜２０種類以上の対立遺伝子（アリル）が存在するため、上記の計算において、マーカーによっては、多型性が豊富でｎが大きいことにより情報量が多いという利点を持つ反面、検定のための計算量が膨大になってしまうという問題がある。
【００１０】
ＳＮＰ（Single Nucleotide Polymorphism）マーカーを複数個組み合わせて構成するハプロタイプを対象とした正確確率検定でも、同様の計算量の問題が生じる。
【００１１】
したがって、このような研究活動を効率的に遂行するためには、コンピュータシステムの利用が不可欠となっている（非特許文献２）。
【００１２】
具体的な正確確率検定の計算手順は、以下の通りである。まず図２に対して、周辺分布（すなわち行和と列和の数値）が固定していると仮定し、様々なセルの値をとる分割表が超幾何分布に従って得られると考える。この仮定の下で、
（１）観測データの分割表（例えば、図２または図３のような分割表）が得られる確率を求める、
（２）（１）の分割表と周辺分布が同じであり（１）の分割表よりもさらに偏ったデータをもつ他の分割表を列挙し、それぞれが得られる確率を求める、
（３）（１）と（２）の確率の総和を求める、
（４）（３）の総和を検定の有意水準と比較し、帰無仮説の棄却の可否を決める（「要因は独立でない（比率に差がある）」、または、「要因は独立である（比率に差がない）」の判断を行う）、
という計算手順をとる。
【００１３】
ここで、特に計算量が問題となるのは、（２）の分割表の列挙の処理である。図２の例に基づいて列挙をしたものが図４である。これらは各セルの値を１ずつ変化させ、行和と列和の条件を満足するかどうかを調べながら逐次並べていったものであるが、このような素朴なアルゴリズムでは、列数に対して指数関数的に計算量が増大してしまい実用的でない。なお、図４中のＮＧは、行和と列和の条件を満たしていない対象外の分割表を示し、図４中のＯＫは、行和と列和の条件を満たしている対象とする分割表を示しており、２×ｎのｎが増大すると、ＮＧを除外する演算処理の負担も増大することになる。
【００１４】
計算量を軽減する従来手法としては、分割表に対するカイ自乗検定があるが、これは各セル中の観測値が小さいもの（例えば５以下）が多数ある場合、正確確率検定に対する近似精度が十分でないという問題が知られている。
【００１５】
また、代替手段としてシミュレーションに基づくＭＣＭＣ法（マルコフ連鎖モンテカルロ法）が利用されるが、乱数生成に基づくため毎回計算結果が異なり、データ解析結果の再現性を重視する立場からは避けたいと考えられている。
【００１６】
分割表を利用した正確確率検定の効率的な計算方法としては、ネットワークアルゴリズムが考案されているが（非特許文献３）、これも逐次調べてゆく加法的なアルゴリズムになっており、計算量を充分に削減できるものになっていない。
【特許文献１】特開２００４−２２９５１１号公報（発明の名称；ハプロタイプ解析装置、および、ハプロタイプ解析方法をコンピュータに実行させることを特徴とするプログラム）
【非特許文献１】Tamiya, G. et al.: Whole genome association study of rheumatoid arthritis using 27,039 microsatellites: Hum. Mol. Genet., 14, 16, pp.2305-2321（2005-8）
【非特許文献２】鎌谷直之：ポストゲノム時代の遺伝統計学：羊土社（2001-10）
【非特許文献３】Requena, F. et al.: A major improvement to the Network Algorithm for Fisher’s Exact Test in 2xc contingency tables: Comput. Statist. Data Anal., 51, pp.490-498（2006）
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上記のような分割表を用いた正確確率検定を繰り返し行う状況では、それぞれの検定が許容できる時間範囲で正確確率検定を実行できるかどうかを判断する必要がある。具体的には、実験データをまとめた分割表に対し、その周辺分布を考慮した確率量を計算できるかを見積もりたい。そのためには、まず、その周辺分布を満たす分割表を全て列挙できるかどうか、その総数を効率的に数え上げるという課題がある。
【００１８】
本発明は、特に計算量が大きくなると予想される分割表を用いた正確確率検定を繰り返し行う状況での、データ解析作業の効率向上を目的とする。
【課題を解決するための手段】
【００１９】
上記の目的を達成するため、本発明では、三角数の計算法を利用して正確確率検定のための２×ｎ型分割表の総数を数え上げる装置において、分割表データ入力処理部と、分割表総数計算処理部と、該分割表総数計算処理部の計算結果を出力する分割表総数出力処理部とを有し、
分割表総数計算処理部は、入力された分割表データから求めた行和データと列和データに基づき、行和データから得られる超平面内に含まれる格子点と、列和データから得られる閉区間の直積集合に含まれる格子点のうちで、超平面と直積集合との共通部分に含まれる格子点の数を、三角数の交代和の計算を用いて算出することにより、分割表の数を求める処理を行う。
【発明の効果】
【００２０】
本発明では、幾何学的な視点と組合せ論的な考えの導入により、２×ｎ型分割表の総数を計算するようにしており、場合の数の足し合わせだけでなく、一般次元の三角数を利用し乗法による計算法を取り入れことで、計算の飛躍的な効率化を図ることができ、２×ｎのｎが大きい状況下であっても、２×ｎ型分割表の総数を効率的に見積もることが可能となる。したがって、２×ｎ型分割表を用いた正確確率検定を膨大に繰り返し行う状況において、分割表の総数を効率的に見積もることが可能となり、それぞれの検定が許容できる時間範囲で正確確率検定を実行できるかどうかを判断することができ、データ解析作業の効率向上に貢献することができる。
【発明を実施するための最良の形態】
【００２１】
本発明では、２×ｎ分割表の総数を計算するために、幾何学的な視点と組合せ論的な考えを導入し、場合の数の足し合わせだけでなく、乗法による計算を取り入れる。
【００２２】
まず、ｎ次元空間Ｘ内の格子点（ｘ１，ｘ２，・・・，ｘｎ）を考える。各座標値ｘｊ（１≦ｊ≦ｎ）は非負整数である。この格子点と分割表の対応に関して、条件を幾何学的に考察する。
【００２３】
行和の条件は、格子点が
超平面Ｐ：ｘ１＋ｘ２＋…＋ｘｎ＝Ｒ１
の上にあることと解釈できる。
【００２４】
列和の条件は、格子点が
閉区間（閉集合）の直積集合Ｉ：[０，Ｃ１]×[０，Ｃ２]×…×[０，Ｃｎ]
に含まれることと解釈できる。
【００２５】
なお、２行目の行和がＲ２になるという条件は、１行目の行和の条件とそれぞれの列和の条件が満たされれば自動的に満足される。
【００２６】
従って、行和と列和の条件を満足する２×ｎ分割表は、超平面Ｐと閉区間の直積集合Ｉの共通部分Ｙに含まれる格子点と一対一対応することがわかる。
【００２７】
図５はｎ＝３の場合の格子点の存在範囲の例を示した図である。超平面Ｐ内の格子点は三角形Ｐ０Ｑ０Ｒ０に含まれる。また、閉区間の直積集合Ｉ内の格子点は直方体ＯＣ１Ｄ３Ｃ２-Ｃ３Ｄ２ＥＤ１に含まれる。従って、共通部分Ｙは、変形５角形ＦＱ１Ｐ２Ｒ２Ｑ３となる。
【００２８】
次に、超平面Ｐと閉区間の直積集合Ｉの共通部分Ｙに含まれる格子点を数えるため、
半空間：Ｅｊ：＝｛ｘ∈Ｘ｜ｘｊ＞Ｃｊ｝  （１≦ｊ≦ｎ）
を定義すると、求める格子点の数は、超平面Ｐ上にある格子点の数から全てのＥｊからなる和集合に含まれる格子点の数を引いた残りである。
【００２９】
一般に、複数の集合の和集合に含まれる要素の数は、たとえば集合が３個の場合、
＃（Ａ∪Ｂ∪Ｃ）＝＃（Ａ）＋＃（Ｂ）＋＃（Ｃ）−＃（Ａ∩Ｂ）―＃（Ａ∩Ｃ）−＃（Ｂ∩Ｃ）＋＃（Ａ∩Ｂ∩Ｃ）
という公式で示されるように、和集合をとる集合の個数の偶奇に応じて符号を変えた交代和で計算できる。これは３個よりも集合が多い場合も成立する。
【００３０】
ここでさらに＃（・）で超平面Ｐ上にある格子点の数を表すことにすると、Ｙに含まれる格子点の数は、
＃（Ｐ）−＃（Ｅ１）−＃（Ｅ２）−…−＃（Ｅｎ）＋＃（Ｅ１∩Ｅ２）＋＃（Ｅ１∩Ｅ３）＋…＋＃（Ｅｎ−１∩Ｅｎ）−＃（Ｅ１∩Ｅ２∩Ｅ３）−＃（Ｅ１∩Ｅ２∩Ｅ４）−…
という計算により求められる。
【００３１】
この計算を図５に適用すると、変形５角形ＦＱ１Ｐ２Ｒ２Ｑ３内にある格子点の数は、
＃（△Ｐ０Ｑ０Ｒ０）−＃（△Ｐ０Ｑ１Ｒ１）−＃（△Ｐ２Ｑ０Ｒ２）−＃（△Ｐ３Ｑ３Ｒ０）＋＃（△ＦＲ１Ｐ３）
という三角形内の格子点数の交代和により求められる。ここで、２つの三角形の境界に含まれる格子点は除かずに残すよう計算することに注意する。
【００３２】
超平面Ｐ上にある格子点は一般化された三角数となっている。例えばｎが３の場合は平面内に配置された三角数であり、ｎが４の場合は３次元空間内に配置された三角錐数（四面体数）である。その個数は底辺上の格子点の数が分かれば計算できる。超平面Ｐ上の格子点の数は一辺の長さがＲ１なので、重複順列の考えからＢｉｎｏｍｉａｌ［Ｒ１＋ｎ−１，ｎ−１］となる。ここで、Ｂｉｎｏｍｉａｌ［ｐ，ｑ］は、ｐ個のものからｑ個取り出す組合せを表す二項係数である。
【００３３】
さらに、超平面Ｐと任意の個数のＥｊとの共通部分Ｗは、どれも超平面Ｐ上にある格子点全体と相似な図形になっているため、共通部分Ｗの一辺の長さｋが分かれば、Ｂｉｎｏｍｉａｌ［ｋ＋ｎ−１，ｎ−１］で計算できる。
【００３４】
共通部分Ｗの一辺の長さｋは、Ｒ１から関係するＥｊの底辺の長さの和とＥｊの個数を引くことで計算できる。
【００３５】
ただし、ｋが負となった場合は対象としている共通部分が空集合であり、格子点の数がゼロであることを意味する。またＥｊの個数を引くことは、上記の交代和を計算する際、図形の境界に含まれる格子点は除かずに残すよう計算することを意味している。
【００３６】
以上の説明により、幾何学的な視点と組合せ論的な考えの導入により、２×ｎ分割表の総数を計算できることが分かる。ここで、三角数が二項係数により求められるため、場合の数を乗法によりまとめて計算の効率化を図っている。二項係数を求めるルーチンに対して予め数表化するなどの最適化を行うことにより、さらに計算の効率化が可能である。
【００３７】
さらに、上記交代和の計算を効率良く進めることが可能である。素朴な考察では列数ｎに対してｎ個のＥｊが定義されるために、集合｛Ｅｊ｜１≦ｊ≦ｎ｝の冪集合にわたってそれぞれの共通部分を計算する必要があり、２ｎ通りの場合が考えられる。しかしながら、そのうちかなりのものが空集合となる可能性が高いので、計算過程で早めに空集合となるものを検知し、それよりも小さい集合の計算をスキップすることが効果的である。
【００３８】
具体的には以下の手段が有効である。
【００３９】
（１）Ｒ１とＲ２の小さい方をＲとして（Ｒ：＝Ｍｉｎ［Ｒ１，Ｒ２］）、超平面Ｐの定義方程式の右辺の定数をＲとする。これにより、上記超平面Ｐと任意の個数のＥｊとの共通部分Ｗ内に含まれる格子点の数を計算する際、一辺の長さｋの計算結果が負になる場合を早く検知できる。
【００４０】
（２）Ｃ１，Ｃ２，…，Ｃｎを昇順（Ｃ１≦Ｃ２≦…≦Ｃｎ）に並べ替え、それに対応してＥｊも並べ替える。さらに、上記集合｛Ｅｊ｜１≦ｊ≦ｎ｝の冪集合にわたる共通部分の計算において、深さ優先探索を採用すると、上記Ｗが空集合であると検知された際に、それ以降の集合数が増える場合のほかのＷについての計算を容易にスキップできる。
【００４１】
また、与えられた一定時間内で分割表の総数の近似値を計算する場合は、幅優先探索を採用すると、一定数のＥｊの共通部分までの交代和が出来たところで計算を打ち切り、それよりひとつ少ない数の共通部分までの交代和の履歴との差で、最終的な分割数との誤差を見積もれる。同様に、与えられた一定の誤差範囲内で近似値を計算する場合も、この幅優先探索で対応できる。
【実施例】
【００４２】
続いて、添付図面を参照しながら、本発明の実施例（以下、本実施例と記す）による分割表の総数数え上げ処理技術について詳細に説明する。図６から図１１は、本実施例による２×ｎ型分割表の総数数え上げ装置に係る図である。
【００４３】
図６は、本実施例による２×ｎ型分割表の総数数え上げ処理装置の内部構造例を概略的に示す機能ブロック図である。この２×ｎ型分割表の総数数え上げ処理装置は、実験で得られたデータを保存した実験データを格納するデータベースＤＢ６００と、データを表示するための表示装置６０１と、表示されたデータに対してメニューを選択するなどの操作を行うためのキーボード（操作部）６０２やマウスなどのポインティングデバイス（操作部）６０３と、必要な演算処理、制御処理等を行う中央処理装置（ＣＰＵ）６０４と、中央処理装置６０４における処理に必要なプログラム等を格納するプログラムメモリ６０５と、中央処理装置６０４での処理に必要なデータを格納するデータメモリ６０６とを、備えている。表示装置６０１とともに、又はそれに代えて、プリンタへの出力、音声出力などを行うようにしてもよい。
【００４４】
プログラムメモリ６０５は、上記実験データＤＢ６００またはキーボード６０２・ポインティングデバイス６０３などからの分割表データの入力を受け付ける分割表データ入力処理部６０７と、一定時間内に分割表総数を計算する場合にその時間を設定する計算時間受付部６０８と、一定誤差範囲内で分割表総数を計算する場合にその範囲を設定する近似範囲受付部６０９と、既報告の分割表総数の計算を実行する分割表総数計算処理部６１０と、その計算結果を表示装置６０１などに出力する分割表総数出力処理部６１１とを、含んでいる。データメモリ６０６は、実験で得られたデータから計算する分割表データ６１２と、さらにこの分割表から計算する行和データ６１３および列和データ６１４とを、含んでいる。これらは、一般的なコンピュータシステムとして実現可能である。
【００４５】
図７は、データメモリ６０６内に含まれる分割表データ６１２と行和データ６１３と列和データ６１４のデータ構造例を示す図である。このデータ構造体は非負整数を要素とする配列であり、分割表データ６１２は２次元配列、行和データ６１３と列和データ６１４は１次元配列である。その内容は図３に示した通りである。
【００４６】
次に、上記のように構成された本実施例による分割表の総数数え上げ処理装置において行われる処理内容について説明する。図８は、分割表の総数数え上げ処理方法の処理の流れを概略的に示すフローチャート図である。図８において、まず、実験データＤＢ６００またはキーボード６０２・ポインティング６０３から入力を受け付け、分割表のデータを図７の分割表データ７００に読み込む（ステップ８００）。次に、分割表総数の計算に許容できる計算時間が限定される場合、その許容時間の値を受け付ける（ステップ８０１）。さらに、分割表総数の結果がある誤差範囲内であれば近似の結果で充分である場合、その近似誤差範囲の値を受け付ける（ステップ８０２）。さらに、本発明の計算処理アルゴリズムに従い、分割表総数の計算を実行する（ステップ８０３）。最後に、計算結果である分割表総数、またはその途中結果と誤差範囲を、表示装置６０１などに表示することにより出力する（ステップ８０４）。
【００４７】
図９は、図８のステップ８０３で実行される、分割表総数計算処理部６１０による分割表総数の計算処理の詳細を示すフローチャートである。まず、分割表データ７００が２×ｎ型であることをしらべ、行和および列和を計算し、行和データ７０１および列和データ７０２に保存する（ステップ９００）。次に、列和データ７０２を値が昇順になるようにソートをする（ステップ９０１）。次に、計算の各処理で参照される定数を設定する（ステップ９０２）。ここでは、行和Ｒ１とＲ２の小さい方の値をＲとおき、また列数の値をｎとおく。さらに各変数を用意し、初期値を設定する（ステップ９０３）。具体的には、分割表の総数をcountとし値を０とする、前の総数とその前の総数をそれぞれcountPrev・countPrev2とし値を共に０とする、昇順にソートされた列和データ７０２から選ぶ部分集合をclmSubとし値を空集合とおく、またclmSubの要素数をclmSubNumとし値を０とおく、という処理を行う。計算にかけられる許容時間が限定される場合は、時間計測を開始する（ステップ９０４）。この開始からの経過時間は処理の途中で逐次チェックして、許容時間を超える場合は全体の数え上げ処理を終了する。ここまでの準備をした上で、図１０−１、図１０−２に示すサブルーチンCalcCountを呼び出す（ステップ９０５）。
【００４８】
図１０−１および図１０−２は、分割表の総数を一般次元の三角数の交代和の計算で求める処理の詳細を示すフローチャート図であり、図１０−２は図１０−１から続く処理を示している。この処理全体をサブルーチンCalcCountとする。まず、既報告の共通部分Ｗの一辺の長さを表すｋを計算する（ステップ１０００）。これは、Ｒから部分集合clmSubに含まれる要素の和を引き、さらにclmSubの要素数を引くことで計算できる。ｋが非負整数の場合（ステップ１００１）、clmSubNumの偶奇を調べ（ステップ１００２）、偶数の場合countに加算し（ステップ１００３）、奇数の場合countから減算する（ステップ１００４）。次に、計算時間が許容範囲を超えているか否かを調べ（ステップ１００５）、超えている場合は処理CalcCount全体を終了する。
【００４９】
さらに、処理CalcCountの再帰呼び出しを実行し計算を進める。このために部分集合の更新処理を行う。まず、clmSubNumがｎより小さいかを調べ（ステップ１００６）、ｎに達していた場合は処理を終了する。clmSubNumがｎより小さい場合はclmSubの更新を行う（ステップ１００７）。これは、clmSubNumを固定したまま列和データ７０２から配列のインデックスの辞書式順序に従って次の部分集合を選ぶ。これで選べない場合は、clmSubNumを１増やし、要素数が一つ多い部分集合をまた配列インデックスの辞書式順序に従い選ぶ。このステップで要素数が増えたかどうかを調べ（ステップ１００８）、増えた場合はcountPrev2とcoutPrevの値を更新する（ステップ１００９）。これは、分割表総数を計算する過程で交代和をとる際の符号が変わるタイミングであるから、誤差の評価に使える情報を保存するためである。また、このタイミングでこれまでに計算した結果が許容誤差範囲内か否かを調べる。これはcountPrevとcountPrev2の差の絶対値と比較することで判定し（ステップ１０１０）、範囲内に収まっている場合は処理CalcCount全体を終了する。最後に、clmSubを更新した状況で自分自身の処理CalcCountを再帰的に呼び出す（ステップ１０１１）。
【００５０】
以上の処理手順に従って、２×ｎ型分割表の総数の計算を実行することによって、許容範囲の時間内で誤差の範囲も含めて２×ｎ型分割表の総数の数え上げを効率的に進めることが出来る。
【００５１】
図１１は、本実施例の２×ｎ型分割表の総数数え上げ装置における、入力および出力を行う画面例を示す図である。２×ｎ型分割表の総数を数え上げる装置のインタフェース画面全体（１１００）は、分割表データ入力部分（１１０１）、オプション設定部分（１１０２）、計算実行ボタン（１１０３）、分割表総数の計算結果表示部分（１１０４）の４つから構成される。分割表データ入力部分（１１０１）では、２×４型のデータがテキストボックスに書き込まれた状態を示している。オプション設定部分（１１０２）では、チェックボックスにチェックを入れることで計算のための時間制限の設定があり、プルダウンメニューの「５秒以内」という選択肢からその上限値を受付けた状態を示している。また、同様にチェックボックスにチェックを入れることで計算結果に対する誤差範囲の設定があり、プルダウンメニューの「１０００」という選択肢からその上限値を受付けた状態を示している。このような入力データおよびオプションの設定を受付けた状態の下で、本発明の２×ｎ型分割表の総数数え上げ処理装置は、計算実行ボタン（１１０３）の押下をトリガーとして、図８、図９、図１０−１、図１０−２に示した手順に従い、分割表の総数の計算を実行する。この計算の終了後、分割表総数の計算結果表示部分（１１０４）でその内容を表示する。この画面例では、計算時間が５秒以内という制限を超えたためタイムアウトになり、近似値として「７１４，３７０」という値を得たことを示しており、また途中の計算仮定からその誤差範囲は「０から３００を加算した範囲」に収まることを示している。
【００５２】
以上に説明したように、本実施例によれば、２×ｎ型分割表を用いた正確確率検定を繰り返し行う状況において、分割表の総数を効率的に見積もることが可能となり、それぞれの検定が許容できる時間範囲で正確確率検定を実行できるかどうかを判断することができる。
【図面の簡単な説明】
【００５３】
【図１】マイクロサテライトマーカーを利用した実験結果の例を示す図である。
【図２】実験結果から計算される２×ｎの分割表の例を示す図である。
【図３】２×ｎの分割表の一般的な構成を模式的に示す図である。
【図４】図２に示す分割表で行和と列和を固定した場合、それ以外の分割表の列挙を試みた図である。
【図５】本発明で利用する幾何学的な視点と一般次元の三角数との関係を説明するための例を示す図である。
【図６】本発明の実施例による２×ｎ型分割表の総数数え上げ処理装置の内部構造を概略的に示す機能ブロック図である。
【図７】図６に示す分割表の総数数え上げ処理方法のデータメモリ６０６に含まれる分割表データ６１２、行和データ６１３、列和データ６１４のデータ構造を示す図である。
【図８】本発明の実施例による２×ｎ型分割表の総数数え上げ処理装置における、処理の流れの概要を示すフローチャート図である。
【図９】図８中の分割表総数の計算処理の詳細を示すフローチャートである。
【図１０−１】分割表総数を一般次元の三角数の交代和の計算で求める処理の詳細を示すフローチャート図である。
【図１０−２】分割表総数を一般次元の三角数の交代和の計算で求める処理の詳細を示すフローチャート図である。
【図１１】本発明の実施例による２×ｎ型分割表の総数数え上げ装置における、入力および出力を行う画面例を示す図である。
【符号の説明】
【００５４】
６００  実験データＤＢ
６０１  表示装置
６０２  キーボード
６０３  ポインティングデバイス
６０４  中央処理装置
６０５  プログラムメモリ
６０６  データメモリ
【図１】
0005075553.tif 000002
【図２】
0005075553.tif 000003
【図３】
0005075553.tif 000004
【図４】
0005075553.tif 000005
【図５】
0005075553.tif 000006
【図６】
0005075553.tif 000007
【図７】
0005075553.tif 000008
【図８】
0005075553.tif 000009
【図９】
0005075553.tif 000010
【図１０−１】
0005075553.tif 000011
【図１０−２】
0005075553.tif 000012
【図１１】
0005075553.tif 000013