JP5528249B2 - 最適アラインメント計算装置及びプログラム - Google Patents
最適アラインメント計算装置及びプログラム Download PDFInfo
- Publication number
- JP5528249B2 JP5528249B2 JP2010171432A JP2010171432A JP5528249B2 JP 5528249 B2 JP5528249 B2 JP 5528249B2 JP 2010171432 A JP2010171432 A JP 2010171432A JP 2010171432 A JP2010171432 A JP 2010171432A JP 5528249 B2 JP5528249 B2 JP 5528249B2
- Authority
- JP
- Japan
- Prior art keywords
- character string
- character
- word
- optimal alignment
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
等式C[i, j]−C[i, j−1] = 1が成立するか否かを表わすブール変数をPh[i, j]、
等式C[i, j]−C[i, j−1] = −1が成立するか否かを表わすブール変数をMh[i, j]、
等式C[i, j]−C[i−1, j] = 1が成立するか否かを表わすブール変数をPv[i, j]、
等式C[i, j]−C[i−1, j] = −1が成立するか否かを表わすブール変数をMv[i, j]、
クエリー配列のインデクス iの文字(i番目の文字)qiとターゲット配列のインデクスjの文字tjとが一致するか否かを表わすブール変数をEq(i, j)、
と表わし、これらの 1ビット(偽または真、即ち、0または1)で表わされるブール変数をi = 1, 2, ..., m について下位ビットより昇順に並べてできるワード変数を、
(数1)
Ph(j) = [ Ph[m, j], ・・・ , Ph[2, j], Ph[1, j] ]
Mh(j) = [ Mh[m, j], ・・・ , Mh[2, j], Mh[1, j] ]
Pv(j) = [ Pv[m, j], ・・・ , Pv[2, j], Pv[1, j] ]
Mv(j) = [ Mv[m, j], ・・・ , Mv[2, j], Mv[1, j] ]
Eq(j) = [ Eq[m, j], ・・・ , Eq[2, j], Eq[1, j] ]
と表わし、さらに記号の簡略化のためにjを一つの値に固定して、Ph(j), Mh(j), Pv(j), Mv(j), Eq(j) の値をそれぞれ、Ph, Mh, Pv, Mv, Eqと略記し、Xv、Xhを補助ワード変数として、
(数2)
Xh = ((Eq & Pv) + Pv) ^ Pv | Eq
Ph = Mv | ~ (Xh | Pv)
Mh = Pv & Xh
Ph <<= 1
Mh <<= 1
Xv = Eq | Mv
Pv = Mh | ~(Xv | Ph)
Mv = Ph & Xv
によりビット並列な整数演算を行い、Ph, Mh, Pv, Mvの値を上書きする。ここで、ワード変数a、bに対して、a|bはビットごとのOR演算、a&bはビットごとのAND演算、a ^ bはビットごとの排他的論理和演算、a + bは整数としての加算、~aはビットごとのNOT演算、a<<=1は1ビットの左シフト演算を表わす。これにより、Ph, Mh, Pv, Mvの値は、Ph(j+1), Mh(j+1), Pv(j+1), Mv(j+1) の値に更新される。これが、アラインメント処理をビット並列化する中核部分であり、これにより処理が高速化される。
(数3)
Ph(k) = [ Ph[i, j] | i + j = k, −m < i−j ≦ m ]
Mh(k) = [ Mh[i, j] | i + j = k, −m < i−j ≦ m ]
Pv(k) = [ Pv[i, j] | i + j = k, −m < i−j ≦ m ]
Mv(k) = [ Mv[i, j] | i + j = k, −m < i−j ≦ m ]
Eq(k) = [ Eq[i, j] | i + j = k, −m < i−j ≦ m ]
とする。ここで、ビット変数をワード変数に詰め込む順番は、jについて下位ビットから昇順とする。さらに、記号の簡略化のためにkを一つの値に固定して、Ph(k), Mh(k), Pv(k), Mv(k), Eq(k) の値をそれぞれ、Ph, Mh, Pv, Mv, Eqと略記し、Xv、Xhを補助ワード変数として、
kが偶数のときは、
(数4)
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
kが奇数のときは、
(数5)
Ph >>= 1; Mh >>= 1;
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
Pv' << = 1; Mv' <<= 1;
に従ってビット並列な整数演算を行い、Ph', Mh', Pv,' Mv'の値を計算する。これらは、Ph(k+1), Mh(k+1), Pv(k+1), Mv(k+1) の値を与える。これが、アラインメント処理をビット並列化する中核部分である。
以下、本発明の実施例を図面を用いて詳細に説明する。
本実施例では、リード(クエリー配列)と参照ゲノム配列データが与えられたとき、リードに類似した部分配列が存在するゲノム配列内の位置(マッピング位置)を求め、クエリー配列とマッピング位置周辺のゲノム部分配列(ターゲット配列)との最適アラインメントを求めるための方法を説明する。通常、DNAシーケンサから得られるリード配列は塩基配列であるため、以下、リード配列は塩基配列であると仮定する。特殊な場合として、2ベース・エンコーディング方式を採用したDNAシーケンサでは、リード配列は、隣り合う2塩基を4色に符号化したカラー配列となる(非特許文献7)。このような場合は、参照ゲノム配列をカラー配列に変換して、本実施例で述べる方法に類似の方法を適用することは、容易な類推により可能である。また、アミノ酸配列をクエリー配列として、参照タンパク配列データベースを検索する課題に対しても、容易な類推により、本実施例で述べる方法に類似の方法が適用可能である。また、文字列や画像を含む文書その他のデータベースを検索する課題に対しても、容易な類推により、本実施例で述べる方法に類似の方法が適用可能である。
等式C[i, j]−C[i, j−1] = 1が成立するか否かを表わすブール変数をPh[i, j]、
等式C[i, j]−C[i, j−1] = −1が成立するか否かを表わすブール変数をMh[i, j]、
等式C[i, j]−C[i−1, j] = 1が成立するか否かを表わすブール変数をPv[i, j]、
等式C[i, j]−C[i−1, j] = −1が成立するか否かを表わすブール変数をMv[i, j]、
クエリー配列のインデクスiの文字(i番目の文字)qi とターゲット配列のインデクスjの文字(j番目の文字) tj が一致するか否かを表わすブール変数をEq(i, j)、
と表わす。また、セミ・グローバルなアラインメントに対応する境界条件として、C[i, 0] = i, C[0, j] = 0と定める。任意の1≦ i ≦m,1≦ j ≦nに対して、
(数6)
Mh = Mh[i−1, j]; Ph = Ph[i−1, j];
Mv = Mh[i, j−1]; Pv = Pv[i, j−1];
Mh' = Mh[i, j]; Ph' = Ph[i, j];
Mv' = Mv[i, j]; Pv' = Pv[i, j];
Eq = Eq[i, j];
と略記すると、これらブール変数の間には、
(数7)
Xv = Eq or Mv; Pv' = Mh or not(Xv or Ph); Mv' = Ph and Xv;
Xh = Eq or Mh; Ph' = Mv or not(Xh or Pv); Mh' = Pv and Xh;
の関係式が成立する(非特許文献5)。ここで、XvとXhは補助のブール変数を表わす。この関係式を反復して利用することによりC[i, j]の値を全て計算することができ、DP行列の下辺でC[m, j](j = 1, 2, ... , n)の最小値を与える点 (m, j) からトレースバックすることにより最適なアラインメントを求めることができる(非特許文献8)。
k が偶数 k = 2k' の場合、
(数8)
[i, j] = [k' + w', k'−w'], ..., [k'+1, k'−1], [k', k'], [k'−1, k'+1],
..., [k'−w' + 1, k' + w'−1]
k が奇数 k = 2k' + 1 の場合、
(数9)
[i, j] = [k' + w', k'−w' + 1], ..., [k'+1, k'], [k', k'+1],
..., [k'−w' + 1, k' + w']
となる。そこで、これらの2重インデクス(格子点)に、(1重)インデクスα= k'−i を対応させれば、kが偶数であるか奇数であるかに関わらず、これらは、
α = −w', −w' + 1, ..., −1, 0, 1, ..., w'−1
に対応する。そこで、wビットのワード変数の各ビットを、下位ビットより順にこれらでインデクス付けして対応させる。以下、説明を簡単にするために w = 4 として、図を用いてこれらの対応関係を具体的に説明する。
(数4)
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
により、ビット並列に計算できる。ここで、ワード変数a、bに対して、a|bはビットごとのOR演算、a&bはビットごとのAND演算、~aはビットごとのNOT演算を表わす。一方、kが奇数の場合は、図6右に示すように、kに対応する左辺と上辺の入力側ブール変数603はPv[α], Mv[α] , Ph[α+1], Mh[α+1] であり、また、k+1に対応する下辺と右辺の出力側ブール変数604はPh[α], Mh[α], Pv[α+1], Mv[α+1] であり、インデクスαに+1のずれが生じている。そこで、この場合は、上記のワード変数 Ph, Mh, Pv, Mv 及び Ph', Mh', Pv', Mv' に対して、前後にビットシフト演算を行えば、(数7)と同様な関係式が適用可能となる。即ち、この場合は、
(数5)
Ph >>= 1; Mh >>= 1;
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
Pv' <<= 1; Mv' <<= 1;
により、ビット並列に計算できる。ここで、ワード変数aに対して、a<<=1 は1ビットの左シフト演算、a>>=1 は1ビットの右シフト演算を表わす。
k が偶数 k = 2k' の場合、
(数10)
Eq(2k') = [ Eq[−w'], ..., Eq[−1], Eq[0], Eq[1], ..., Eq[w'−1 ] ]
= [ Eq[k'−w' + 1, k' + w'−1], ...,
Eq[k'−1, k'+1], Eq[k', k'], Eq[k'+1, k'−1],
..., Eq[k' + w', k'−w'] ]
k が奇数 k = 2k' + 1 の場合、
(数11)
Eq(2k'+1) = [ Eq[−w'], ..., Eq[−1], Eq[0], Eq[1], ..., Eq[w'−1 ] ]
= [ Eq[k'−w' + 1, k' + w'], ...,
Eq[k', k'+1], Eq[k'+1, k'],
..., Eq[k' + w', k'−w' + 1] ]
となる。ここで、外側の[ , , ... , ] はビットを並べてできる整数値を表わし(右端が最下位ビット)、Eq[i, j] は、クエリー配列 q = q1 q2 ... qm のi番目の文字(塩基)qiとターゲット配列 t = t1 t2 ... tn のj番目の文字(塩基)tjが一致するか否かを表わすブール変数を表わす。4種類の塩基A, C, G, Tの2ビット符号化 Aa00, Ca01, Ga10, Ta11 における下位ビットをl、上位ビットをu と表わし、l(A) = l(G) = 0, l(G) = l(T) = 1, u(A) = u(C) = 0, u(G) = u(T) = 1 とすると、
(数12)
Eq[i, j] = not( ( l(qi) xor l(tj) ) or ( u(qi) xor u(tj) ))
が成り立つ。ここで、xorはブール変数の排他的論理和を表わす。そこで、ブール変数l(tj)、u(tj)を最下位ビットから昇順に並べてできるワード変数をTl, Tu、ブール変数l(qi)、u(qi)を最上位ビットから降順に並べてできるワード変数をQl, Quとすれば、
ワード変数Eqは、
(数13)
Eq = ~( ( Ql ^ Tl ) | ( Qu ^ Tu ))
のようにビット並列に計算できる。ここで、ワード変数a, bに対して、a ^ bはビットごとの排他的論理和演算を表わす。一方、Tl, Tu, Ql, Quは、k について帰納的にビットシフト演算を用いて計算できる。但し、ビットシフトによって空いたビットには、クエリー配列またはターゲット配列の対応する文字の符号化ビットをセットする。図7にw = 4 の場合のk = 4, 5, 6に対応するTl, Tu, Ql, Quの計算方法を示す。一般の場合に、kが増加するときのTl, Tu, Ql, Quの値の更新方法を具体的に式で表わすと、
kが奇数(k = 2k' + 1)のとき、
(数14)
Ql <<= 1; Ql |= l(qi);
Qu <<= 1; Qu |= u(qi);
kが偶数(k = 2k')のとき、
(数15)
Tl >>= 1; Tl |= (l(tj) << (w−1));
Tu >>= 1; Tu |= (u(tj) << (w−1));
となる。ここで、qi, tjはクエリー配列とターゲット配列から新たに読み込まれる文字を表わし、i = w' + k' + 1、j = w' + k' である。また、ワード変数a, b に対して、a = a | b を a |= b と略記する。
実施例1では、DP行列の対角線周辺領域として −w < i−j≦w を満たす2重インデクス (i, j) の範囲を採用した。ここで、wは計算機のワード長を表わす。この場合、実施例1の方法で最適なアラインメントが求まるためには、挿入長、欠失長の累積値が w 未満でなければならない。従って、より多くの挿入・欠失を含むような最適なアラインメントを求める必要がある場合には、DP行列の対角線周辺領域の幅を広げる必要がある。本実施例では、DP行列の対角線周辺領域の幅を、実施例1の2倍に広げるために、実施例1の方法を修正して適用する方法を説明する。DP行列の対角線周辺領域の幅を3倍以上に広げる場合も、容易な類推により、同様な方法が可能である。
102 クエリー配列のインデクス(文字位置)
103 ターゲット配列のインデクス(文字位置)
104 DP行列の対角線:i = j
105 DP行列内の対角線周辺領域の境界線:i−j = ±w
106 DP行列内の対角線周辺領域:−w < i−j ≦w
107 奇数の k に対応する水平または垂直方向の隣接格子点を結ぶ辺
108 偶数の k に対応する水平または垂直方向の隣接格子点を結ぶ辺
109 DP行列内の隣接格子点を結ぶ辺で囲まれたセル
110 ワード・データ:Ph, Mh, Pv, Mv, Eq
111 ワード・データに対するビット並列演算
201 計算機
202 外部記憶装置
203 ゲノム配列データベース
204 DNAシーケンサ
205 DNAサンプル
206 リード配列データ(クエリー配列データ)
207 データ入力装置
208 パラメータ入力装置
209 主記憶装置
210 シード検索処理部
211 詳細比較処理部
212 最適アラインメント計算処理部
213 出力処理部
214 出力装置
215 検索結果(ゲノム・マッピング位置情報)
216 最適アラインメント結果(塩基変異の情報)
301 DP行列の格子点
302 入力側ブール変数
303 出力側ブール変数
407 対角線周辺領域に含まれ、和がk = 5(奇数)となる2重インデクス [ i, j ] の位置(格子点)の集合
408 対角線周辺領域に含まれ、和がk = 5(奇数)となる2重インデクス [ i, j ] の位置(格子点)
409 対角線周辺領域に含まれ、和がk = 5(奇数)となる2重インデクス [ i, j ] の位置(格子点)の集合
410 対角線周辺領域に含まれ、和がk = 5(奇数)となる2重インデクス [ i, j ] の位置(格子点)
411 ワード変数のインデクス
501 水平方向の隣接辺に対応するブール変数への(1重)インデクスαの対応付け
502 垂直方向の隣接辺に対応するブール変数への(1重)インデクスαの対応付け
503 対角線周辺領域内で、一定のkに対応する(1重)インデクス付けされた(水平または垂直方向の隣接辺に対応する)ブール変数の集合
504 対角線周辺領域内で、一定のkに対応する(1重)インデクス付けされた(水平方向の隣接辺に対応する)ブール変数の集合を詰め込んだワード変数
505 対角線周辺領域内で、一定のkに対応する(1重)インデクス付けされた(垂直方向の隣接辺に対応する)ブール変数の集合を詰め込んだワード変数
601 kが偶数のときの入力側ブール変数
602 k + 1が奇数のときの出力側ブール変数
603 kが奇数のときの入力側ブール変数
604 k + 1が偶数のときの出力側ブール変数
901 DPコスト値を得るために累積されるDPコストの差分値
902 DP行列の下辺上で、対角線周辺領域106に含まれる範囲(DPコスト値の最小値を探す範囲)
Claims (5)
- 文字列データベースを記憶する記憶装置と、
検索文字列を入力する入力装置と、
二つの文字列が類似していると判定されるためのアラインメント・コストの上限値を入力する入力装置と、
前記検索文字列と前記文字列データベースを比較して、両者に共有される部分配列(シード配列)の文字列データベース中の出現位置を検索するシード検索処理部と、
前記シード検索処理部により得られる前記文字列データベース内の前記シード配列の出現位置の各々に対して、前記文字列データベース内におけるその近傍の部分文字列(ターゲット配列)と前記検索文字列全体とを比較して最適なアラインメントを算出し、そのコストを前記上限値と比較することにより、その位置に前記検索文字列全体に類似した配列が含まれているか否かを判定する詳細比較処理部と、
前記詳細比較処理部の前記判定結果に基づき、前記検索文字列に類似した配列が現れる前記文字列データベースの出現位置、及び、前記最適なアラインメントを出力する出力装置を有し、
前記詳細比較処理部は、前記検索文字列と前記ターゲット配列の二つの文字列データに対する前記最適なアラインメントを算出するために、部分配列に対する最適なアラインメントを順次伸長させる処理(伸長処理)を繰り返す動的計画法に基づく処理を実行し、
前記伸長処理において、それぞれの文字列データから新たな文字を読み込んで比較を行い最適なアラインメントを伸長させる際、比較される文字のインデクス(文字列先頭から数えた文字位置)の差の絶対値が計算機のワード長以下になるものに処理を制限することにより、それらのインデクスの和が一定になる伸長処理の数をワード長以下に抑えて、計算機のワードに対する演算のビット並列性を利用して、それらの伸長処理を1プロセッサで並列に行う
ことを特徴とする最適アラインメント計算装置。 - 検索文字列とターゲット配列を入力する入力装置と、
二つの文字列が類似していると判定されるためのアラインメント・コストの上限値を入力する入力装置と、
前記ターゲット配列と前記検索文字列全体とを比較して最適なアラインメントを算出し、そのコストを前記上限値と比較することにより、前記ターゲット配列内に前記検索文字列全体に類似した配列が含まれているか否かを判定する詳細比較処理部と、
前記詳細比較処理部の前記判定結果、及び、前記最適なアラインメントを出力する出力装置を有し、
前記詳細比較処理部は、前記検索文字列と前記ターゲット配列の二つの文字列データに対する前記最適なアラインメントを算出するために、部分配列に対する最適なアラインメントを順次伸長させる処理(伸長処理)を繰り返す動的計画法に基づく処理を実行し、
前記伸長処理において、それぞれの文字列データから新たな文字を読み込んで比較を行い最適なアラインメントを伸長させる際、比較される文字のインデクス(文字列先頭から数えた文字位置)の差の絶対値が計算機のワード長以下になるものに処理を制限することにより、それらのインデクスの和が一定になる伸長処理の数をワード長以下に抑えて、計算機のワードに対する演算のビット並列性を利用して、それらの伸長処理を1プロセッサで並列に行う
ことを特徴とする最適アラインメント計算装置。 - 請求項1に記載の最適アラインメント計算装置において、
アラインメント内での1文字の置換、挿入、欠失のコストを1として、
前記検索文字列の先頭からインデクスiまでの部分文字列と前記近傍文字列の先頭からインデクスjまでの部分文字列との最適なアラインメントのコストをC[i, j]で表わし
等式C[i, j]−C[i, j−1] = 1が成立するか否かをブール変数をPh[i, j]で表わし、
等式C[i, j]−C[i, j−1] = −1が成立するか否かをブール変数Mh[i, j]で表わし、
等式C[i, j]−C[i−1, j] = 1が成立するか否かをブール変数Pv[i, j]で表わし、
等式C[i, j]−C[i−1, j] = −1が成立するか否かをブール変数Mv[i, j]で表わし、
前記検索文字列のインデクスiの文字と前記近傍文字列のインデクスjの文字が一致するか否かをブール変数Eq(i, j)で表わし、
計算機のワード長をwで表わし、
iとjの差の絶対値がw未満で和がkとなるiとjの組に対して、0または1の1ビットで表わされる前記ブール変数Ph[i, j]をjについて最下位ビットより昇順に並べてできるワードをPh(k)と表わし、また、同様な方法で前記ブール変数Mh[i, j]、 Pv[i, j]、 Mv[i, j]、 Eq[i, j]を並べてできるワード変数をMh(k)、Pv(k)、Mv(k)、Eq(k)と表し、
計算機によるワード変数a、bに対する演算として、ビットごとのOR演算をa|b、ビットごとのAND演算をa&b、ビットごとのNOT演算を~a、1ビットの左シフト演算を a<<=1、1ビットの右シフト演算を a>>=1と表わし、
以下、記号の簡略化のためkを一つの値に固定して、前記ワード変数 Ph(k)、Mh(k)、Pv(k)、Mv(k)、Eq(k) を、Ph、Mh、Pv、Mv、Eq と表わし、
Xv、Xhを補助ワード変数として、
kが偶数のとき、
(数1)
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
に従い、
kが奇数のとき、
(数2)
Ph >>= 1; Mh >>= 1;
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
Pv' <<= 1; Mv' <<= 1;
に従い、Ph'、Mh'、Pv'、Mv' を計算してワード変数 Ph(k+1)、Mh(k+1)、Pv(k+1)、Mv(k+1) の値を得ることにより伸長処理の計算を行う
ことを特徴とする最適アラインメント計算装置。 - 請求項2に記載の最適アラインメント計算装置において、
アラインメント内での1文字の置換、挿入、欠失のコストを1として、
前記検索文字列の先頭からインデクスiまでの部分文字列と前記近傍文字列の先頭からインデクスjまでの部分文字列との最適なアラインメントのコストをC[i, j]で表わし
等式C[i, j]−C[i, j−1] = 1が成立するか否かをブール変数をPh[i, j]で表わし、
等式C[i, j]−C[i, j−1] = −1が成立するか否かをブール変数Mh[i, j]で表わし、
等式C[i, j]−C[i−1, j] = 1が成立するか否かをブール変数Pv[i, j]で表わし、
等式C[i, j]−C[i−1, j] = −1が成立するか否かをブール変数Mv[i, j]で表わし、
前記検索文字列のインデクスiの文字と前記近傍文字列のインデクスjの文字が一致するか否かをブール変数Eq(i, j)で表わし、
計算機のワード長をwで表わし、
iとjの差の絶対値がw未満で和がkとなるiとjの組に対して、0または1の1ビットで表わされる前記ブール変数Ph[i, j]をjについて最下位ビットより昇順に並べてできるワードをPh(k)と表わし、また、同様な方法で前記ブール変数Mh[i, j]、 Pv[i, j]、 Mv[i, j]、 Eq[i, j]を並べてできるワード変数をMh(k)、Pv(k)、Mv(k)、Eq(k)と表し、
計算機によるワード変数a、bに対する演算として、ビットごとのOR演算をa|b、ビットごとのAND演算をa&b、ビットごとのNOT演算を~a、1ビットの左シフト演算を a<<=1、1ビットの右シフト演算を a>>=1と表わし、
以下、記号の簡略化のためkを一つの値に固定して、前記ワード変数 Ph(k)、Mh(k)、Pv(k)、Mv(k)、Eq(k) を、Ph、Mh、Pv、Mv、Eq と表わし、
Xv、Xhを補助ワード変数として、
kが偶数のとき、
(数1)
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
に従い、
kが奇数のとき、
(数2)
Ph >>= 1; Mh >>= 1;
Xv = Eq | Mv; Pv' = Mh | ~(Xv | Ph); Mv' = Ph & Xv;
Xh = Eq | Mh; Ph' = Mv | ~(Xh | Pv); Mh' = Pv & Xh;
Pv' <<= 1; Mv' <<= 1;
に従い、Ph'、Mh'、Pv'、Mv' を計算してワード変数 Ph(k+1)、Mh(k+1)、Pv(k+1)、Mv(k+1) の値を得ることにより伸長処理の計算を行う
ことを特徴とする最適アラインメント計算装置。 - コンピュータに、
検索文字列とターゲット配列の入力を受付ける処理と、
二つの文字列が類似していると判定されるためのアラインメント・コストの上限値の入力を受付ける処理と、
前記ターゲット配列と前記検索文字列全体とを比較して最適なアラインメントを算出し、そのコストを前記上限値と比較することにより、前記ターゲット配列内に前記検索文字列全体に類似した配列が含まれているか否かを判定する詳細比較処理と、
前記詳細比較処理の前記判定結果、及び、前記最適なアラインメントを出力装置に出力する処理とを実行させるプログラムであり、
前記詳細比較処理は、前記検索文字列と前記ターゲット配列の二つの文字列データに対する前記最適なアラインメントを算出するために、部分配列に対する最適なアラインメントを順次伸長させる処理(伸長処理)を繰り返す動的計画法に基づく処理を実行し、
前記伸長処理において、それぞれの文字列データから新たな文字を読み込んで比較を行い最適なアラインメントを伸長させる際、比較される文字のインデクス(文字列先頭から数えた文字位置)の差の絶対値が計算機のワード長以下になるものに処理を制限することにより、それらのインデクスの和が一定になる伸長処理の数をワード長以下に抑えて、計算機のワードに対する演算のビット並列性を利用して、それらの伸長処理を1プロセッサで並列に行う
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171432A JP5528249B2 (ja) | 2010-07-30 | 2010-07-30 | 最適アラインメント計算装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171432A JP5528249B2 (ja) | 2010-07-30 | 2010-07-30 | 最適アラインメント計算装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012032975A JP2012032975A (ja) | 2012-02-16 |
JP5528249B2 true JP5528249B2 (ja) | 2014-06-25 |
Family
ID=45846318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010171432A Active JP5528249B2 (ja) | 2010-07-30 | 2010-07-30 | 最適アラインメント計算装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5528249B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3103176A1 (en) * | 2018-06-14 | 2019-12-19 | Sophia Genetics Sa | Methods for detecting variants in next-generation sequencing genomic data |
US11941534B2 (en) * | 2019-12-28 | 2024-03-26 | Intel Corporation | Genome sequence alignment system and method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0793370A (ja) * | 1993-09-27 | 1995-04-07 | Hitachi Device Eng Co Ltd | 遺伝子データベース検索システム |
-
2010
- 2010-07-30 JP JP2010171432A patent/JP5528249B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012032975A (ja) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11810648B2 (en) | Systems and methods for adaptive local alignment for graph genomes | |
Suzuki et al. | GHOSTX: an improved sequence homology search algorithm using a query suffix array and a database suffix array | |
Bauer et al. | Accurate multiple sequence-structure alignment of RNA sequences using combinatorial optimization | |
de Oliveira Sandes et al. | CUDAlign 4.0: Incremental speculative traceback for exact chromosome-wide alignment in GPU clusters | |
Helal et al. | Alto: Adaptive linearized storage of sparse tensors | |
Komarov et al. | Fast k-NNG construction with GPU-based quick multi-select | |
WO2013128333A1 (en) | Finding a best matching string among a set of stings | |
Sarkar et al. | An algorithm for DNA read alignment on quantum accelerators | |
Tran et al. | Bit-parallel approximate pattern matching: Kepler GPU versus Xeon Phi | |
Perdacher et al. | Cache-oblivious high-performance similarity join | |
Dashti et al. | Efficient computation of k-nearest neighbour graphs for large high-dimensional data sets on GPU clusters | |
Uno | Multi-sorting algorithm for finding pairs of similar short substrings from large-scale string data | |
Sadiq et al. | NvPD: novel parallel edit distance algorithm, correctness, and performance evaluation | |
JP5528249B2 (ja) | 最適アラインメント計算装置及びプログラム | |
Harrison et al. | High performance rearrangement and multiplication routines for sparse tensor arithmetic | |
Sarje et al. | Parallel genomic alignments on the cell broadband engine | |
Akbari Rokn Abadi et al. | WalkIm: Compact image-based encoding for high-performance classification of biological sequences using simple tuning-free CNNs | |
Carletti et al. | Graph-based representations for supporting genome data analysis and visualization: Opportunities and challenges | |
Zymbler et al. | High-Performance Time Series Anomaly Discovery on Graphics Processors | |
Pham et al. | Accelerating bwa-mem read mapping on gpus | |
CN110111837B (zh) | 基于两阶段结构比对的蛋白质相似性的搜索方法及系统 | |
JP4460277B2 (ja) | 画像の対応点探索方法、対応点探索装置および対応点探索プログラム | |
Kimura et al. | A bit-parallel dynamic programming algorithm suitable for DNA sequence alignment | |
Abbas et al. | Parallelizing exact motif finding algorithms on multi-core | |
Roddy et al. | nail: software for high-speed, high-sensitivity protein sequence annotation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140401 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140415 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5528249 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |