(57)【要約】【課題】動的計画法を用いて塩基配列の最小自由エネルギーを算出して配列集合を設計するにあたり、評価計算を高速化することのできる技術を提供する。【解決手段】塩基配列集合算出装置１００は、初期演算部２１、テーブル記憶部３３、近傍解生成部２２、近傍解演算部２３を備える。初期演算部２１は、一対の塩基配列の局所的な部分エネルギーを動的計画法により積算して最小自由エネルギーを算出する。テーブル記憶部３３は、初期演算部２１による積算の過程の部分エネルギーと塩基とを対応づけた評価テーブルＴＢを記憶しておく。近傍解生成部２２は、制約に違反する一対の塩基配列の一部の塩基を変更して近傍解ＮＳを生成する。近傍解演算部２３は、テーブル記憶部３３に記憶された評価テーブルＴＢと、変更された塩基に対応する一部領域の部分エネルギーとに基づいて、近傍解ＮＳにかかる最小自由エネルギーを動的計画法により算出する。【選択図】図１
2011186632.tif 000002
【特許請求の範囲】
【請求項１】
配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算手段と、
前記初期演算手段による前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶しておくテーブル記憶手段と、
前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成手段と、
前記テーブル記憶手段に記憶された前記一対の塩基配列の前記評価テーブルと、前記近傍解生成手段により変更された前記塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する前記塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算手段と、
前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する評価手段と、を備える塩基配列集合算出装置。
【請求項２】
前記初期演算手段は、前記一対の塩基配列の一端から他端に向けて局所的な前記部分エネルギーを動的計画法により積算し、
前記近傍解演算手段は、
前記一対の塩基配列の前記一端から、前記近傍解生成手段により変更された前記一部の塩基までの前記部分エネルギーの積算値を、前記評価テーブルを参照して取得し、
前記一部の塩基から前記他端までの前記一部領域の積算値を、動的計画法により局所的な部分エネルギーを積算して算出することを特徴とする請求項１に記載の塩基配列集合算出装置。
【請求項３】
前記テーブル記憶手段が、前記近傍解演算手段による前記積算の過程の部分エネルギーと、前記近傍解を構成する塩基と、を対応づけて記憶しており、
前記近傍解にかかる前記最小自由エネルギーが前記評価条件を満たすと前記評価手段が判定した場合に、前記評価テーブルの前記一部領域を前記近傍解の部分エネルギーに更新するテーブル更新手段をさらに備える請求項１または２に記載の塩基配列集合算出装置。
【請求項４】
前記近傍解生成手段が、前記評価条件を満たす前記近傍解に属する塩基配列の一部の塩基を変更して新たな近傍解を生成し、
前記近傍解演算手段が、更新された前記評価テーブルと、前記新たな近傍解で変更された前記一部の塩基に対応する一部領域の部分エネルギーとに基づいて、動的計画法により前記新たな近傍解にかかる最小自由エネルギーを算出することにより、
前記評価条件を満たす近傍解を反復的に算出することを特徴とする請求項３に記載の塩基配列集合算出装置。
【請求項５】
塩基同士が互いに結合しているときの部分エネルギーが前記評価テーブルに与えられている当該塩基の対の少なくとも一方を、互いに相補的でない他の塩基に変更して生成された前記近傍解について、前記評価手段が優先的に前記判定を行うことを特徴とする請求項１から４のいずれか一項に記載の塩基配列集合算出装置。
【請求項６】
前記評価条件を最も満たす解を最善解として記憶しておく最善解記憶手段をさらに備え、
前記近傍解生成手段は、前記最善解に属する一の塩基配列の一部の塩基を変更した新たな塩基配列と、他のすべての塩基配列と、をそれぞれ対にしてなる複数の配列ペアを生成し、
前記近傍解演算手段は、複数の前記配列ペアの最小自由エネルギーをそれぞれ算出し、
算出された複数の最小自由エネルギーが前記評価条件を満たすと前記評価手段が判定した場合であって、さらに、記憶された前記最善解と比較して前記最小自由エネルギーの評価結果が改善された場合に、前記最善解記憶手段は、変更前の前記塩基配列に代えて新たな前記塩基配列を前記最善解として記憶することを特徴とする請求項１から５のいずれか一項に記載の塩基配列集合算出装置。
【請求項７】
前記近傍解生成手段が、前記配列集合に属する塩基配列からなる暫定解から、前記暫定解に属するすべての塩基配列のそれぞれ一部の塩基を変更して、前記配列集合のサイズと同数の前記近傍解を生成し、
前記近傍解演算手段が、塩基が変更された前記塩基配列のそれぞれに対して、当該塩基配列と、前記配列集合に属する他の塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出することを特徴とする請求項１から６のいずれか一項に記載の塩基配列集合算出装置。
【請求項８】
前記評価手段は、前記近傍解にかかる前記最小自由エネルギーが前記評価条件を満たすか否かを、前記配列集合のサイズと同数だけ行い、
前記近傍解にかかるいずれの前記最小自由エネルギーも前記評価条件を満たさないと前記評価手段が判定した場合に、前記初期演算手段は、前記配列集合に属する新たな塩基配列をランダムに作成することを特徴とする請求項７に記載の塩基配列集合算出装置。
【請求項９】
配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算ステップと、
前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶しておくテーブル記憶ステップと、
前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成ステップと、
前記一対の塩基配列の前記評価テーブルと、変更された前記塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算ステップと、
前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する近傍解評価ステップと、
を含む塩基配列集合算出方法。
【請求項１０】
塩基配列集合算出装置のためのコンピュータプログラムであって、
配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算処理と、
前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶するテーブル記憶処理と、
前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成処理と、
前記一対の塩基配列の前記評価テーブルと、変更された前記塩基に対応する一部領域の部分エネルギーと、に基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算処理と、
前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する近傍解評価処理と、
を前記塩基配列集合算出装置に実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、塩基配列の集合を高速で算出することのできる塩基配列集合算出装置、塩基配列集合算出方法、および塩基配列集合算出装置のためのコンピュータプログラムに関する。
【背景技術】
【０００２】
塩基配列を人工的に設計したＤＮＡ分子を用いて演算処理を行うＤＮＡコンピュータが提案されている。
【０００３】
ＤＮＡは、糖・燐酸基・塩基からなる４種類のヌクレオチドと呼ばれる分子から構成される。４種類のヌクレオチドは、糖と燐酸基は共通であるが、塩基部分は互いに異なる構造を持つ。ＤＮＡに用いられる塩基は、アデニン（Ａ）・チミン（Ｔ）・グアニン（Ｇ）・シトシン（Ｃ）の４種類のアルファベットで表される。
【０００４】
各ヌクレオチドは、糖の炭素原子に割り振られる番号を持ち、３'位と５'位で表す炭素が共有結合する。このため、ＤＮＡ分子は各ヌクレオチドをモノマーとする方向性を持つ高分子となる。このようなものを特にｓｓＤＮＡ（ｓｉｎｇｌｅ  ｓｔｒａｎｄ  ＤＮＡ）または一本鎖と呼ぶ。
【０００５】
ｓｓＤＮＡは方向性を持ち、塩基の異なるヌクレオチドで構成されるため、ヌクレオチドを表現するアルファベット｛Ａ，Ｔ，Ｇ，Ｃ｝を用いて、文字列として表現することができる。例えば、ＡＴＧＣＧＡＴのように表現する。このように、Ａ，Ｔ，Ｇ，Ｃの文字列として表現したものを塩基配列と呼ぶ。また、塩基配列を構成する文字数を、塩基配列の長さという。
【０００６】
ＤＮＡ分子は、４種類のヌクレオチドのうち、ＡとＴの間およびＧとＣの間でのみ、水素結合が生じて塩基対を構成しうるという相補性（ワトソン・クリック相補性）をもつ。このとき、各ヌクレオチドの構造上、塩基対を形成するヌクレオチドのペアは、互いにその方向が逆方向である。
【０００７】
ＤＮＡコンピュータでは、多数の人工的なＤＮＡ分子が同じ環境内で反応し、所望の構造にハイブリダイズすることが求められる。このため、ＤＮＡコンピュータでは、各種の制約条件を満たし、自律的に反応しやすく演算に適した多数の塩基配列を用いることが求められる。
【０００８】
特許文献１には、このような塩基配列の集合を求める（以下、「配列集合を設計する」という場合がある）ための種々の方法が記載されている。
また、非特許文献１、２では、塩基配列の集合の最適化問題の解法として、局所探索法による近似解法が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−３５５２９４号公報
【非特許文献】
【００１０】
【非特許文献１】D.Tulpan, M.Andronescu, S.Chang, M.Shortreed, A.Condon, H.Hoos and L.Smith: "Thermodynamically based DNA strand design", Nucleic Acids Research, Vol.33(15), pp.4951-4964, 2005.
【非特許文献２】D.Tulpan, H.Hoos and A.Condon: "Stochastic Local Search Algorithms for DNA Word Design", Proc. of 8th DNA Computing, LNCS(2568), pp.229-241, 2003.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
局所探索法は、厳密な最適解を見つけることが困難な最適化問題を解く際に、初期解の近傍に存在する局所最適解を近似解として求めるものである。
非特許文献１、２では、局所探索法を拡張した確率的局所探索法に基づいて、配列集合の設計を行っている。確率的局所探索法は、ランダムな解移動を許容することで、局所最適解となった後にも探索が継続できる手法である。これらの文献では、局所最適解の評価関数として、所定の制約条件に違反する最小自由エネルギー（Ｍｉｎｉｍｕｍ  Ｆｒｅｅ  Ｅｎｅｒｇｙ：ＭＦＥ）をもつ配列ペア数を用いている。そして、配列集合に属する塩基配列に含まれる文字（塩基）を別の文字（塩基）に置き換えた場合の評価関数（すなわち、制約条件を違反している配列ペア数）をそれぞれ求め、解移動を反復することで局所最適解を算出している。
【００１２】
ここで、塩基配列はワトソン・クリック相補性による水素結合を持つ。このとき、Ａ−Ｔ、Ｇ−Ｃの組合せは配列ペア内に多数存在するため、同じ塩基配列を与えても配列形態は数多く存在する。
【００１３】
一対の塩基配列の最小自由エネルギーは、各配列形態が取り得る自由エネルギーの中で最小の状態として算出される。ここで、一対の塩基配列の配列長がｎ１とｎ２のとき、最小自由エネルギーは、動的計画法と呼ばれるアルゴリズムを用いて（ｎ１＋ｎ２）３のオーダーの演算量で求められる。
【００１４】
したがって、局所探索法で膨大な配列候補が生成される非特許文献１、２の配列集合の設計方法においては、動的計画法を用いて行う各配列候補の評価計算が演算時間のボトルネックになるという問題がある。
【００１５】
本発明は上述のような課題に鑑みてなされたものであり、動的計画法を用いて塩基配列の最小自由エネルギーを算出して配列集合を設計するにあたり、評価計算を高速化することのできる技術を提供するものである。
【課題を解決するための手段】
【００１６】
本発明の塩基配列集合算出装置は、配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算手段と、前記初期演算手段による前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶しておくテーブル記憶手段と、前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成手段と、前記テーブル記憶手段に記憶された前記一対の塩基配列の前記評価テーブルと、前記近傍解生成手段により変更された前記塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算手段と、前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する評価手段と、を備える。
【００１７】
本発明の塩基配列集合算出方法は、配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算ステップと、前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶しておくテーブル記憶ステップと、前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成ステップと、前記一対の塩基配列の前記評価テーブルと、変更された前記塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算ステップと、前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する近傍解評価ステップと、を含む。
【００１８】
本発明のコンピュータプログラムは、塩基配列集合算出装置のためのコンピュータプログラムであって、配列集合に属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、前記一対の塩基配列の最小自由エネルギーを算出する初期演算処理と、前記積算の過程の部分エネルギーと、前記塩基と、を対応づけた評価テーブルを記憶するテーブル記憶処理と、前記塩基配列の少なくとも一部の塩基を変更して前記配列集合の近傍解を生成する近傍解生成処理と、前記一対の塩基配列の前記評価テーブルと、変更された前記塩基に対応する一部領域の部分エネルギーと、に基づいて、塩基が変更された前記塩基配列と、前記配列集合に属する塩基配列との配列ペアの最小自由エネルギーを動的計画法により算出する近傍解演算処理と、前記近傍解にかかる前記最小自由エネルギーが所定の評価条件を満たすか否かを判定する近傍解評価処理と、を前記塩基配列集合算出装置に実行させる。
【発明の効果】
【００１９】
本発明の配列集合の設計技術によれば、暫定解に属する塩基配列のペアの最小自由エネルギーを動的計画法で算出した際の積算の過程の部分エネルギーを評価テーブルで記憶しておき、近傍解の最小自由エネルギーを配列ペアごとに算出するにあたってこの評価テーブルを参照する。このため、近傍解の最小自由エネルギーを算出するにあたって、演算量の多い動的計画法による積算演算を、近傍解で変更された塩基にかかる一部領域のみに限定することができる。これにより、暫定解と近傍解とで共通する塩基同士の積算演算を省略して、近傍解の最小自由エネルギーを高速に算出することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第一実施形態にかかる塩基配列集合算出装置のブロック図である。
【図２】（ａ）はヘアピンループ、（ｂ）はスタック、（ｃ）はバルジループの模式図である。
【図３】（ａ）は内部ループ、（ｂ）はマルチループの模式図である。
【図４】シュードノットの模式図である。
【図５】第一実施形態の塩基配列集合算出方法のフローチャートである。
【図６】暫定解にかかる評価テーブルを示す模式図である。
【図７】近傍解にかかる評価テーブルを示す模式図である。
【図８】本発明の第二実施形態にかかる塩基配列集合算出装置のブロック図である。
【図９】第二実施形態の塩基配列集合算出方法のフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面に基づいて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２２】
＜第一実施形態＞
図１は、本発明の第一実施形態にかかる塩基配列集合算出装置１００のブロック図である。
【００２３】
はじめに、本実施形態の概要について説明する。
塩基配列集合算出装置１００は、初期演算部２１、テーブル記憶部３３、近傍解生成部２２、近傍解演算部２３、評価部２４を備える。
【００２４】
初期演算部２１は、配列集合Ｓに属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、当該一対の塩基配列の最小自由エネルギー（ＭＦＥ）を算出する。
テーブル記憶部３３は、初期演算部２１による積算の過程の部分エネルギーと、塩基と、を対応づけた評価テーブルＴＢを記憶しておく。
近傍解生成部２２は、配列集合Ｓに属する塩基配列のうち、後述する所定の制約に違反する一対の塩基配列（ｓ，ｓ'）の少なくとも一方における一部の塩基を変更して配列集合Ｓの近傍解ＮＳを生成する。
近傍解演算部２３は、テーブル記憶部３３に記憶された、塩基を変更した塩基配列にかかる評価テーブルＴＢと、近傍解生成部２２により変更された塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された塩基配列ｓNEWと、近傍解ＮＳに属する他の塩基配列ｓ'との配列ペアの最小自由エネルギーを動的計画法により算出する。
評価部２４は、近傍解ＮＳにかかる最小自由エネルギーが所定の評価条件ＥＣを満たすか否かを判定する。
【００２５】
なお、本実施形態の各種の構成要素は、個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等を許容する。
【００２６】
また、本実施形態の各種の構成要素は、その機能を実現するように形成されていればよく、たとえば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置に実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【００２７】
また、本実施形態の塩基配列集合算出装置１００はデータ処理装置であり、コンピュータプログラムを読み取って対応する処理動作を実行できるように、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、Ｉ／Ｆ（Interface）ユニット、等の汎用デバイスで構築されたハードウェア、所定の処理動作を実行するように構築された専用の論理回路、これらの組み合わせ、等として実現される。
【００２８】
次に、本実施形態の塩基配列集合算出装置１００について詳細に説明する。
【００２９】
塩基配列集合算出装置１００は、所定の制約条件を満たす、配列長ｎである配列の群（配列集合Ｓ）を設計するデータ処理装置である。ここで、配列集合Ｓに含まれる配列の数を、配列集合Ｓのサイズｍという。
【００３０】
塩基配列集合算出装置１００は、初期条件として与えた塩基配列の配列集合Ｓを、制約条件をより良好に満足する配列集合Ｓに更新することができる。また、塩基配列集合算出装置１００の他の出力として、制約条件を満たす塩基配列を増加させていく、すなわち配列集合Ｓのサイズｍを増大させていくこともできる。これらは、制約条件の設定を変更することで実現される。
【００３１】
配列長ｎの塩基配列を、
ｓ＝ｓ１ｓ２・・・ｓｎ    （１）
と表現する。
【００３２】
このとき、
ｓ∈｛Ａ，Ｔ，Ｇ，Ｃ｝ｎ    （２）
を満たす。
式（２）の表記において、塩基配列の左端は、ヌクレオチドにおける５'位の炭素に対応する。
【００３３】
相補性に基づき、下式（３）と表すと、下式（４）と表現する配列は、式（１）と相補の関係にあるという。そして、式（１）を主配列と呼ぶとき、式（４）は相補配列と呼ばれる。
【００３４】
【数１】
2011186632.tif 000003
【００３５】
【数２】
2011186632.tif 000004
【００３６】
ワトソン・クリック相補性によって結びついた二本のｓｓＤＮＡを、ｄｓＤＮＡ（ｄｏｕｂｌｅ  ｓｔｒａｎｄ  ＤＮＡ）、または二本鎖と呼ぶ。二本のｓｓＤＮＡは相補の関係になくとも、ワトソン・クリック相補性に基づき塩基対を形成することがある。また、相補の関係にある二本のｓｓＤＮＡは、二重螺旋構造となり安定することが知られている。
【００３７】
塩基配列の形態は、塩基配列（主鎖）と、水素結合からなるループ構造とに分解できる。例えば、式（１）の配列の場合、
ｉ＜ｉ'＜ｊ'＜ｊ    （５）
として、
ｓｉ−ｓｊ，ｓｉ'−ｓｊ'    （６）
のように水素結合が生じているとし、ループ構造を構成する水素結合数ｋを利用することでループ構造を分類する。
【００３８】
ｋ＝１のときを、ヘアピンループと呼ぶ（図２（ａ）を参照）。
ｋ＝２のとき、かつ、
ｉ'−ｉ＝１，ｊ−ｊ'＝１    （７）
のときを、スタックと呼ぶ（図２（ｂ）を参照）。
【００３９】
ｉ'−ｉ＞１，ｊ−ｊ'＞１    （８）
の一方のみ成り立つときを、バルジループと呼ぶ（図２（ｃ）を参照）。
また、式（８）が両方とも成り立つときを、内部ループと呼ぶ（図３（ａ）を参照）。
そして、ｋ≧３のときを、マルチループと呼ぶ（図３（ｂ）を参照）。
【００４０】
ループ内で塩基対を形成していないヌクレオチドの数をループサイズと呼ぶ。
なお、上記では、式（５）の条件で式（６）の水素結合が生じているとしたが、
ｉ＜ｊ＜ｉ'＜ｊ'    （９）
の条件で式（６）の水素結合が生じている場合をシュードノットと呼ぶ（図４を参照）。
【００４１】
塩基配列は、その形態により自由エネルギーと呼ばれる値が定められる。同一の塩基配列においても形態が異なる場合には、自由エネルギーの値も異なる。自由エネルギーは最大値が０の実数で表現され、値が低い形態ほど安定する。このため、塩基配列は最小自由エネルギー（以下、ＭＦＥと略記する場合がある）の形態になりやすくなる。
自由エネルギーの値は生化学実験より得られたものであり、各形態のエネルギーは、その形態を構成する各ループ構造の持つエネルギーを積算することで近似的に算出される。また、この値は線形時間で計算可能である。
【００４２】
一本鎖の塩基配列におけるＭＦＥの計算方法を以下に記述する。
配列を式（１）とし、ｉ＜ｊを満たすとする。
【００４３】
準備として、Ｗ（ｉ，ｊ）を、部分配列ｓｉ・・・ｓｊのＭＦＥとする。
また、Ｖ（ｉ，ｊ）を、部分配列ｓｉ・・・ｓｊにおいて、ｓｉとｓｊとが結合するときのＭＦＥとする。ただし、ｓｉとｓｊとが結合しないときは、Ｖ（ｉ，ｊ）＝∞とする。
【００４４】
このとき、
Ｗ（ｉ，ｊ）≦Ｖ（ｉ，ｊ）    （１０）
である。
【００４５】
ヘアピンループ、スタック、バルジループおよび内部ループのエネルギーを、それぞれ以下のように定義する。
ｅｈ（ｉ，ｊ）・・・ｓｉ−ｓｊ水素結合で閉じたヘアピンループのエネルギー    （１１）
ｅｓ（ｉ，ｊ）・・・ｓｉ−ｓｊ水素結合とｓｉ＋１−ｓｊ−１水素結合とからなるスタックのエネルギー    （１２）
ｅｂｉ（ｉ，ｊ，ｉ'，ｊ'）・・・ｓｉ−ｓｊ水素結合とｓi'−ｓj'水素結合とからなるバルジループまたは内部ループのエネルギー    （１３）
なお、説明の便宜のため、マルチループのエネルギーは定数αとする。
【００４６】
このとき、下式（１４）が成り立つ。
【００４７】
【数３】
2011186632.tif 000005
【００４８】
このような式は部分最適性の式と呼ばれる。ここで、二本鎖の塩基配列のＭＦＥを計算する場合は、二本の塩基配列を連結して一本鎖に見立てることで、上記の式を適用することができる。本実施形態では、一対の塩基配列を連結した一本鎖の一端から他端に向かって、部分最適性の式（１４）を利用して求めた局所的な部分エネルギーの最小値であるＷ（ｉ，ｊ）を動的計画法により積算していくことで、当該一対の塩基配列のＭＦＥを求める。
【００４９】
なお、式（１４）は例示であり、これに代えて、例えばＶＢＩ（ｉ，ｊ）の演算量を低減するための各種の近似式を用いてもよい。また、マルチループのエネルギーに関しても、定数αとせず、それを構成する水素結合と塩基数とを加味した変数として扱ってもよい。
【００５０】
本実施形態の塩基配列集合算出装置１００において、配列長ｎの塩基配列からなるサイズｍの配列集合Ｓを設計するにあたっては、以下の二点が要求される。
（ａ）配列集合Ｓに含まれる塩基配列（主配列）ｓは、相補配列以外とは結合して安定しにくい。
（ｂ）サイズｍは十分に大きい。
【００５１】
（ａ）の条件を満たすための制約条件として、本実施形態ではＭＦＥを利用する。具体的には、以下のようになる。
【００５２】
まず、二本鎖の最小自由エネルギーを、
ΔＧ（ｓ，ｓ'）    （１５）
と表す。
ここで、式（１５）を考える際、配列内結合（すなわち、一本鎖内でのヘアピンループや内部ループ）は考慮するが、シュードノット（図４を参照）は存在しないと仮定する。
そして、塩基配列の配列集合Ｓの制約条件は、式（１５）を用いて、下式（１６）で表される。
【００５３】
【数４】
2011186632.tif 000006
【００５４】
ここで、ｔｗｗ、ｔｗｃ、ｔｃｃは、それぞれ制約定数である。
これらの制約条件を用いて、本実施形態の配列集合設計問題は以下のように定義できる。
入力：配列長ｎ、集合サイズｍ、制約定数ｔｗｗ、ｔｗｃ、ｔｃｃ
出力：式（１６）を満たす配列集合Ｓ
【００５５】
上記の入力条件は、塩基配列集合算出装置１００の入力部１０よりデータ処理部２０に入力される（図１を参照）。入力部１０としては、キーボードなどの入力装置や、他の演算処理装置の出力装置が一例として挙げられる。
【００５６】
このほか、入力部１０からは、パラメータとして、ループ数、確率、最善解の連続不更新時に変化させる配列本数が与えられる。
ループ数とは、暫定解に基づいて近傍解を生成および評価する規定回数の上限値である。
確率とは、近傍解を生成するにあたって、暫定解の一部の塩基をランダムに変化させて近傍解を生成する確率θである。
最善解の連続不更新時に変化させる配列本数とは、反復的な演算において最善解の評価が所定ループに亘って向上しなかった場合に、暫定解に含まれる塩基配列をランダムな塩基配列に変化させる本数である。この本数を大きくすることで、局所最適解から大きく離れて演算を継続することになる。このため、より評価結果の良好な最善解が得られることが期待される。
【００５７】
そして、配列集合Ｓは、出力部４０より出力される。出力部４０は記憶装置や表示装置、印刷装置などが例示される。
【００５８】
図１に示す塩基配列集合算出装置１００において、データ処理部２０は、ＣＰＵを備え、プログラム制御により動作するデータ処理装置である。記憶部３０は、情報を記憶する記憶装置である。
【００５９】
ここで、テーブル記憶部３３が評価テーブルＴＢを記憶するとは、記憶部３０が、少なくとも評価テーブルＴＢを記憶する機能を有していることを意味している。
【００６０】
データ処理部２０は、初期演算部２１、近傍解生成部２２、テーブル更新部２５、近傍解演算部２３および評価部２４を機能ブロックとして備えている。
記憶部３０は、暫定解記憶部３１、暫定解評価記憶部３２、テーブル記憶部３３、最善解記憶部３４および最善解評価記憶部３５を機能ブロックとして備えている。
データ処理部２０と記憶部３０とはバス５０で接続されている。
【００６１】
図５は、本実施形態の塩基配列集合算出方法（以下、本方法という場合がある）のフローチャートである。図１および図５を用いて、塩基配列集合算出装置１００によって行われる本方法を説明する。
【００６２】
本方法の概要をまず説明する。本方法は、初期演算ステップＡ１と、テーブル記憶ステップＡ２と、近傍解生成ステップＡ３と、近傍解演算ステップＡ５と、近傍解評価ステップＡ６と、を少なくとも含む。
【００６３】
初期演算ステップＡ１では、配列集合Ｓに属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、当該一対の塩基配列の最小自由エネルギー（ＭＦＥ）を算出する。
テーブル記憶ステップＡ２では、上記の積算の過程の部分エネルギーと、塩基と、を対応づけた評価テーブルＴＢを記憶しておく。
近傍解生成ステップＡ３では、配列集合Ｓに属する塩基配列のうち、所定の制約に違反する一対の塩基配列の少なくとも一方における一部の塩基を変更して配列集合Ｓの近傍解ＮＳを生成する。
近傍解演算ステップＡ５では、塩基を変更した一対の塩基配列にかかる評価テーブルＴＢと、変更された塩基に対応する一部領域の部分エネルギーとに基づいて、塩基が変更された上記の塩基配列と、配列集合Ｓに属する塩基配列との配列ペアの最小自由エネルギー（ＭＦＥ）を動的計画法により算出する。
近傍解評価ステップＡ６では、近傍解ＮＳにかかる最小自由エネルギー（ＭＦＥ）が所定の評価条件ＥＣを満たすか否かを判定する。
【００６４】
なお、本実施形態の方法は、複数のステップを順番に記載してあるが、その記載の順番は複数のステップを実行する順番を必ずしも限定するものではない。このため、本実施形態の方法を実施するときには、その複数の工程の順番は内容的に支障しない範囲で変更することができる。
【００６５】
ここで、暫定解ＴＳ、近傍解ＮＳおよび最善解ＯＰは、いずれも塩基配列の集合である。
【００６６】
また、近傍解ＮＳにかかるＭＦＥとは、近傍解ＮＳという配列集合に属する総ての塩基配列に関する配列ペアのＭＦＥを意味する。具体的には、例えば、集合サイズｍ＝５０の場合、５０Ｃ２＝１２２５通りの配列ペアについてそれぞれ動的計画法で算出したＭＦＥの群をいう。
本実施形態では、各配列ペアに対して、式（１６）で定義されるように、それぞれ３通りのＭＦＥを計算する。したがって、上記の例の場合、１２２５×３＝３６７５個のＭＦＥが計算される。
【００６７】
はじめに、初期演算部２１は、入力されたパラメータ処理を行い、配列長ｎ、集合サイズｍの配列集合Ｓを生成する。初期の配列集合Ｓは、ランダムな塩基配列としてもよく、または予備的に評価処理がおこなわれた塩基配列でもよい。
続けて初期演算部２１は、配列集合Ｓより抽出された任意の一対の塩基配列ｓ，ｓ'についての評価処理をおこなう（図５：ステップＡ１）。評価処理は、塩基配列ｓ，ｓ'を構成する塩基同士の局所的な部分エネルギーを動的計画法で積算してＭＦＥを算出することによりおこなう。
初期演算部２１は、配列集合Ｓに含まれるすべての塩基配列の対（配列ペア）に対して、同様にＭＦＥを算出する。これにより、初期の配列集合ＳにかかるＭＦＥが得られる。
【００６８】
図６は、初期演算部２１が動的計画法で用いる評価テーブルＴＢ（ＴＢ１）を示す模式図である。同図の縦軸と横軸は、二本鎖の塩基配列ｓ，ｓ'に対応する。
【００６９】
ここでは、ｓ（配列１）＝Ａ，Ｔ，Ｇ，Ｃ，Ｇ，Ｃ，Ｔ，Ａ，Ｔ，Ａ，Ｇ，Ｃとし、ｓ'（配列２）＝Ｔ，Ａ，Ｇ，Ｃ，Ｔ，Ａ，Ｃ，Ｇ，Ａ，Ｔ，Ｃ，Ａ，Ｃとしている。
二本鎖の塩基配列のＭＦＥを計算するにあたっては、同図に示すように、配列１と配列２とを連結して一本鎖に見立てて動的計画法を適用する。
【００７０】
評価テーブルＴＢは、暫定解ＴＳという配列集合に属する任意の一対の塩基配列を互いに連結した一本鎖に関して、部分最適性の式（１４）で表される部分エネルギーを動的計画法により積算して求めた、当該一対の塩基配列がＭＦＥをとる場合の配列形態を示すデータをいう。言い換えると、評価テーブルＴＢは、任意の一対の塩基配列の局所的な部分エネルギーを動的計画法で積算した過程を、当該塩基配列を構成する塩基と対応づけたデータである。
そして、暫定解ＴＳにかかる評価テーブルＴＢとは、暫定解ＴＳに属する総ての塩基配列を互いに一対ずつ組み合わせた全配列ペアに関する評価テーブルＴＢの群をいう。
近傍解ＮＳに関しても同様とする。
【００７１】
本実施形態の初期演算部２１は、一対の塩基配列ｓ，ｓ'の一端（ｉ＝ｊ）から他端（ｉ＝１：ｍｉｎ，ｊ＝２ｎ：ｍａｘ）に向けて局所的な部分エネルギーを動的計画法により積算する。これにより、初期演算部２１は、上記の式（１５）で表されるＭＦＥ（ΔＧ）が算出される。
【００７２】
評価テーブルＴＢは２ｎ×２ｎのサイズであるが、その半分（図６の場合は右上半分）は重複のため演算には使用しない。評価テーブルＴＢの各セルには、塩基配列ｓ，ｓ'を構成する塩基のペアごとに、当該上記の部分最適性の式（１４）が格納されている。そして、図６の左下にあたる他端に向かって式（１４）のＷ（ｉ，ｊ）を動的計画法で積算していくことで、塩基配列ｓ，ｓ'のＭＦＥが算出される。
ここで、図６に示すように、任意の塩基対（同図に黒丸で図示される、配列１のＣと配列２のＧとの対）を両端とする部分配列のＭＦＥは、評価テーブルＴＢにおけるその右上に存在する局所的な部分エネルギーを参照することで決定される。
【００７３】
さらに、初期演算部２１は、暫定解ＴＳの評価をおこなう。
本方法の評価条件ＥＣは、「式（１６）の制約条件を違反している配列ペア数」として定義されている。初期演算部２１は、暫定解ＴＳに関する各配列ペアのＭＦＥ（ΔＧ）のうち、式（１６）の不等式を満たしていないものの数をカウントして評価結果を求める。
【００７４】
なお、本実施形態において、評価条件ＥＣを満たすとは、式（１６）の制約条件を違反している配列ペア数が減少することをいう。
【００７５】
つぎに、初期演算部２１は、上記の演算結果を記憶部３０に格納する。
具体的には、暫定解ＴＳを、暫定解記憶部３１および最善解記憶部３４に格納する。また、評価結果を、暫定解評価記憶部３２および最善解評価記憶部３５に格納する。あわせて、初期演算部２１は、暫定解ＴＳにかかる多数のＭＦＥのうち、式（１６）の制約条件に違反している塩基配列の配列ペアｐの数を、暫定解評価記憶部３２に記憶しておく。
以上で、初期演算ステップＡ１が終了する。
そして、初期演算部２１は、暫定解ＴＳにかかる評価テーブルＴＢ（図６を参照）をテーブル記憶部３３に格納する（図５：ステップＡ２）。
【００７６】
近傍解生成部２２は、暫定解記憶部３１に記憶された暫定解ＴＳに属する塩基配列の一部の塩基を変更することで近傍解ＮＳを生成する（図５：ステップＡ３）。近傍解生成部２２は、暫定解記憶部３１を入力とし、近傍定義に従った近傍解生成を行う。本方法では、近傍解ＮＳのＭＦＥが評価条件ＥＣを満たすか否かを判定して、近傍解ＮＳを最善解として上書きするか否かを決定する。
【００７７】
なお、本方法の評価条件ＥＣは上記に限定されるものではない。例えば、配列ペアのＭＦＥが所定の閾値以上であることを条件としてもよく、または後述する第二実施形態のように、配列集合Ｓ中の配列ペアのＭＦＥと制約定数との差を用いてもよい。
【００７８】
本実施形態の近傍解生成部２２は、暫定解記憶部３１に記憶された暫定解ＴＳのうち、制約条件を違反している配列ペアｐ＝｛ｓｘ，ｓｙ｝を一つランダムに選び、その塩基配列中の塩基（文字）の一つを別の塩基（文字）に置き換えたものを近傍解ＮＳとして生成する。具体的には、近傍解生成部２２は、制約条件を違反している配列ペアｐ＝｛ｓｘ，ｓｙ｝を抽出すると、塩基配列ｓｘ，ｓｙの両方について、配列長ｎ（ｎ文字）の塩基の各一つ（例えば、アデニン（Ａ））を、他の塩基（チミン（Ｔ）・グアニン（Ｇ）・シトシン（Ｃ））にそれぞれ変更することで、多数の塩基配列を生成する。具体的には、配列長ｎ＝１２とすると、１２（配列長）×３（塩基種類）×２（ｓｘおよびｓyの二つ）＝７２個の塩基配列を近傍解ＮＳとして生成する。以下、近傍解生成部２２により塩基が変更された塩基配列ｓｘNEW，ｓｙNEWを、塩基配列ｓNEWと総称する。
【００７９】
なお、配列長ｎとしては８、１２、１６またはそれ以上の自然数が例示される。これらの配列長ｎの塩基配列においては、変更する塩基の候補が複数個あるため、一つの暫定解ＴＳに基づいて多数の塩基配列ｓNEWが生成される。
【００８０】
本方法では、暫定解ＴＳに属する塩基配列のうちのそれぞれ一つの塩基を変更して近傍解ＮＳを生成しているが、近傍の定義はこれに限られるものではない。一の塩基配列における複数の塩基を変更してもよく、または一対の塩基配列のそれぞれについて一つまたは複数の塩基を変更して近傍解ＮＳを生成するなど、各種の近傍定義を行ってもよい。
【００８１】
つぎに、近傍解演算部２３は、近傍解ＮＳにかかるＭＦＥを、動的計画法により算出する。具体的には、近傍解演算部２３は、近傍解ＮＳに含まれる一の塩基配列ｓNEWと、配列集合Ｓに属する他の塩基配列ｓ'との配列ペアのＭＦＥを個別に算出する。
【００８２】
近傍解演算部２３では、入力部１０に入力された確率パラメータθに応じて、確率的に処理が分岐する（図５：ステップＡ４）。確率θで選択される一方の処理では、近傍解生成部２２で生成した近傍解ＮＳから一つをランダムに選択して暫定解記憶部３１に格納し、後述のように高速で計算したＭＦＥの積算の過程を示す評価テーブルＴＢをテーブル記憶部３３に格納し、評価結果（違反する配列ペアの数）を暫定解評価記憶部３２に格納する（図５：ステップＡ４１）。
【００８３】
確率１−θで選択されるもう一方の処理では、近傍解生成部２２で生成した近傍解ＮＳに属する塩基配列ｓNEWの総てについて、塩基配列ｓ'との配列ペアをそれぞれ評価し、近傍解ＮＳの評価値を算出する。これを全ての近傍解に対して行い、評価値が最も良好である近傍解を選択する。そして、選択した近傍解を暫定解記憶部３１に格納し、同じく後述のように高速で計算したＭＦＥの積算の過程を示す評価テーブルＴＢをテーブル記憶部３３に格納し、評価結果（違反する配列ペアの数）を暫定解評価記憶部３２に格納する（図５：ステップＡ４２）。
この場合、上記の例でいうと、７２個の近傍解ＮＳについて、式（１６）の３通りのＭＦＥを計算する。合計すると、７２×（４９×１＋５０×２）＝１０７２８個のＭＦＥを動的計画法で計算する。
【００８４】
近傍解演算部２３は、（１）一対の塩基配列の一端から、近傍解生成部２２により変更された一部の塩基までの部分エネルギーの積算値を、評価テーブルＴＢを参照して取得し、（２）一部の塩基から他端までの一部領域の積算値を、動的計画法により局所的な部分エネルギーを積算して算出する（図５：ステップＡ５）。
【００８５】
テーブル記憶部３３は、近傍解演算部２３による積算の過程の部分エネルギーと、近傍解ＮＳを構成する塩基と、を対応づけて記憶している。
【００８６】
ここで、局所探索法での暫定解ＴＳと近傍解ＮＳの変化は微小であるため、暫定解ＴＳで評価を行った場合に動的計画法で用いた評価テーブルＴＢ１と、近傍解ＮＳで評価を行う際に動的計画法で用いる評価テーブルＴＢ２には、同一となる部分が存在する。本方法では、この特性を活かすことで、近傍解ＮＳの評価において計算不要の部分について積算演算を省略し、ボトルネックとなる評価計算時間を削減する。
【００８７】
図７は、近傍解ＮＳに属する一つの配列ペアにかかる評価テーブルＴＢ２を示す模式図である。動的計画法によるＭＦＥの計算では、評価テーブルＴＢ２を参照しながら局所的な部分エネルギーを積算してＭＦＥを求めていく。このとき、暫定解ＴＳにかかる評価テーブルＴＢ１（図６を参照）と、近傍解ＮＳにかかる評価テーブルＴＢ２とでは、表の縦軸・横軸の一箇所にしか違いはない。具体的には、近傍解ＮＳの塩基配列は、図７に示すように、暫定解ＴＳの塩基配列のうちの一の塩基（Ｔ）のみが他の塩基（Ａ、ＧまたはＣ）に変更されている。
このため、評価テーブルＴＢ２の一部（演算省略領域）については、評価テーブルＴＢ１と値が同一である。そこで本方法では、近傍解ＮＳのＭＦＥ計算を行う場合に、暫定解ＴＳの配列ペアでＭＦＥ計算を行ったときの評価テーブルＴＢ１を参照することで、一部の計算を省略している。
【００８８】
より具体的には、本方法では、近傍解生成部２２により変更された塩基に対応する一部領域（図７における再計算領域）と演算省略領域との境界の値を、テーブル記憶部３３から呼び出す。そして、かかる境界値を初期値として、近傍解ＮＳの他端（ｉ＝１：ｍｉｎ，ｊ＝２ｎ：ｍａｘ）に向かって再計算領域の部分エネルギーを積算していくことで、近傍解ＮＳにかかる配列ペアのＭＦＥが算出される。
【００８９】
これにより、演算省略領域に対しては部分最適性の式（１４）の積算演算が不要となるため、近傍解ＮＳに関する評価計算を高速化することができる。
【００９０】
なお、一つの塩基配列において複数個の塩基が変更された場合には、当該塩基配列の一端から、複数個のうち最も当該一端に近い塩基までが、演算省略領域となる。
【００９１】
評価部２４は、近傍解ＮＳのＭＦＥが評価条件ＥＣを満たすか否かを判定する（図５：ステップＡ６）。具体的には、近傍解ＮＳの塩基配列ｓNEWと、配列集合Ｓ中の塩基配列ｓ'との配列ペアのうち、評価条件ＥＣである「式（１６）の制約条件を違反している配列ペア数」をカウントし、暫定解との比較を行う。
【００９２】
ここで、本実施形態の評価部２４は、塩基同士が互いに結合しているときの部分エネルギーが評価テーブルＴＢに与えられている当該塩基の対の少なくとも一方を、互いに相補的でない他の塩基に変更して生成された近傍解ＮＳについて、優先的に判定を行う。
【００９３】
すなわち、暫定解ＴＳにおけるＡ−Ｔ、またはＧ−Ｃの水素結合のいずれかを切断するように生成された塩基配列ｓNEWは結合エネルギーが減少してＭＦＥが大きくなり（ゼロに近づき）、制約条件を満足することが期待される。
換言すると、暫定解ＴＳの塩基配列ｓのうち、上式（１４）においてＶ（ｉ，ｊ）≠∞を満たす塩基ｉまたはｊを変更して生成された塩基配列ｓNEWについて、評価部２４は最初に評価を行う。
特に、上式（１４）においてＷ（ｉ，ｊ）＝Ｖ（ｉ，ｊ）である塩基ｉまたはｊの一方または両方を、変更後に再び相補的とならない塩基に変更してなる塩基配列ｓNEWについて、評価部２４は優先的に評価を行う。これにより、近傍解ＮＳのＭＦＥが向上することが期待され、他の近傍解ＮＳの評価を省略して最善解ＯＰを更新できる可能性がある。
【００９４】
評価部２４は、暫定解評価記憶部３２が最善解評価記憶部３５よりよい値の場合、最善解評価記憶部３５に暫定解評価記憶部３２の値を格納し、最善解記憶部３４に暫定解記憶部３１の値を格納する。
【００９５】
すなわち、塩基配列集合算出装置１００は、評価条件ＥＣを最も満たす塩基配列集合を最善解ＯＰとして記憶しておく最善解記憶部３４を備えている。
また、近傍解生成部２２は、暫定解ＴＳの塩基配列ｓの一部の塩基を変更した新たな塩基配列ｓNEWとすることで、近傍解ＮＳを生成する。
近傍解演算部２３は、近傍解ＮＳの複数の配列ペアの最小自由エネルギー（ＭＦＥ）をそれぞれ算出する。
評価部２４は、近傍解演算部２３の結果を受け、算出された近傍解ＮＳの評価が評価条件ＥＣを満たすかを判定する。
算出された複数の最小自由エネルギーが評価条件ＥＣを満たすと評価部２４が判定した場合であって、さらに、記憶された最善解ＯＰと比較して最小自由エネルギーの評価結果が改善された場合に、最善解記憶部３４は、変更前の塩基配列に代えて新たな塩基配列を最善解ＯＰとして記憶する。
【００９６】
塩基配列集合算出装置１００はテーブル更新部２５をさらに備えている。
テーブル更新部２５は、近傍解ＮＳにかかる最小自由エネルギーＭＦＥが評価条件ＥＣを満たすと評価部２４が判定した場合に、評価テーブルＴＢの一部領域を近傍解ＮＳの部分エネルギーに更新する。
【００９７】
これにより、テーブル記憶部３３には、暫定解ＴＳの塩基配列にかかる評価テーブルＴＢが記憶されることとなる。そして、テーブル記憶部３３に記憶された評価テーブルＴＢは、暫定解ＴＳの更新とともに上書きされて更新されていく。
【００９８】
ここで、入力部１０より入力された規定回数に亘って最善解が更新されずに下記の反復的な評価がループして繰り返された場合（図５：ステップＡ７＝ＹＥＳ）、最善解記憶部３４の解を出力部４０に出力する（図５：ステップＡ８）。
そうでない場合（図５：ステップＡ７＝ＮＯ）、近傍解生成ステップＡ３に戻って新たな近傍解ＮＳ２を生成し、そのＭＦＥを動的計画法で算出し（図５：ステップＡ５）、反復的に近傍解ＮＳ２の評価を行う（図５：ステップＡ６）。
【００９９】
すなわち、近傍解生成部２２は、更新した暫定解（すなわち評価条件ＥＣを満たす近傍解ＮＳの一つ）の一部の塩基を変更して新たな近傍解を生成する。
【０１００】
ここで、新たな近傍解ＮＳ２のＭＦＥを算出するにあたり、近傍解演算部２３は、更新された評価テーブルＴＢと、新たな近傍解ＮＳ２で変更された一部の塩基に対応する一部領域の部分エネルギーとに基づいて、動的計画法により新たな近傍解ＮＳ２の最小自由エネルギーＭＦＥを算出する。
これにより、塩基配列集合算出装置１００は、評価条件ＥＣを満たす近傍解を反復的に算出し、暫定解を繰り返し更新する。
【０１０１】
すなわち、図７に示したように、新たな近傍解ＮＳ２にかかる評価テーブルＴＢは、各塩基配列において、変更された一部の塩基に関する一部領域（再計算領域）を除いて、近傍解ＮＳにかかる評価テーブルＴＢと共通である。したがって、配列ペアの一端（始端）側にあたる演算省略領域に関しては近傍解ＮＳの評価テーブルＴＢを参照することで、部分最適性の式（１４）の積算演算を省略する。そして、変更された塩基よりも他端（終端）側にあたる一部領域（再計算領域）のみ、部分最適性の式（１４）を動的計画法で積算して、近傍解ＮＳ２にかかるＭＦＥを算出する。
【０１０２】
すなわち、ステップＡ４２およびステップＡ５において、近傍解ＮＳ２に属する多数の塩基配列ｓNEWと塩基配列ｓ'との配列ペアのＭＦＥを計算するにあたり、暫定解ＴＳで演算済みの配列ペアのＭＦＥに関しては再計算する必要はなく、評価テーブルＴＢを参照すればよい。
【０１０３】
また、最善解記憶部３４と最善解評価記憶部３５の更新が、入力部１０に入力された数のループ数以上なされなかった場合は、暫定解記憶部３１の中の塩基配列のうち、入力された配列本数だけをランダムな塩基配列に変化させ、暫定解評価記憶部３２を更新する。これにより、式（１６）の制約条件を満足する解が近傍解ＮＳ、ＮＳ２の近傍に存在しない場合でも、近傍解の反復的な更新を継続することができる。
【０１０４】
本実施形態によれば、データ処理装置である塩基配列集合算出装置１００で読み取り可能であって、塩基配列集合算出装置１００に各種動作を実行させる以下のプログラムが提供される。本実施形態のコンピュータプログラムは、情報記憶媒体に格納して提供することができる。
【０１０５】
すなわち、塩基配列集合算出装置１００のためのコンピュータプログラムであって、
配列集合Ｓに属する任意の一対の塩基配列を構成する塩基同士の局所的な部分エネルギーを動的計画法により積算して、当該一対の塩基配列の最小自由エネルギーを算出する初期演算処理と、
上記の積算の過程の部分エネルギーと、塩基と、を対応づけた評価テーブルＴＢを記憶するテーブル記憶処理と、
配列集合Ｓに属する塩基配列のうち、所定の制約に違反する一対の塩基配列の少なくとも一方における一部の塩基を変更して配列集合Ｓの近傍解ＮＳを生成する近傍解生成処理と、
上記一対の塩基配列の評価テーブルＴＢと、変更された塩基に対応する一部領域の部分エネルギーと、に基づいて、塩基が変更された上記の塩基配列と、配列集合Ｓに属する塩基配列との配列ペアの最小自由エネルギー（ＭＦＥ）を動的計画法により算出する近傍解演算処理と、
近傍解ＮＳにかかる最小自由エネルギーが所定の評価条件ＥＣを満たすか否かを判定する近傍解評価処理と、
を塩基配列集合算出装置１００に実行させるためのコンピュータプログラムである。
【０１０６】
なお本実施形態については種々の変形を許容する。
例えば、上記実施形態では確率的局所探索法を用いて近傍解を生成する場合を示したが、本発明はこれに限られない。具体的には、局所探索法に基づく設計アルゴリズムであり、かつ近傍の定義が配列中の一部の文字（例えば一文字）を変化させるものであれば、利用可能である。
【０１０７】
＜第二実施形態＞
図８は、本発明の第二実施形態にかかる塩基配列集合算出装置１００のブロック図である。
本実施形態の塩基配列集合算出装置１００は、ランダム解生成部２６を有する点で第一実施形態（図１を参照）と相違する。
図９は、本実施形態の塩基配列集合算出装置１００で実行される塩基配列集合算出方法のフローチャートである。
【０１０８】
本実施形態の塩基配列集合算出装置１００は、近傍解生成部２２が、配列集合Ｓに属する塩基配列からなる暫定解ＴＳから、この暫定解ＴＳに属するすべての塩基配列のそれぞれ一部の塩基を変更して、配列集合Ｓのサイズｍと同数の近傍解ＮＳを生成する。
そして、近傍解演算部２３は、塩基が変更された塩基配列のそれぞれに対して、当該塩基配列と、配列集合Ｓに属する他の塩基配列との配列ペアの最小自由エネルギー（ＭＦＥ）を動的計画法により算出する。
【０１０９】
また、本実施形態の塩基配列集合算出装置１００において、評価部２４は、近傍解ＮＳにかかるＭＦＥが評価条件ＥＣを満たすか否かを、配列集合Ｓのサイズｍと同数だけ行う。
そして、近傍解ＮＳにかかるいずれのＭＦＥも評価条件ＥＣを満たさないと評価部２４が判定した場合に、初期演算部２１は、配列集合Ｓに属する新たな塩基配列をランダムに作成する。
【０１１０】
図８、９を用いて、本実施形態をさらに説明する。
入力部１０からは、目的のＤＮＡ塩基配列の配列長ｎ、配列集合Ｓのサイズｍを入力する。また、パラメータとしてランダム生成ループ数が与えられる。
【０１１１】
初期演算部２１では、入力パラメータの処理と、最善解記憶部３４および最善解評価記憶部３５の初期化とを含む初期演算を行う（図９：ステップＢ１）。
【０１１２】
ランダム解生成部２６では、入力された配列長ｎと集合サイズｍの配列集合Ｓであるランダム解ＲＳを初期解として生成し（図９：ステップＢ２）、この配列集合Ｓの評価計算を行う。ランダム解ＲＳは、配列長ｎのｍ個の塩基配列の群である。
【０１１３】
本実施形態では、評価条件ＥＣとして、配列集合Ｓ中の配列ペアの最小自由エネルギー（ＭＦＥ）と制約定数との差：
Ｖａｌｕｅ（Ｓ）≡ｍｉｎ｛ΔＧｗｗ（Ｓ）−ｔｗｗ，０｝＋ｍｉｎ｛ΔＧｗｃ（Ｓ）−ｔｗｃ，０｝＋ｍｉｎ｛ΔＧｃｃ（Ｓ）−ｔｃｃ，０｝    （１７）
を用いる。この値は０が最大であり、大きいほど評価がよい。より具体的には、近傍解ＮＳに関するＶａｌｕｅ（ＮＳ）が、比較対象である最善解ＯＰに関するＶａｌｕｅ（ＯＰ）よりも大きい場合に、近傍解ＮＳが評価条件ＥＣを満たしたものとする。
【０１１４】
ランダム解生成部２６は、初期解にあたるランダム解ＲＳのすべての配列ペアについて動的計画法でＭＦＥを計算し、評価条件ＥＣのＶａｌｕｅ（Ｓ）を算出する。そして、ランダム解生成部２６は、算出されたＶａｌｕｅ（Ｓ）を暫定解評価記憶部３２および最善解評価記憶部３５に格納する。また、ランダム解生成部２６は、生成したランダム解ＲＳの配列集合Ｓを暫定解記憶部３１および最善解記憶部３４に格納する。
【０１１５】
さらに、ランダム解生成部２６は、ランダム解ＲＳの各配列ペアのＭＦＥを動的計画法で算出する過程で用いた評価テーブルＴＢをテーブル記憶部３３に格納する（図９：ステップＢ３）。
【０１１６】
つぎに、近傍解生成部２２では、暫定解記憶部３１を入力とし、近傍の定義に従い、配列集合Ｓ中の配列の一文字を別の文字に置き換えることで得られる配列集合を、近傍解ＮＳとして生成する（図９：ステップＢ４）。
【０１１７】
近傍解ＮＳには、配列集合Ｓ中の任意の塩基配列ｓの文字を一部（例えば、一文字）変化させることで得られる配列集合を要素とする群を用いる。また、局所探索法でのランダム多スタートと呼ばれる手法を適用し、多数のランダム解ＲＳに対してそれぞれ塩基の一部を変化させて近傍解ＮＳを生成する。
【０１１８】
本実施形態の近傍解生成部２２は、ランダム解ＲＳに属する総ての塩基配列ｓについて、配列長ｎの塩基（例えば、アデニン（Ａ））を、他の塩基（チミン（Ｔ）・グアニン（Ｇ）・シトシン（Ｃ））にそれぞれ変更することで、多数の新たな塩基配列を近傍解ＮＳとして生成する。
【０１１９】
具体的には、配列長ｎ＝１２、集合サイズｍ＝５０とすると、近傍解生成部２２は、１２×５０×３＝１８００個の塩基配列ｓNEWをからなる近傍解ＮＳを生成する。
【０１２０】
近傍解演算部２３は、全ての近傍解ＮＳにかかるＭＦＥを動的計画法でそれぞれ算出する。このとき、ランダム解生成部２６がテーブル記憶部３３に格納した評価テーブルＴＢを参照して、動的計画法の積算演算の一部を省略する。
【０１２１】
具体的には、１８００個の塩基配列ｓNEWと他の塩基配列ｓ'との配列ペアのＭＦＥについては、図７に示したように一部（演算省略領域）の積算演算を省略する。
そして、ランダム解生成部２６に塩基変更されていない塩基配列ｓ'同士の配列ペアについては、評価テーブルＴＢを参照するだけでＭＦＥが取得でき、動的計画法による積算演算は不要である。
【０１２２】
これにより、本実施形態のように多数の塩基配列ｓNEWが近傍解ＮＳとして生成された場合でも、動的計画法によるＭＦＥの算出にあたって演算の過負荷が生じることが回避される。
【０１２３】
評価部２４は、上記の評価条件で評価を行い、暫定解評価記憶部３２よりも良い評価の解（改善解）が存在するか否か、すなわち、Ｖａｌｕｅ（ＯＰ）よりも大きなＶａｌｕｅ（ＮＳ）が算出されるか否か、を判定する（図９：ステップＢ５）。
【０１２４】
より良い評価の解（改善解）が存在した場合（図９：ステップＢ５＝ＹＥＳ）は、評価部２４は、改善解および評価結果を、それぞれ暫定解記憶部３１および暫定解評価記憶部３２に格納する。
また、このとき、テーブル更新部２５は、当該改善解の評価に用いた評価テーブルＴＢをテーブル記憶部３３に格納する（図９：ステップＢ６）。
【０１２５】
評価部２４は、暫定解評価記憶部３２が最善解評価記憶部３５より良い場合に、最善解記憶部３４と最善解評価記憶部３５に、暫定解記憶部３１と暫定解評価記憶部３２の値を格納する。その後、ステップＢ４へ戻り、新たな近傍解ＮＳを生成する（図９：ステップＢ６）。
【０１２６】
より良い評価の解が存在しない場合（図９：ステップＢ５＝ＮＯ）は、その解は局所最適解となるため、探索を打ち切る。
この打ち切りの回数が、入力部１０に入力されたランダム生成ループ数を超えていないかを判定する（図９：ステップＢ７）。超えていない場合（図９：ステップＢ７＝ＮＯ）はステップＢ２へ戻り、ランダム解生成部２６により新たなランダム解ＲＳを作成する。
【０１２７】
ランダム生成ループ数を超えている場合（図９：ステップＢ７＝ＹＥＳ）は、最善解記憶部３４の解（改善解）を出力部４０に出力する（図９：ステップＢ８）。
【０１２８】
以上、第一および第二実施形態の塩基配列集合算出装置１００によれば、所定の評価条件ＥＣを満たす塩基配列が反復的に算出される。ここで、所定の反復回数ごとに式（１６）の制約定数をゼロに近接させていくことで、配列集合Ｓ中の塩基配列は、任意の配列ペアのＭＦＥの閾値が徐々に高められていくため、例えばＤＮＡコンピュータに適した自律的に反応しやすい人工的な塩基配列が求まる。
一方、本実施形態の塩基配列集合算出装置１００においては、制約定数を固定値とし、集合サイズｍを非固定値として、所定の評価条件ＥＣを満たす塩基配列のすべてを出力してもよい。これにより、例えばＤＮＡコンピュータに用いられる多数の塩基配列を算出することができる。
【符号の説明】
【０１２９】
１０    入力部
２０    データ処理部
２１    初期演算部
２２    近傍解生成部
２３    近傍解演算部
２４    評価部
２５    テーブル更新部
２６    ランダム解生成部
３０    記憶部
３１    暫定解記憶部
３２    暫定解評価記憶部
３３    テーブル記憶部
３４    最善解記憶部
３５    最善解評価記憶部
４０    出力部
５０    バス
１００    塩基配列集合算出装置
【図１】
2011186632.tif 000007
【図２】
2011186632.tif 000008
【図３】
2011186632.tif 000009
【図４】
2011186632.tif 000010
【図５】
2011186632.tif 000011
【図６】
2011186632.tif 000012
【図７】
2011186632.tif 000013
【図８】
2011186632.tif 000014
【図９】
2011186632.tif 000015