明 細 書 ヌクレオチドの配列情報及びアミノ酸の配列情報を記録するための方法及び装
技術分野 本発明は、 例えば DNA (デォキシリポ核酸: deoxyribonucleic acid)又は RNA (リポ核酸: ribonucleic acid) 等の核酸や遺伝子の少なくとも一部を 構成する一群のヌクレオチドの配列情報、 及びタンパク質の少なくとも一部を 構成する一群のアミノ酸の配列情報の記録方法及び装置に関する。 更に本発明 は、 その配列情報を供給するためのビジネスモデルとして好適な配列情報の供 給方法、 その配列情報を記録したコンピュータ読み取り可能な記録媒体、 及び その配列情報の記録方法を使用する場合に好適な要約値算出方法に関する。 背景技術
人間、 及び他の生物 (動物、 植物、 微生物等) の DNAを構成する 1対のヌ クレオチドの鎖 (又は塩基の鎖) の配列情報の解読が世界的に行われている。 この場合、 従来より DNAを構成する 4種類のヌクレオチドは、 塩基としてァ デニンを含むヌクレオチド、 グァニンを含むヌクレオチド、 シトシンを含むヌ クレオチド、 及びチミンを含むヌクレオチドにそれぞれ文字 A, G, C, 及び Tを割り当てることによって、 それぞれ 1バイト (=8ビット) のテキストデ 一夕で表わされている。 その結果として一つの DN Aの配列は、 それを構成す る 1対の重合体の鎖の内の一方の鎖のヌクレオチド (n個とする) の配列を順 次文字 A, G, C, T (又は a, g, c, t) の何れかで表すことによって、 nバイトのテキストデ一夕で表されていた。 同様に、 一つの RNAを構成する
1本の n個のヌクレオチドの配列は、 チミンを含むヌクレオチドの代わりにゥ ラシルを含むヌクレオチドに文字 U (又は u) を割り当てることによって、 n バイ卜のテキストデータで表されていた。
これに関して、 例えば人間の最も大きい第 1染色体中の DNAの配列は、 約 2億 5千万個のヌクレオチドの配列であり、 最も小さい第 22染色体中の DN Aの配列は、 約 5000万個のヌクレオチドの配列であるため、 人間の各染色 体中の DNAの配列は、 約 250Mバイト〜 50 Mバイトのテキストデータで 表すことができる。 更に、 一人の人間の全部の DNA情報 (ゲノム) は、 約 3 0億個のヌクレオチドの配列で表すことができるため、 そのゲノムは、 約 3G バイトのテキストデ一夕で記録することができる。 なお、 それらのテキストデ —夕に対して通常のファイル圧縮技術を適用することによって、 それらのテキ ストデ一夕は、 例えば元のデ一夕の 50%程度の圧縮ファイルとしても記録、 又は送信することができる。
また、 DNAの配列の解読に続いて、 DNA中の多数の遺伝子の情報に基づ いてそれぞれ合成されるタンパク質の機能の研究も広く行われている。 この場 合、 タンパク質を構成する 20種類のアミノ酸は、 三文字表記 (3-Letter Cod e) ではそれぞれ 3文字 (例えば A l a, Cy s , G 1 u等) のテキストデー 夕で表され、 一文字表記 (卜 Letter Code) ではそれぞれ 1文字のテキストデ 一夕 (例えば A, C, E等) で表されるため、 n個のアミノ酸よりなるタンパ ク質の配列は、 nバイトのテキストデ一夕で表すことができる。 そして、 種々 のタンパク質は、 それらのアミノ酸が約 20個〜約 1000個程度所定の順序 で配列されたものであるため、 それらのタンパク質の配列は、 最大でも約 l k バイ卜程度のテキストデ一夕で記録することができる。 また、 例えば人間の遺 伝子の総数は約 3万個と予想されており、 それに対して夕ンパク質は理論的な ものも含めて約 10万種類の存在が可能であると言われている。
上記の如く例えば一人の人間の DN A情報をテキストデータで記録するため
には、 全部で 3 Gバイト程度の記憶容量が必要であり、 仮に通常の圧縮フアイ ルの技術を適用しても 1 Gバイト程度の記憶容量が必要である。 また、 人間以 外の大腸菌や各種ウィルス等の DN A情報も解析されて次第に公開されるよう になっているが、 これらの DNA情報をテキストデ一夕の形で多く集めると、 数 100Mバイト程度の記憶容量が必要である。 これは RN Aの配列情報につ いても同様である。
このように人間又は他の生物の DNA情報をテキストデ一夕、 又はこの通常 の圧縮ファイルの形で記録するものとすると、 例えば 1枚の記憶容量が 5 Gバ ィト程度の DVD— ROM (digital video disc- ROM)ディスクのように膨大な 記憶容量を持つ記録媒体が必要である。 更に、 その DNA情報を利用する場合 にその記録媒体からの読み出し時間が長くなり、 処理時間が長くなるという不 都合がある。
また、 現状の一般の通信回線の通信速度は、 最大で 1Mb p s程度であるた め、 例えば 1 Gバイト程度の DNA情報をその通信回線を介して送信するもの とすると、 送信時間は最短でも約 2時間程度となり、 あまり実用的ではない。 特に最近はその DN A情報をデジタルの携帯電話システムを介して送信する場 合も考えられるが、 現在の携帯電話システムの通信速度はせいぜい 100 k b P s程度であるため、 少なくとも人間の DNA情報の伝送で使用することは困 難である。
次に、 例えば或る微生物の DNA中の遺伝子について複数の研究者が並行し て研究するような場合に、 複数の研究者が保有している標準となる DNA (又 は遺伝子) のヌクレオチドの配列の同一性をどのように保証するのかという問 題がある。 即ち、 その DNAのヌクレオチドの配列が例えば数 Mバイト (文字 数で数 100万文字) 程度のテキストデ一夕で記録されている場合に、 複数の 研究者が互いに自分のテキストデータと他人のテキストデータとの同一性 (完 全一致性) を短時間に確認するのは必ずしも容易ではない。
これに関連して、 例えば人間又は他の生物の D NA情報の利用方法としては、 標準的な D N Aの配列と、 検查対象の D N Aの配列との間の相違する部分をサ ーチする場合が考えられる。 これは、 いわゆる S N P (—塩基変位多型: Sing le Nuc leot ide Polymorphi sm) の可能性を検査するような場合に必要になると 考えられる。 しかしながら、 両方の D N Aのヌクレオチドの配列がそれぞれ膨 大なテキストデ一夕で表わされている場合に、 それら 2つのテキストデ一夕を 比較して相違点を検出するにはかなりの長い時間が必要となり、 検査時間が長 くなるという不都合がある。
更に、 人間又は他の生物の D N A情報を製薬会社の研究者等のユーザに提供 するビジネスも行われつつあるが、 この場合に、 複数の情報供給者間で重複し た情報の提供をできるだけ避けることが望ましい。 このためには、 複数の情報 供給者間で、 D NAのヌクレオチドの全体の配列情報を公開することなく、 ヌ クレオチドの配列の実質的な同一性を容易に確認できるようにすることが望ま しい。 更に、 情報供給者が例えば通信回線を介して D NA情報をユーザに提供 する場合には、 できるだけ少ない情報量で、 即ち短い送信時間で必要な情報を ユーザに提供できるビジネスモデルが必要である。 また、 ユーザ側では、 提供 された D N A情報に伝送エラ一等が無いかどうかを容易に確認できることが望 ましい。 上記の各課題は R N Aや遺伝子のヌクレオチドの配列情報についても 同様に当てはまるものである。
更に、 一つのタンパク質のアミノ酸の配列は、 最大でも約 1 kバイト程度の テキストデ一夕で記録することができるが、 タンパク質の種類は理論的に約 1 0万個程度にもなるため、 全部のタンパク質の配列情報をテキストデ一夕で表 すと、 全部の D N Aの配列情報程度の膨大な量となる。 従って、 個々のタンパ ク質の配列は、 できるだけ少ない情報量で記録できることが望ましい。 また、 2つのタンパク質の配列情報の同一性を容易に確認できるシステムも必要であ る。
本発明は斯かる点に鑑み、 核酸や遺伝子中の一列のヌクレオチドの配列情報、 及びタンパク質中の一列のアミノ酸の配列情報をできるだけ少ないデータ量で 記録できる記録方法及び記録装置を提供することを第 1の目的とする。
また、 本発明は、 2つのヌクレオチドの配列情報同士、 又は 2つのアミノ酸 の配列情報同士の同一性を少ないデータ量で高精度に確認できる記録方法及び 記録装置を提供することを第 2の目的とする。
更に本発明は、 2つのヌクレオチドの配列情報の間の相違する部分を少ない データ量で容易に検出できると共に、 必要に応じてその相違する部分の情報を 復元できる記録方法及び記録装置を提供することを第 3の目的とする。
また、 本発明は、 一列のヌクレオチドの配列情報、 又は一列のアミノ酸の配 列情報を少ないデータ量でユーザに提供できるビジネスモデルを提供すること を第 4の目的とする。
更に本発明は、 そのビジネスモデルにおいて、 ユーザが提供された配列情報 と情報供給者が保持している配列情報との同一性、 又は相違する部分を少ない デ一夕量で容易に確認できるようにすることをも目的とする。
また、 本発明は、 ヌクレオチドの配列情報が少ないデ一夕量で記録されたコ ンピュー夕読み取り可能な記録媒体を提供することをも目的とする。
また、 本発明は、 ヌクレオチド又はアミノ酸の配列情報を記録する場合に使 用できる効率的な要約値の計算方法を提供することを目的とする。 発明の開示
本発明によるヌクレオチドの配列情報の記録方法は、 一列のヌクレオチドの 配列情報の記録方法であって、 その一列のヌクレオチドの配列に対応するテキ ストデ一夕よりも少ないデータ量で、 その一列のヌクレオチドの配列に関する 情報を記録するものである。
斯かる本発明によれば、 その一列のヌクレオチドは、 例えば D N A (deoxyr
ibonucle ic ac id ) を構成する 1対の重合体の鎖の一方の鎖の少なくとも一部、 R N A (ribonuc le ic ac id) を構成する 1列の重合体の鎖の少なくとも一部、 又は遺伝子の構成を表す一列のヌクレオチドの配列の少なくとも一部である。 そして、 その一列のヌクレオチドの配列は、 各ヌクレオチドに含まれる塩基の 配列ともみなすことができる。 本発明によれば、 そのヌクレオチドの配列が、 そのテキストデ一夕以外のより少ないデ一夕量のファイルとして記録される。 従って、 記録媒体として、 D VD— R OMのような大容量の媒体の他に、 C D 一 R O Mやフラッシュ R O Mのような小容量でも通常のコンピュータで手軽に 再生できる媒体を使用できる。
更に、 少ないデータ量の配列情報であれば、 通信回線を介して短時間に送信 できるため、 実質的に安価に配列情報の供給を行うことが可能となる。
本発明において、 その一列のヌクレオチドは 4種類のヌクレオチドよりなり、 その 4種類のヌクレオチドを互いに異なる 6ビット以下のデ一夕で表すことが 望ましい。 テキストデータ形式では、 各ヌクレオチドは、 それぞれ 8ビットの アスキーコード (ASCI I CODE) 、 即ち文字 A, G, C , T (又は U) の何れか で表されるため、 各ヌクレオチドを 6ビッ卜以下のデ一夕で表すことによって、 デ一夕量を減らすことができる。
なお、 テキストデ一夕が記録されたファイルが通常の圧縮技術 (Z I Pファ ィル、 L H Aファイル等) で圧縮できるように、 本発明のデータが記録された ファイルも更に通常の圧縮技術で圧縮して記録できることは言うまでもない。 但し、 圧縮されたファイルを使用する場合には、 解凍作業が必要になり、 最終 的には元のファイルを復元する必要があるため、 元のファイル自体のデータ量 を減らしておくことは極めて有効である。
また、 その 4種類のヌクレオチドを互いに異なる 2ビットのデ一夕で表すこ とが望ましい。 2ビットのデータによって、 最も少ないデータ量で 4種類のヌ クレオチド (又は塩基) を表すことができる。
また、 その一列のヌクレオチドが、 一つの DN Aを構成する 1対の重合体の 鎖の内の 1本の鎖の全部又は一部であるときに、 その 4種類のヌクレオチド中 の互いに相補的な 2対のヌクレオチドをそれぞれ互いにビット反転の関係にあ る 1対のデ一夕で表すことが望ましい。 互いに相補的な 2対のヌクレオチドと は、 互いに相補的な 2対の塩基と実質的に同じ意味である。 ここで、 2進数で 表現した数 kを bin(k)として、 例えば図 2の DNA (5) に示すように、 アデ ニンを含むヌクレオチド (7A) を bin (00) で表したとき、 それに対して相補 的なチミンを含むヌクレオチド (7T) を bin (11) で表す。 更に、 グァニンを 含むヌクレオチド (7G) を bin (01) で表したとき、 それに対して相補的なシ トシンを含むヌクレオチド (7C) を bin(10) で表す。 この結果、 DNA (5) の一方のヌクレオチドの鎖 (6A) 力^ ίη(00(Η101111··) (=ΒΝΑとする) で表されて、 それと相補的な他方のヌクレオチドの鎖 (6Β) に対応する 2進 数のデ一夕 ΒΝΒは、 コンピュータによって 2進数 ΒΝΑをビット毎に反転す るだけで極めて高速に求めることができる。
次に、 本発明において、 より具体的な第 1の記録方法は、 その一列のヌクレ ォチドの配列に関する情報を、 その配列を表すテキストデ一夕又は数値データ の数学的な要約値 (message digest) で表すものである。 この数学的な要約値 は、 暗号理論において、 送信ファイルの作成者の本人確認を行うために、 送信 ファイルに所定のハッシュ関数を施すことによって得られる値と数学的には同 等のものである。 しかしながら、 本発明においては、 一列のヌクレオチドの配 列を表すデータ (原データ) の要約値を、 例えば最先の解読者の主張や、 2つ の膨大な原データの同一性の確認に使用する点が本質的に異なっている。 即ち、 或る DN Aのヌクレオチドの配列を最初に解読した者が、 その配列を示す原デ 一夕の要約値を例えばィン夕ーネット上で公開することによって、 原データを 公開することなく最先に解読したことを主張できる。 また、 例えば情報供給者 から DNAの配列情報を購入したユーザは、 購入した配列情報の要約値を、 例
えばインターネット上で公開されているその DNAの要約値と比較することに よって、 購入した配列情報の同一性を高い確率で確認できる。 更に、 複数の研 究者が同一の DN Aについて研究を行う場合に、 各研究者が保持している DN Aのヌクレオチドの膨大な配列情報の長さ、 及び要約値を求め、 これらを比較 することによって、 研究対象の同一性を容易に高い確率で確認することができ る。
この場合、 その一列のヌクレオチドが 25個以上のヌクレオチドの配列であ るときに、 その一列のヌクレオチドの配列に関する情報を 40ビット以上で 1 92ビッ卜以下の長さの数学的な要約値で表すことが望ましい。 25個以上の ヌクレオチドの配列のテキストデータは、 200ビット (=25 · 8ビット) 以上になるため、 その要約値を 192ビット以下とすることで、 テキストデー 夕よりも少ないデ一夕量となる。 また、 特に処理単位が 64ビットのコンビュ —夕を使用する場合には、 要約値の長さは 64ビットの倍数、 即ち 64ビット、 1 28ビット、 又は 1 92ビッ卜が望ましいと考えられる。
また、 例えば将来的に全人類の DN Aの配列情報を必要に応じて解読するよ うな状況を想定して、 世界人口を 1 00億人程度と仮定すると、 その DNAの 配列情報は約 1 01 Q通りにもなる。 更に、 安全係数を 1 00倍程度とすると、 その要約値は、 1 012 (= 101。 · 100) 通り、 即ち約 239 86 通り以上の 値を取る必要がある。 このためには、 その要約値を 40ビット以上の長さとす ればよい。 これによつて、 2つの DNA又は RNAの配列情報同士の同一性を 1 0— 12 以上の精度で高精度に確認できる。
更に、 その数学的な要約値は、 その一列のヌクレオチドの配列に対応するテ キストデ一夕又は数値デ一夕に MD 5ハッシュ関数、 又は SHS (Secure Has h Standard) ハッシュ関数の演算を施して得ることができる。 この場合、 MD 5ハッシュ関数は、 高速演算が可能であると共に、 得られる要約値が 128ビ ットであり、 通常のコンピュータで処理し易い利点がある。 一方、 SHSハツ
シュ関数は、 元のデ一夕の推定がより困難であるが、 得られる要約値が 1 6 0 ビッ卜と、 通常の D N A又は R N Aのヌクレオチドの配列の表現に関しては必 要以上に長いと考えられる。 従って、 通常のヌクレオチドの配列の表現につい ては、 MD 5ハッシュ関数がより実用的と考えられる。
また、 暗号理論で使用されるハッシュ関数は、 送信ファイルの内容が推定さ れないように、 かつ内容の衝突の確率が極めて低くなるように設計されるため, その要約値は例えば最低でも 1 2 8ビット程度の長さが必要とされると共に、 複雑な演算が繰り返して実行される。 これに対して本発明で使用するハッシュ 関数は、 通常の互いに異なるヌクレオチドの配列に対してほぼ衝突が無ければ よいため、 あまり複雑な演算を繰り返して行う必要は無いと考えられる。 但し、 通常の喑号理論で要約値の演算対象となるファイルは、 せいぜい 1 Mバイト程 度の長さであるのに対して、 本発明で使用するハッシュ関数の演算対象は、 例 えば人間の D N Aのヌクレオチドの配列とすると、 1 0 0 Mバイト程度にも達 する膨大なデータのファイルである。 そこで、 本発明で使用するハッシュ関数 (ハッシュ演算プログラム) は、 演算対象の原ファイルを分割した後の複数の 分割ファイルを順次処理することによって、 全体の要約値を算出する機能を持 つことが望ましい。
次に、 本発明において、 より具体的な第 2の記録方法は、 その一列のヌクレ ォチドの配列に対応するテキストデ一夕を、 そのヌクレオチドの配列方向に複 数行で、 かつその配列方向に交差する非配列方向に複数列の部分テキストデー 夕 T ( i, j ) に分割し、 その部分テキストデ一夕を、 それぞれ複数種類のヌ クレオチドに対して互いに異なる 6ビッ卜以下の数値データを割り当てること によって変換データ A ( i , j ) に変換し、 複数行のその変換データに各行毎 にその非配列方向に第 1の演算を施して第 1組のシンドローム (syndrome) 情 報 B l ( i ) , B 2 ( i ) を求めると共に、 複数列のその変換データに各列毎 にその配列方向に第 2の演算を施して第 2組のシンドローム情報 C ( j ) を求
め、 その第 1組及び第 2組のシンドローム情報でその一列のヌクレオチドの配 列を表すものである。
本発明においては、 テキストデ一夕を複数行で複数列の部分テキストデータ に分割した後に、 各部分テキストデ一夕をそれぞれ変換データに変換している が、 これは予めそのテキストデータを一列の数値デ一夕に変換した後に、 その 数値デ一夕を複数行で複数列の変換データに分割することと実質的に等価であ る。 本発明によれば、 例えば図 7に示す部分テキストデータ T ( i , j ) を集 めたテキストデ一夕の情報の大部分を、 例えば図 9に示す第 1組のシンドロ一 ム情報 B l (i) , B 2 (i) 、 及び第 2組のシンドローム情報 C (j ) で表 すことができる。 具体的に、 図 7のテキストデータを配列方向に N個 (i = l 〜N) で、 非配列方向に M個 (j =l〜M) の部分テキストデータ T ( i , j ) に分割し、 各部分テキストデータ T ( i , j ) が 16個分のヌクレオチドのテ キストデ一夕を含むものとすると、 元のテキストデ一夕のデータ量 DT 1は、 以下のようになる。
DT 1 = 16 · N · M (バイト) "' (1)
更に、 各ヌクレオチドを 2ビットのデータで表すものとすると、 各部分テキ ストデ一夕 T ( i , j ) は、 それぞれ 32ビットの変換データ A (i, j ) に 変換され、 シンドローム情報 B l ( i ) , B 2 ( i ) , C ( j ) も 32ビット のデータとなる。 また、 非配列方向のシンドローム情報が 2列 B 1 ( i ) , B 2 ( i ) あるとすると、 シンドローム情報のデータ量 DS 1は、 以下のように なる。
D S 1 = 32 (2 · N + M) (ビット)
= 4 (2 · N + M) (バイト) … (2)
従って、 仮に N=64, M= 128とすると、 (1) 式及び (2) 式よりデ —夕量 DT 1, DS 1は以下のようになる。
DT 1 = 131072 (バイト) 130 kバイト … (3)
DS 1 = 1024 (バイト) =DT1Z128 … (4) 従って、 シンドローム情報のデ一夕量は、 元のテキス卜データのデータ量の ほぼ 1 100程度に圧縮できる。 この場合、 例えば人間の 1本の染色体の D N Aの配列は、 50Mバイト〜 250Mバイト程度のテキストデ一夕で表され るため、 予めそのテキストデータを 500個〜 2500個程度のブロックに分 割し、 各ブロック毎にシンドローム情報を求めることによって、 全部のシンド ローム情報のデ一夕量はそのテキストデータのほぼ 1 100程度、 即ち 50 O kバイト〜 2. 5 Mバイト程度に圧縮される。 この程度のデータ量であれば、 例えば携帯電話システムのような低速の通信回線を介しても短時間に送信でき ると共に、 DVD— ROMよりも容量の少ない CD— ROM等の記録媒体にも 余裕を持って記録することができる。
この場合、 複数行のその変換データの各行の変換データをそれぞれその非配 列方向に交互に第 1群の変換デ一夕 (例えば奇数番目の変換データ A ( i , 1) , A (i, 3) , …) 及び第 2群の変換データ (例えば偶数番目の変換デ —夕 A ( i , 2) , A ( i , 4) , …) に分けたとき、 その第 1の演算は、 所 定の整数 Κを用いてその第 1群の変換デ一夕、 及びその第 2群の変換データの それぞれの法 Κのもとの和を求める演算であり、 その第 2の演算は、 複数列の その変換データの各列の変換デ一夕に対する法 Κのもとの和を求める演算であ る。 その変換データ A ( i , j ) を sビット (例えば s = 32, s = 64等) とすると、 その整数 Kは一例として次のようになる。
K=2S … (5)
通常のコンピュータでは、 その法 Kのもとの和演算は極めて高速に実行する ことができる。
また、 その一列のヌクレオチドの配列を基準配列として、 この基準配列の 2 組のそのシンドローム情報 (B 1 ( i ) , B 2 ( i ) , C ( j ) ) に対応させ て、 検査対象の一列のヌクレオチドの配列 (TF (i, j ) ) の 2組のシンド
ローム情報 (B 1 F ( i ) , B 2 F ( i ) , CF ( j ) ) を求め、 その 4組の シンドローム情報よりその基準配列に対するその検査対象の一列のヌクレオチ ドの配列の相違部を求めることが望ましい。 例えば図 7の配列を基準配列、 図 10の配列を検査対象の配列として、 図 7の基準配列のシンドローム情報が図 8に、 図 10の配列のシンドローム情報が図 1 1に表されている。 このとき、 図 8のシンドローム情報 (B 1 ( i ) , B 2 ( i ) , C ( j ) ) に対して、 図 1 1のシンドローム情報 (B 1 F ( i ) , B 2 F ( i ) , C F ( j ) ) は、 B 1 F (1) , B 2 F (4) , CF (16) , CF (17) の値が異なるため、 それらの交点として、 図 10の部分テキストデータ TF (4, 16) , TF (1, 17) が図 7の基準配列と異なっていることを検出できる。 即ち、 4組 のシンドローム情報を比較することによって、 少ないデータ量の比較で、 検查 対象の配列のどの部分テキストデ一夕が基準配列と異なっているかを検出でき る。
この際に、 基準配列と異なっている部分をエラ一コード (error code) と呼 ぶと、 エラーコードが部分テキストデータの各行、 又は各列に一つである場合 には、 それら 4組のシンドローム情報、 及びその検査対象のエラ一コードに対 応する変換デ一夕の法 Kの加減算より、 基準配列の変換デ一夕 A (4, 16) , A (1, 17) 、 ひいては部分テキストデ一夕 T (4, 16) , Τ (1, 17) が正確に復元できる。 従って、 例えば遺伝子中の一つの塩基 (ヌクレオチド) だけが異なる SNP (—塩基変位多型: Single Nucleotide Polymorphism) は 本発明によって容易に検出できると共に、 それに対応する正常な配列も容易に 復元できる。
なお、 図 10の場合のように隣接する 2つの列の部分テキストデ一夕 TF (4, 16) , TF (1, 17) に跨るような長いエラ一コード (以下、 「バ —ストエラ一 (burst error) j と呼ぶ) が存在する場合に、 非配列方向のシン ドロームが各行に 1つ (即ち、 B 1 F ( i ) と B2F ( i ) との和) のみであ
るとすると、 1行中の 2箇所の部分テキス卜データ、 及び 1列中の 2箇所の部 分テキストデータにエラーコードが検出されてしまう。 従って、 エラーコード の位置の誤検出が生じて、 それに対応する基準配列の復元も困難となる。 これ に対して本発明のように各行で 2つのシンドローム情報を求めることによって、 バーストエラーの検出及び復元を正確に行うことができる。 なお、 各行で 2つ のシンドローム情報を求める代わりに、 配列方向 (各列) で例えば前半分と後 半分との 2群の変換データに対して 2つのシンドローム情報を求めるようにし てもよく、 どちらを採用するかは全体のデータ量が少なくなるように選択すれ ばよい。
次に、 本発明の記録装置は、 一列のヌクレオチドの配列情報の記録装置であ つて、 一つの核酸の少なくとも一部に含まれる一列のヌクレオチドの配列情報 を読み取る配列読み取り装置 (4 ) と、 この配列読み取り装置で読み取られた 配列の情報をテキストデ一夕として第 1ファイル (1 9 ) に記録する第 1記録 手段 (ステップ 1 0 2〜1 0 4 ) と、 その第 1ファイルのテキストデ一夕より も少ないデータ量で、 その配列読み取り装置で読み取られた配列の情報を表し、 この配列の情報を第 2ファイル (2 0, 2 1 ) に記録する第 2記録手段 (ステ ップ 1 0 5〜 1 0 7 ) とを有するものである。 これによつて、 本発明の配列情 報の記録方法が実施できる。
この場合、 その第 2記録手段は、 一例としてその配列読み取り装置で読み取 られた一列のヌクレオチドの配列を、 この配列を表すテキストデータ又は数値 デー夕の数学的な要約値で表すものである。
また、 その第 2記録手段は、 別の例としてその配列読み取り装置で読み取ら れた一列のヌクレオチドの配列に対応するテキス卜データを、 そのヌクレオチ ドの配列方向に複数行で、 かつその配列方向に交差する非配列方向に複数列の 部分テキストデ一夕に分割し、 その部分テキストデ一夕を、 それぞれ複数種類 のヌクレオチドに対して互いに異なる 6ビッ卜以下の数値デ一夕を割り当てる
ことによって変換データに変換し、 複数行のその変換データに各行毎にその非 配列方向に第 1の演算を施して第 1組のシンドローム情報を求めると共に、 複 数列のその変換データに各列毎にその配列方向に第 2の演算を施して第 2組の シンドローム情報を求め、 その第 1組及び第 2組のシンドローム情報をその第 2ファイルに記録するものである。
また、 本発明の記録媒体は、 一列のヌクレオチドの配列情報を記録したコン ピュー夕読み取り可能な記録媒体であって、 その一列のヌクレオチドの配列に 対応するテキストデ一夕よりも少ないデ一夕量で、 その一列のヌクレオチドの 配列に関する情報が記録されたものである。 本発明によれば、 例えば人間の D N A又は遺伝子のヌクレオチドの配列情報を、 少ないデータ量で記録できるた め、 記録媒体として C D— R OM, C D - R , フラッシュ R OM等の使い勝手 の良い媒体を使用できる。 また、 記録媒体として D VD— R OMやハードディ スク装置等の大容量の記録媒体を使用した場合には、 極めて多くの試料のヌク レオチドの配列情報を記録することができる。
この場合、 その一列のヌクレオチドが 2 5個以上のヌクレオチドの配列であ るときに、 その一列のヌクレオチドの配列に関する情報は、 一例として 4 0ビ ッ卜以上で 1 9 2ビット以下の長さの数学的な要約値でその記録媒体に記録さ れるものである。 この場合には、 記録媒体としてフレキシブルディスクであつ ても使用できる。
また、 別の例として、 その一列のヌクレオチドの配列に対応するテキストデ —夕を、 そのヌクレオチドの配列方向に複数行で、 かつその配列方向に交差す る非配列方向に複数列の部分テキストデ一夕に分割し、 その部分テキストデ一 夕を、 それぞれ複数種類のヌクレオチドに対して互いに異なる 6ビット以下の 数値データを割り当てることによって変換データに変換し、 複数行のその変換 データに各行毎にその非配列方向に第 1の演算を施して第 1組のシンドローム 情報を求めると共に、 複数列のその変換デ一夕に各列毎にその配列方向に第 2
の演算を施して第 2組のシンドローム情報を求めておき、 その一列のヌクレオ チドの配列に関する情報は、 その第 1組及び第 2組のシンドローム情報として その記録媒体に記録される。 この記録媒体を用いることによって、 例えば 2つ の試料のヌクレオチドの配列の相違する部分の位置の検出ができると共に、 そ の相違する部分が少ない場合にはそれに対応する配列の復元を行うことができ る。
次に、 本発明の配列情報の供給方法は、 一列のヌクレオチドの配列情報の供 給方法であって、 その一列のヌクレオチドの配列に対応するテキストデータ、 又は複数種類のヌクレオチドに対して互いに異なる 6ビット以下の数値データ を割り当てることによってそのテキストデ一夕を変換して得られる数値デ一夕 を保持する供給者 (2 A) が、 その一列のヌクレオチドの配列の長さの情報、 及びその配列を表すテキストデ一夕又はその数値データの数学的な要約値の情 報を通信回線 (1 ) を介して閲覧可能な状態にしておき、 その通信回線を介し てその配列の長さの情報及びその数学的な要約値の情報を閲覧したユーザ (2 B ) より、 そのテキストデ一夕又はその数値データの少なくとも一部の情報に 対する取得要求がその供給者に届いた後に、 その供給者がそのユーザにそのテ キストデ一夕又はその数値デ一夕の少なくとも一部の情報を供給するものであ る。
この供給方法は、 上記の本発明のヌクレオチドの配列情報の記録方法を、 そ の配列情報を供給 (販売) する際のビジネスモデルに適用したものである。 即 ち、 本発明のビジネスモデルでは、 或る生物 Xの D N Aのヌクレオチドの配列 を最初に解読した供給者は、 その配列のテキストデータ (又はこれを変換した 数値データ) よりハッシュ関数によって要約値 (message diges t) を算出し、 この要約値を例えばインターネット上で閲覧可能にする。 これによつて、 その 供給者は、 そのテキストデ一夕自体を公開することなく、 最初にその生物 Xの D N Aの配列を解読したことを主張できる。 更に、 ユーザが同じ配列情報を異
なる供給者から誤って購入することも防止できる。
また、 或るユーザが、 その供給者よりその生物 Xの D N Aの配列情報を購入 した後、 購入した配列情報よりそのハッシュ関数によって要約値を算出し、 そ の配列の長さも求める。 そして、 この配列の長さ、 及び要約値をインタ一ネッ 卜上で公開されている値と比較することによって、 購入した配列情報が正確な ものであるかどうかを極めて高い確率で確認できる。
この場合、 その一列のヌクレオチドは 2 5個以上のヌクレオチドの配列であ るときに、 一例として、 その数学的な要約値は、 4 0ビット以上で 1 9 2ビッ ト以下のデータであり、 その供給者は、 更にその一列のヌクレオチドの所定の 一部の配列の情報をその通信回線を介して閲覧可能な状態にしておくことが望 ましい。 その要約値、 及びその配列の長さの他に、 そのように例えばその配列 の先頭の 8個程度、 及び後端の 8個程度の配列を比較することによって、 同一 性の確認をより高精度に行うことができる。
また、 その供給者は、 その一列のヌクレオチドの配列に対応するテキストデ —夕、 又はこれに対応するその数値デ一夕を第 1ファイル (1 9 ) に記録して 保持し、 その供給者は、 そのテキストデータ、 又はその数値データを、 そのヌ クレオチドの配列方向に複数行で、 かつその配列方向に交差する非配列方向に 複数列の部分デ一夕に分割し、 その部分データを、 それぞれ複数種類のヌクレ ォチドに対して互いに異なる 6ビット以下の数値データを割り当てることによ つて変換データに変換し、 複数行のその変換データに各行毎にその非配列方向 に第 1の演算を施して第 1組のシンドローム情報を求めると共に、 複数列のそ の変換データに各列毎にその配列方向に第 2の演算を施して第 2組のシンドロ —ム情報を求め、 その第 1組及び第 2組のシンドローム情報を第 2ファイル ( 2 0 ) に記録して保持し、 第 1段階としてそのユーザは、 その供給者よりそ の第 2ファイルに記録されている 2組のシンドローム情報を受け取り、 その 2 組のシンドローム情報に基づいて検査対象の一列のヌクレオチドの配列の内の
その供給者の一列のヌクレオチドの配列との相違部を特定し、 この相違部の配 列の復元ができない場合に、 第 2段階としてそのユーザはその供給者よりその 第 1ファイルに記録されているそのテキストデ一夕、 又はその数値データの内 のその配列の復元ができない部分の情報の提供を要求することが望ましい。 このようにそのユーザが最初は、 希望するヌクレオチドの配列情報のシンド ローム情報のみを購入する場合には、 そのデータ量の小さいシンドローム情報 はその通信回線を介して短時間で受信することができる。 そして、 シンドロ一 ム情報だけで検査対象の配列のエラ一コ一ドの特定、 及び復元ができる場合に は、 それ以上の配列情報を購入する必要が無い。 一方、 エラーコードが多く存 在し、 シンドローム情報のみでは全部の正確なデ一夕が復元できない場合には、 復元できない部分のテキストデータのみを購入することによって、 通信回線を 介して必要な配列情報を短時間に購入できる。 従って、 通信回線として、 携帯 電話システムのような比較的低速の通信回線も使用できる。
次に、 本発明のアミノ酸の配列情報の記録方法は、 一列のアミノ酸の配列情 報の記録方法であって、 その一列のアミノ酸の配列に対応するテキストデータ よりも少ないデータ量で、 その一列のアミノ酸の配列に関する情報を記録する ものである。
斯かる本発明によれば、 その一列のアミノ酸は、 例えば或るタンパク質を構 成するアミノ酸の配列の少なくとも一部である。 そのアミノ酸の配列が、 その テキストデ一夕以外のより少ないデータ量のファイルとして記録される。 従つ て、 記録媒体として、 小容量でも通常のコンピュータで手軽に再生できる媒体 を使用できると共に、 通信回線を介して送信する際の時間を短縮できる。
本発明において、 その一列のアミノ酸は、 一つのタンパク質を構成する 1本 のアミノ酸の鎖の全部又は一部である場合に、 一例としてその一列のアミノ酸 の配列に対応するテキストデータが、 2 0種類のアミノ酸に対して互いに異な る 6ビット以下のデ一夕を割り当てることによって変換される。 テキストデー
夕形式で一文字表記 (1-Le Uer Code) を行うものとすると、 2 0種類のアミ ノ酸は、 それぞれ 8ビットのアスキーコード (ASCI I CODE) 、 文字では例えば A, C , E等で表されるため、 各アミノ酸を 6ビット以下のデ一夕で表すこと によって、 デ一夕量を減らすことができる。
なお、 一つのアミノ酸の種類は一列の 3個のヌクレオチドの配列、 即ち一つ の遺伝子コドン (codon ) によって決定される。 これに関して、 上記のヌクレ ォチドの配列情報の記録方法において、 各ヌクレオチドを 2ビッ卜のデータで 表した場合に、 1つの遺伝子コドンは 6ビットのデータで表される。 そこで、 この各遺伝子コドンの 6ビットのデ一夕を、 対応するアミノ酸の 6ビットのデ 一夕とみなしてもよい。 この場合には、 所定のアミノ酸を表すデータが複数存 在する、 即ちコードの縮重 (degeneracy) が生じるため、 一例として各ァミノ 酸のデ一夕の内で最も小さいデータをそのアミノ酸に割り当てるようにしても よい。 これによつて、 ヌクレオチドとアミノ酸とで共通のコードを使用できる 利点がある。 また、 2 0種類のアミノ酸は、 最も少ないデータ量では、 5ビッ トのデ一夕で表すことができる。
また、 本発明において、 より具体的な第 1の記録方法は、 その一列のァミノ 酸の配列に関する情報を、 その配列を表すテキストデータの数学的な要約値 (message d iges t) で表すものである。 例えば所定のハッシュ関数を用いてそ のテキス卜データの要約値を求め、 この要約値をィン夕ーネット上で公開する ことによって、 そのテキストデータを公開することなく、 その配列を最先に解 読したことを主張 (証明) できる。 更にそのテキストデータを購入したユーザ が、 購入したデータの要約値を求め、 この要約値を公開されている要約値と比 較することによって、 購入したデータの同一性を確認できる。
この場合、 その一列のアミノ酸は 2 5個以上のアミノ酸の配列であるときに、 その一列のアミノ酸の配列に関する情報を 1 6ビット以上で 1 9 2ビット以下 の長さの数学的な要約値で表すことが望ましい。 タンパク質の種類は、 仮想的
なものも含めて 1 0万 (= 1 0 5 ) 種類程度と言われており、 次の関係が成立 している。
1 0 5 = 2 1 6' 6 … ( 6 )
従って、 例えばァミノ酸の配列の個数も識別データに用いるものとすると、 1 6ビット以上の要約値を用いることによって、 ほぼ全てのタンパク質を識別 することができる。 また、 2 5個以上のアミノ酸の配列のテキストデータは、 一文字表記でも 2 0 0ビッ卜以上になるため、 1 9 2ビット以下の要約値のデ 一夕量はテキストデ一夕のデータ量よりも少なくなる。
また、 その数学的な要約値は、 その一列のアミノ酸の配列に対応するテキス トデータに例えば MD 5ハッシュ関数 (要約値は 1 2 8ビット) 、 又は S H S (Secure Hash Standard) ハッシュ関数 (要約値は 1 6 0ビッ卜) の演算を施 して得られる。 この場合、 要約値が必要以上に長くならない点では MD 5八ッ シュ関数が望ましい。 但し、 タンパク質を構成するアミノ酸の配列の数は 2 0 個〜 1 0 0 0個程度であり、 要約値から元のテキストデータが推定される恐れ がある。 そこで、 アミノ酸の配列の要約値を算出する場合で、 かつ元のテキス トデ一夕の秘匿性を高めたい場合には、 より複雑な演算を行って得られる要約 値も長くなる S H Sハッシュ関数を使用することが望ましい。
また、 本発明において、 より具体的な第 2の記録方法は、 その一列のァミノ 酸の配列に対応するテキス卜データを、 そのアミノ酸の配列方向に複数行で、 かつその配列方向に交差する非配列方向に複数列の部分テキストデ一夕に分割 し、 その部分テキストデータを、 それぞれ複数種類のアミノ酸に対して互いに 異なる 8ビット以下の数値デ一夕を割り当てることによって変換データに変換 し、 複数行のその変換データに各行毎にその非配列方向に第 1の演算を施して 第 1組のシンドローム情報を求めると共に、 複数列のその変換データに各列毎 にその配列方向に第 2の演算を施して第 2組のシンドローム情報を求め、 その 第 1組及び第 2組のシンドローム情報でその一列のアミノ酸の配列を表すもの
である。
本発明は、 予めそのテキストデータ (一文字表記とする) を一列の数値デ一 夕に変換した後に、 その数値デ一夕を複数行で複数列の変換データに分割する ことと実質的に等価である。 本発明によれば、 例えばアミノ酸の配列に対応す るテキストデータを配列方向に N個 (i = l〜N) で、 非配列方向に M個 (j = 1〜M) の部分テキストデ一夕 T ( i , j ) に分割し、 各部分テキストデー 夕 T ( i, j ) が 4個分のアミノ酸のテキストデータを含むものとすると、 元 のテキストデータのデータ量 DT 2は、 以下のようになる。
DT 2 = 4 · N · M (バイト) … (7)
更に、 その部分テキストデータ T ( i , j ) をそのまま変換データ A (i, j ) とみなすと、 変換デ一夕 A ( i , j ) はそれぞれ 32ビットの数値データ となり、 シンドローム情報も 32ビットのデ一夕となる。 また、 非配列方向の シンドローム情報が 2列あるとすると、 シンドローム情報のデ一夕量 DS 2は、 以下のようになる。
DS 2 = 32 (2 - N + M) (ビット)
= 4 (2 · N + M) (バイト) … (8)
従って、 仮に N= 16, M= 16とすると、 (7) 式及び (8) 式よりデ一 夕量 DT2, DS 2は以下のようになる。
DT2 = 1024 (バイ卜) … (9)
DS 2 = 192 (バイト) =DT2Z5. 3 … (10)
従って、 シンドローム情報のデ一夕量は、 元のテキストデータのデータ量の ほぼ 1ノ 5程度に圧縮できる。 個々のタンパク質の配列のテキス卜データのデ —夕量は 1 kバイト程度以下であるが、 例えば 10000種類程度のタンパク 質のテキストデ一夕をまとめると 10Mバイト程度になる。 この際にシンドロ —ム情報を用いることによって、 通信回線を介して短時間で近似的な情報を送 信することができる。 また、 シンドローム情報を比較することによって、 標準
試料のアミノ酸の配列と検査対象のアミノ酸の配列との相違部 (エラ一コード) を効率的に検出することができる。 更に、 エラ一コードが各行、 又は各列に 1 つの変換データのみであるときには、 それに対応する正確な配列を復元できる。 特に、 複数行のその変換データの各行の変換データをそれぞれその非配列方 向に交互に第 1群の変換デ一夕及び第 2群の変換デ一夕に分けたとき、 その第 1の演算は、 所定の整数 Kを用いてその第 1群の変換データ、 及びその第 2群 の変換データのそれぞれの法 Kのもとの和を求める演算であり、 その第 2の演 算は、 複数列のその変換データの各列の変換データに対する法 Kのもとの和を 求める演算である場合には、 2列に跨るような長い配列の相違 (バーストエラ ―) であっても正確に検出、 及び復元を行うことができる。
次に、 本発明の一列のアミノ酸の配列情報の記録装置は、 一つのタンパク質 の少なくとも一部に含まれる一列のアミノ酸の配列情報をテキストデ一夕とし て第 1ファイルに記録する第 1記録手段と、 その第 1ファイルのテキストデー 夕よりも少ないデータ量で、 その一列のアミノ酸の配列の情報を表し、 この配 列の情報を第 2ファイルに記録する第 2記録手段とを有するものである。 この 発明によって、 本発明のアミノ酸の配列情報の記録方法を実施することができ る。
この場合、 そのその第 2記録手段は、 その一列のアミノ酸の配列を、 この配 列を表すテキストデ一夕の数学的な要約値で表すことが望ましい。
また、 本発明の一列のアミノ酸の配列情報の供給方法は、 その一列のァミノ 酸の配列に対応するテキストデ一夕、 又は複数種類のアミノ酸に対して互いに 異なる 8ビット以下の数値データを割り当てることによってそのテキストデ一 夕を変換して得られる数値データを保持する供給者が、 その一列のアミノ酸の 配列の長さの情報、 及びその配列を表すテキストデータ又はその数値データの 数学的な要約値の情報を通信回線を介して閲覧可能な状態にしておき、 その通 信回線を介してその配列の長さの情報及びその数学的な要約値の情報を閲覧し
たュ一ザより、 そのテキストデータ又はその数値データの少なくとも一部の情 報に対する取得要求がその供給者に届いた後に、 その供給者がそのユーザにそ のテキストデ一夕又はその数値データの少なくとも一部の情報を供給するもの である。
この供給方法は、 上記の本発明のアミノ酸の配列情報の記録方法を、 その配 列情報を供給 (販売) する際のビジネスモデルに適用したものである。 即ち、 本発明のビジネスモデルでは、 或る新規のタンパク質のアミノ酸の配列を最初 に決定した供給者は、 その配列のテキストデータ (又はこれを変換した数値デ 一夕) よりハッシュ関数によって要約値 (message d i ges t) を算出し、 この要 約値を例えばイン夕一ネット上で閲覧可能にする。 これによつて、 その供給者 は、 そのテキストデータ自体を公開することなく、 最初にそのタンパク質の配 列を決定したことを主張 (証明) できる。 更に、 ユーザが同じ配列情報を異な る供給者から誤って購入することも防止でき、 競合メーカは重複投資を避ける ことができる。
また、 或るユーザが、 その供給者よりそのタンパク質の配列情報を購入した 後、 購入した配列情報よりそのハッシュ関数によって要約値を算出し、 その配 列の長さも求める。 そして、 この配列の長さ、 及び要約値をイン夕一ネット上 で公開されている値と比較することによって、 購入した配列情報が正確なもの であるかどうかを極めて高い確率で確認できる。
この場合、 その一列のアミノ酸が 2 5個以上のアミノ酸の配列であるときに、 その数学的な要約値は、 1 6ビット以上で 1 9 2ビッ卜以下のデータであるこ とが望ましい。
次に、 本発明の第 1の要約値の計算方法は、 一つ又は複数のファイルに記録 されたデータの要約値を計算するための要約値の計算方法であって、 その一つ 又は複数のファイルに記録されたデータの内で所定のコードを無視して要約値 を計算するものである。
本発明によれば、 例えばヌクレオチドの配列を表すテキストデ一夕の要約値 を計算する場合に、 その配列を見やすくするために所々にスペース、 改行、 及 びそれまでのヌクレオチドの数を示す数字等が付加されていても、 これらの付 加されたコ一ドを無視することによって、 本来のヌクレオチドの配列に対応す る要約値を計算することができる。
この場合、 その無視する所定のコードの別の例は、 同一又は互いに異なる 2 組のコード、 及びこれら 2組のコードに挟まれたデ一夕である。 即ち、 例えば いわゆるコメント文を要約値の計算対象から除去することによって、 コメント 文の内容を任意に記載しても、 本来のヌクレオチドの配列に対応する要約値を 計算することができる。
この場合、 そのテキストデータは、 その所定のコードの他に 2 5個以上のヌ クレオチドの配列に関するデ一夕を含むものとすると、 一例として、 その要約 値は、 4 0ビット以上で 1 9 2ビット以下のデジタルデ一夕である。 また、 そ の要約値を計算するための関数としては、 MD 5ハッシュ関数 (要約値は 1 2 8ビット) 、 又は S H Sハッシュ関数 (要約値は 1 6 0ビット) 等を使用する ことができる。
また、 本発明において、 その一つ又は複数のファイルから 1文字分のコード データを読み出す毎に、 この読み出されたコードデータがその所定のコードで あるときには、 この読み出されたコードデ一夕を無視して、 次の 1文字分のコ 一ドデ一夕の読み出しを行い、 この読み出しによって得られたその所定のコー ド以外のコードデータが予め定められた個数になるか、 又は読み出すべきデー 夕がなくなったときに、 要約値の計算を行うようにしてもよい。
このように部分的に読み出されたデータ毎にその所定のコードを無視して順 次要約値の計算を行うことによって、 例えば最初にその一つ又は複数のフアイ ルからその所定のコードを取り出した新たなファイルを作成して、 この新たな ファイルの要約値を計算する方法と比べて、 記憶装置の容量がほぼ 1 2程度
で済む利点がある。
次に、 本発明の第 2の要約値の計算方法は、 一連のテキストデータの要約値 を計算するための要約値の計算方法であって、 その一連のテキストデ一夕を先 頭から順に所定個数ずつのコードデータを含む複数の部分テキストデ一夕と、 その所定個数よりも少ない個数のコ一ドデ一夕を含む端数のテキストデ一夕と に分割し、 その複数の部分テキストデ一夕、 及び端数のテキストデータをそれ ぞれ分割する順序を含むデータとともに互いに異なる複数のファイルに記録し、 この複数のフアイルに記録されたテキストデ一夕からその分割の順序に従って 順次要約値を計算するものである。
斯かる本発明によれば、 例えば人間のゲノム情報のような膨大な量のテキス トデ一夕の要約値を求める場合に、 そのテキストデ一夕を複数のファイルに分 割して記録しておき、 分割されたファイルのデータに順次演算処理を施すこと ができる。 従って、 C D— R O Mやフレキシブルディスクのように比較的容量 の少ない記録媒体を用いる場合にも、 その膨大な量のテキストデ一夕の要約値 を容易に、 かつ正確に計算できる。
この場合、 そのその所定個数ずつのコードデ一夕、 及びその所定個数よりも 少ない個数のコードデータからは、 所定のコードデ一夕 (例えば数字コード、 スペースコード、 改行コード等) を除外してもよい。
また、 その所定個数は、 要約値を計算する際のデータ量の単位に応じて定め ることが望ましい。 例えば MD 5ハッシュ関数は、 5 1 2ビット (6 4ノ イト) のデータ単位で要約値を計算するため、 一つのコードデータが 8ビット (1バ イト) であるとすると、 その所定個数は、 6 4の整数倍に設定することによつ て、 各部分テキストデ一夕毎の要約値の計算が容易になる。 図面の簡単な説明
図 1は、 本発明の実施の形態の一例で使用されるコンピュータシステムを示
す概略構成図である。 図 2は、 その実施の形態の一例で処理対象とする DNA、 及びそのヌクレオチドの配列のバイナリ一データによる表現の例を示す図であ る。 図 3は、 その実施の形態の一例における DN A情報の供給者の動作の一部 を示すフローチャートである。 図 4は、 図 3の動作に続く DN A情報の供給者 の動作を示すフローチャートである。 図 5は、 その実施の形態の一例における DNA情報のユーザの動作の一部を示すフローチャートである。 図 6は、 図 5 の動作に続く DN A情報のュ一ザの動作を示すフローチャートである。 図 7は、 標準試料 E (DNA) のヌクレオチドの配列 (2048個) を表すテキストデ 一夕を 4行で 32列の部分テキストデ一夕 T ( i , j ) に分割した状態を示す 図である。 図 8は、 標準試料 Eの変換デ一夕 A (i, j ) 、 及びこれらから算 出されるシンドローム C ( j ) , B 1 ( i ) , B 2 ( i ) を示す図である。 図 9は、 標準試料 Eのシンドローム C ( j ) , B 1 ( i ) , B 2 ( i ) を示す図 である。 図 10は、 試料 F (DNA) のヌクレオチドの配列 (2048個) を 表すテキストデータを 4行で 32列の部分テキストデータ TF ( i , j ) に分 割した状態を示す図である。 図 1 1は、 試料 Fの変換データ AF ( i , j ) 、 及びこれらから算出されるシンドローム C F (j ) , B 1 F ( i ) , B 2 F ( i ) を示す図である。 図 12は、 試料 Fのシンドローム CF ( j ) , B 1 F (i) , B2F ( i) 、 及び復元された変換データを示す図である。 図 13は、 試料 G (タンパク質) のアミノ酸 (820個) の配列を表すテキストデータを 8行で 26列の部分テキストデータに分割した状態を示す図である。 図 14は、 図 13中の一部のデータを示す図である。 図 15は、 本発明の実施の形態の第 1の要約値計算シーケンスを示すフローチャートである。 図 16は、 本発明の 実施の形態の第 2の要約値計算シーケンスを示すフローチャートである。 図 1 7は、 本発明の実施の形態の表示画面内でのカーソルの移動方法の一例を示す 図である。
発明を実施するための最良の形態
以下、 本発明の好ましい実施の形態の一例につき図面を参照して説明する。 本例は、 所定の DNA (デォキシリポ核酸: deoxyribonucleic acid) のヌク レオチドの配列情報をコンピュータシステムで処理する場合に、 本発明を適用 したものである。
図 1は、 本例のコンピュータシステム 2 Aの概略構成を示し、 この図 1にお いて、 コンピュータシステム 2 Aの中心は、 CPU (中央演算処理ユニット) 、 RAM, ROM等のメモリ、 及びハードディスク装置等の記憶装置等からなる 情報処理装置 10である。 情報処理装置 10には、 ビデオ RAM (VRAM) 1 1を介して CRTディスプレイよりなる表示装置 12が接続されると共に、 IZOユニット (入出力装置) 14を介して、 記録可能な CD— Recordableデ イスク (以下、 「CD— R」 と言う) 16に対するデ一夕の書き込み、 及び C D— Rや CD— ROMからのデ一夕の読み込みを行うことができる CD— RZ RWドライブ 15が接続されている。 情報処理装置 10には、 I/Oユニット 14を介して更に大容量の記憶装置としての記憶容量が数 10Gバイト程度の 磁気ディスク装置 17が接続されている。
本例の情報処理装置 10中のハードディスク装置には、 予め CD— RZRW ドライド 15を介してオペレーティングシステム、 及び後述のように DNAの 配列情報を処理するためのアプリケ一ション ·プログラムがィンス 1 ^一ルされ ている。 また、 CD— R 16が本発明の記録媒体に対応しているが、 記録媒体 としては、 CD— Rや CD— ROMの他に、 フラッシュ ROM、 フレキシブル ディスク、 光磁気ディスク (M〇) 、 デジタルビデオディスク (DVD) 、 又 はハードディスク装置 (例えばィン夕ーネットを介して接続できるサーバに備 えられたもの) 等を使用することができる。
情報処理装置 10には更に、 文字情報の入力装置としてのキーポード 13、 ポインティング ·デバイス (入力装置) としての光学式のマウス 204、 及び
ルー夕 (又はモデム等でもよい) よりなる通信制御ユニット 18が接続されて いる。 マウス 204は、 表示装置 12の表示画面上のカーソルの位置を指定す る信号を発生する変位信号発生部 207、 選択すべき情報を指定する信号や各 種コマンド等を発生するための左スィッチ 204 a及び右スィッチ 204 b (信号発生装置) を備えている。 情報処理装置 10、 VRAM1 1、 表示装置 12、 キーボード 13、 マウス 204、 Iノ Oユニット 14、 CD-R/RW ドライブ 15、 磁気ディスク装置 17、 及び通信制御ユニット 18等よりコン ピュー夕システム 2 Aが構成されている。 オペレーティングシステムとして本 例では Wi ndows (Microsoft Corporation の登録商標) を使用している。 なお、 オペレーティングシステムとして、 それ以外の UN I X (X/Open の登 録商標) 、 OSZ2 (IBM Corporatin の登録商標) 、 Ma cOS (Apple Co mputer の登録商標) 、 又は L i nux (Linus Torvalds の商標又は登録商 標) 等を使用する場合にも本発明が適用できることは言うまでもない。
そして、 コンピュータシステム 2A (情報処理装置 10) は、 通信制御ュニ ット 18を介して一般電話回線よりなる通信ネットワーク 1に接続され、 通信 ネットワーク 1には各種コンテンツのプロバイダ 3、 及び別のコンピュータシ ステム 2 B、 及び不図示の多くのサーバやコンピュータシステムが接続されて いる。 また、 本例のコンピュータシステム 2 A, 2 B及びプロバイダ 3は、 通 信ネッ卜ワーク 1を介するインターネッ卜によって相互に接続されている。 こ の場合、 コンピュータシステム 2 Aの所有者が DN A情報の供給者 (販売者) であり、 コンピュータシステム 2 Bの所有者がその DNA情報のユーザ (購入 者) である。 そして、 後者のコンピュータシステム 2Bには、 予め前者のコン ピュー夕システム 2 Aと同様の DN Aの配列情報を処理するためのアプリケ一 シヨン ·プログラムがィンストールされている。
さて、 本例のコンピュータシステム 2 Aの情報処理装置 10には、 IZOュ ニット 14を介して DN A中の一列のヌクレオチドの配列 (又は塩基の配列)
を読み取るための配列読み取り装置としてのシーケンサ一 (DNA Seauencer) 4 が接続されている。 シーケンサー 4は、 一例としてサンガーの方法 (Sanger m e thod)によって D N Aを構成する 1対の重合体の鎖の一方の鎖のヌクレオチド の配列を読み取る。 サンガーの方法は、 例えば文献 1 (Maxim D. Frank-Kamen e tski i: Unrave l ing DNA (the mos t important molecule of l i fe, revi sed a nd updated) , trans lated by Lev Liapin, Chapter 6 (pp. 59-70) (Perseus Book s, 1997) ) に開示されている。 シーケンサー 4は、 読み取った一列のヌクレオ チドの配列をテキストデータ形式で内部の大容量の記憶装置に記憶すると共に、 情報処理装置 1 0からの要求に応じて、 その記憶装置中の所定のヌクレオチド の配列のテキストデ一夕を Iノ Oュニット 1 4を介して情報処理装置 1 0に供 給する。 これに対して情報処理装置 1 0は、 D N Aの配列情報を処理するため のアプリケーション ·プログラムに基づいて以下の処理を行う。 なお、 シ一ケ ンサー 4の代わりに、 D NA及び R NA (リポ核酸: ribonucle ic ac id) 等の 核酸を構成する一列のヌクレオチドの配列 (又は塩基の配列) の情報のデータ ベースを接続してもよい。
先ず、 本例の情報処理装置 1 0の第 1の基本的な処理動作につき説明する。 情報処理装置 1 0は、 シーケンサー 4から供給される所定の D N Aのヌクレオ チドの配列を示すテキストデ一夕を磁気ディスク装置 1 7中のマスターフアイ ル 1 9にそのまま記録すると共に、 そのテキストデ一夕をよりデータ量の少な い数値デ一夕に変換し、 この変換後の数値データを磁気ディスク装置 1 7中の ワーキングファイル 2 0に記録する。 なお、 以下の説明において、 2進数表示 の数 kは bin (k) で、 1 6進数表示の数 kは hex (k) で表すものとする。
この場合、 D N Aは 4種類のヌクレオチドより構成されており、 シーケンサ —4から供給されるテキストデータ中では、 塩基としてアデニン (adenine) を含むヌクレオチド、 グァニン (guanine) を含むヌクレオチド、 シトシン (c ytos ine) を含むヌクレオチド、 及びチミン (thymine) を含むヌクレオチドが
それぞれ文字 A, G, C , 及び Tで表されている。 そして、 文字 A, G , C , 及び Tには、 デ一夕上ではそれぞれ hex (41), hex (47) , hex (43), hex (54)よりな る 1バイト (8ビット) のアスキーデ一夕が割り当てられている。 また、 R N Aの場合には、 チミンを含むヌクレオチドの代わりにゥラシル (urac i l) を含 むヌクレオチドが、 文字 U (hex (55) )で表されている。 従って、 n個のヌクレ ォチドの配列を示すテキストデータのデータ量は nバイトとなる。 なお、 それ らの n個のヌクレオチドの配列は、 n個の塩基 (アデニン、 グァニン、 シトシ ン、 チミン (又はゥラシル) ) の配列ともみなすことができる。
本例ではそのテキストデ一夕を、 情報量を少なくすることなく最も少ないデ 一夕量で表すために、 D N A中の 4種類のヌクレオチドを互いに異なる 2ビッ トのデ一夕で表す。 この際に、 D N Aにおいては、 1対の塩基 (アデニン及び チミン) が互いに相補的であり、 別の 1対の塩基 (グァニン及びシトシン) が 互いに相補的である。 そこで、 相補的な塩基を含む 1対のヌクレオチドを互い に相補的であるとして、 1対の互いに相補的なヌクレオチド、 即ちアデニンを 含むヌクレオチド及びチミンを含むヌクレオチドに、 互いにビット反転の関係 にある 1対のデータを割り当て、 別の 1対の互いに相補的なヌクレオチド、 即 ちグァニンを含むヌクレオチド及びシトシンを含むヌクレオチドに、 互いにビ ット反転の関係にある別の 1対のデータを割り当てる。 本例ではそのデータの 割り当てとして表 1 (変換テーブル) を用いる。 なお、 表 1は、 ヌクレオチド の配列を示すテキストデータ中の文字 A, T (又は U) , G , C , をそれぞれ b in (00) , bin (11) , bin (01) , bin (10) で置換することを意味している。
《表 1》
ヌクレオチド 2ビットのデータ アデニンを含むヌクレオチド (A) b in (00) チミン (ゥラシル) を含むヌクレオチド (T又は U) bin (11) グァニンを含むヌクレオチド (G) bin (01)
シトシンを含むヌクレオチド (C) bin (10) 。
なお、 本例では各ヌクレオチドを 2ビットのデータで表しているが、 これは 各塩基を 2ビットのデータで表すのと等価である。 また、 データの割り当ては 表 1には限定されず、 例えばチミンを含むヌクレオチドを bin (00) 、 アデニン を含むヌクレオチドを bin(ll) とするか、 又はグァニンを含むヌクレオチドを bin(lO) 、 シトシンを含むヌクレオチドを bin(Ol) としてもよい。 それ以外に、 アデニンを含むヌクレオチド及びチミンを含むヌクレオチドに、 1対のデ一夕 bin(01),bin(10) を割り当て、 グァニンを含むヌクレオチド及びシトシンを含 むヌクレオチドに 1対のデータ bin (00), bin (11) を割り当てるようにしてもよ レ^ また、 RNAの場合には、 チミンを含むヌクレオチドに割り当てられてい るデ—夕をゥラシルを含むヌクレオチドに割り当てて、 それ以外のヌクレオチ ドには DN Aのヌクレオチドと同じデ一夕を割り当てればよい。
本例では図 2に示す DN A分子 5のヌクレオチドの配列情報を扱うものとす る。 その配列情報は、 NCB I (The National Center for Biotechnology In formation ) より提供されているウェブサイト 1 (f tp:〃ncbi. nlm. nih. gov/g enbank/genomes/bacteria/) より入手した大腸菌 (Escherichia col i: E. col i) の DN Aの一列のヌクレオチドの配列の一部である。
図 2において、 DNA分子 5は、 1対の重合体の鎖 6 A, 6 B (二重らせん) より構成され、 一方の重合体の鎖 6Aは、 アデニンを含むヌクレオチド 7A、 グァニンを含むヌクレオチド 7 G、 シトシンを含むヌクレオチド 7 C、 及びチ ミンを含むヌクレオチド 7 Tよりなる 4種類のヌクレオチドの配列であり、 他 方の重合体の鎖 6 Bは、 鎖 6 Aに対して相補的なヌクレオチドの配列である。 この際に、 図 1の情報処理装置 10には一方の重合体の鎖 6 Aの配列を示すテ キストデ一夕、 即ち" AGCTTT ' · · " の文字列のデータが供給される。 それに対して、 情報処理装置 10は、 そのテキストデ一夕を後述のように N行 で M列 (N, Mは 2以上の整数) のブロックに分割した後、 各ブロック中の文
字 A, G, C, Tを表 1の変換テーブルに基づいて順次 2ビットのデ一夕に変 換することによって、 数値デ一夕としてのバイナリ一データ BNA (=bin(00 01101111···)) を得る。 そして、 このバイナリーデータ BNAが図 1の磁気デ イスク装置 1 7のヮ一キングファイル 20に記録される。 そのバイナリ一デー 夕 BNAのデータ量は、 元のテキストデータの 1 4となっている。
この場合、 そのヮ一キングファイル 20の先頭の所定数のバイ卜の領域に、 例えばその配列が DNA又は RNAのどちらかを示すデータ (即ち、 bin (11) を文字 T又は文字 Uの何れに解釈するかを示すデ一夕) 、 ヌクレオチドの個数 を示すデータ、 及びその他の必要なデータを記録しておけばよい。 また、 その ワーキングファイル 20の長さが 1バイト (8ビット) 単位で規定されている 場合に、 バイナリーデータ BN Aの末尾で 1バイ卜の端数のデ一夕が生じたと きには、 予め定めておいたダミーデータを付加すればよい。 これでもデータ量 は殆ど増加しない。 そして、 一例としてユーザ (コンピュータシステム 2 Bの 所有者) から供給者 (コンピュータシステム 2 Aの所有者) に対して図 2の D N A分子 5の配列情報の購入希望が届いたときに、 ヮ一キングファイル 20の デ一夕が通信ネットワーク 1及び不図示のプロバイダを介して、 電子メールの 添付ファイルとしてコンピュータシステム 2 B側に供給される。 この際に、 そ のワーキングファイル 20のデータを更に圧縮ファイル (Z I Pファイル、 又 は LHAファイル等) として送信してもよい。 この際に、 ヮ一キングファイル 20のデータ量はもとのテキストデータのほぼ 1 4であるため、 元のテキス トデ一夕 (更に圧縮ファイルとした場合も同様) 自体を送信する場合に比べて 送信時間はほぼ 1 4となり、 供給者側及びユーザ側双方の通信コス卜が低減 できる。
そして、 ュ一ザ側で、 その受信したワーキングファイル 20のデータから図 2の一方の重合体の鎖 6 Aの配列のテキストデ一夕を復元する場合には、 コン ピュー夕システム 2 Bにおいて、 ワーキングファイル 20中のバイナリ一デ一
夕 BNAを、 表 1を用いて文字 A, G, C, T (又は U) の何れかに順次逆変 換すればよい。 また、 その際に例えば図 2の他方の相補的な重合体の鎖 6 Bの ヌクレオチドの配列を示すテキストデ一夕が必要になった場合には、 コンビュ —夕システム 2 Bにおいて、 図 2に示すように、 バイナリーデ一夕 BNAのビ ット毎の反転操作を行って反転バイナリーデ一夕 NOT (BNA) (=bin(1110010000 ···)) を得る。 この反転バイナリ一データ NOT (BNA)は、 他方の重合体の鎖 6 B のヌクレオチドの配列を示すテキストデータ (文字列" TCGAAA * · · " ) を表 1に従って変換したバイナリ一データ BNBと同一である。 従って、 その 反転バイナリ一データ NOT (BNA)を、 表 1を用いて文字 A, G, C, T (又は U) の何れかに順次逆変換するのみで、 極めて高速に相補的な重合体の鎖 6 Bの配 列のテキストデータを得ることができる。 この際に、 通常のコンピュータにお いては、 ビット毎の反転操作は、 極めて高速に実行することができる。 なお、 そのビット毎の反転操作は、 例えば bin (111111···)との排他的論理和演算で代 用してもよい。
なお、 ヮ一キングファイル 20のデータを通信ネットワーク 1を介してュ一 ザ側に送信する代わりに、 ワーキングファイル 20の内容を CD— RZRWド ライブ 1 5によって CD— R 16に記録し、 この CD— R 16を郵送等によつ てユーザ側に供給してもよい。 例えば一人の人間の全部の DN Aの配列情報 (ゲノム) は、 テキストデータでは 3 Gバイト程度になるが、 これを表 1を用 いて本例の数値データとしてのバイナリーデ一夕に変換すると、 3 4Gバイ ト程度、 即ち 7 50Mバイト程度になる。 現在の CD— R, CD— ROMの容 量は約 650Mバイ卜であるため、 その 750Mバイト程度のバイナリーデー 夕は例えば一部又は全部を圧縮ファイルとすることによって、 余裕を持って C D_R 1 6に記録することができる。 これに対して、 その 750Mバイト程度 のデータを通信ネットワーク 1を介して送信しょうとすると、 現状でも送信時 間がかかり過ぎる場合がある。
また、 一つのアミノ酸の種類は一列の 3個のヌクレオチドの配列、 即ち一つ の遺伝子コドン (codon ) によって決定される。 そこで、 1つのアミノ酸に対 応する 3個のヌクレオチドをそれぞれ 2ビットのデータで表したときに得られ る 6ビッ卜のデ一夕の内で、 最も小さいデータでそのアミノ酸を表すものとす る。 具体的に、 各ヌクレオチドを表 1のように表した場合に、 いくつかのアミ ノ酸について得られる 6ビッ卜の表現を以下の表 2に示す。 表 1中で <>の中 のデ一夕がそのアミノ酸のデ一夕として使用される。 これによつて、 ヌクレオ チドとアミノ酸とで共通のコードを使用できる利点がある。
《表 2》
アミノ酸 遺伝子コドン 6ビットのデ一夕
ァラニン(Ala GCA <bin
GCG bin
GCC bin
GCU bin
XCys UGC <bin
UGU bin 110111)
グルタミン酸 (Glu GAA <bin
GAG bin
ヒスチジン(His CAC ぐ bin
CAU bin 100011)
イソロイシン(lie AUA <bin
AUC bin
AUU bin
リジン(Lys AAA ぐ bin
AAG bin
次に、 本例の情報処理装置 10の第 2の基本的な処理動作につき説明する,
本例では、 ヌクレオチドの配列を示す膨大な量のテキストデータ (又はこれを 表 1に基づいて変換して得られる数値データより、 所定のハッシュ関数を用い て数学的な要約値 (message digest) を算出する。 本例ではそのハッシュ関数 として、 ライべスト (R. Rivest)によって提案された MD 5ハッシュ関数を使 用する。 MD 5ハッシュ関数のアルゴリズムについては、 ネットワークヮ一キ ンググループ及びライべストによって開設されているウェブサイト 2 (http:// www. kleinscmidt. com/edi/md5. htm)に開示されている。 或るテキストデータ (テキストファイル) にその MD 5ハッシュ関数を施すことによって、 128 ビットの要約値が得られる。 通常のコンピュータでも今後は 64ビッ卜の CP Uが使用されるようになると考えられるが、 この場合に 128 (=2 · 64) ビットの要約値は非常に扱い易い長さである。 この場合には、 192 (=3 · 64) ビットの要約値も比較的扱い易いと考えられる。
また、 本例では、 その MD 5ハッシュ関数のプログラムとして、 そのウェブ サイト 2において公開されている、 RS Aデータセキュリティ一社 (RSA Data Security Inc. ) によって開発されたプログラムを使用した。
その要約値の使用方法の一例として、 DNAの配列情報の供給者 (情報処理 装置 10) は、 所定の生物の DNAのヌクレオチドの配列を読み取り、 これに 対応するテキストデ一夕より、 上記のハッシュ関数を用いて要約値を算出し、 この要約値をその生物の名称、 及び DNAの位置を示す情報と共にィン夕ーネ ット上で閲覧可能にする。 これによつて、 その供給者は、 そのテキス卜データ 自体を公開することなく、 その生物の DNAの配列情報を最先に解読したこと を主張できると考えられる。 その後、 或るユーザからのその配列情報の購入希 望が来たときに、 その供給者は、 そのヌクレオチドの配列のテキストデータを 表 1を用いてバイナリーデ一夕に変換し、 このバイナリーデ一夕を例えば通信 ネットワーク 1を介して電子メールの形でそのユーザに送信する。 これに対し てユーザ側では、 そのバイナリーデ一夕を表 1を用いてテキストデ一夕に逆変
換し、 この逆変換されたテキストデ一夕に上記のハッシュ関数を施して要約値 を求める。
そして、 この要約値とその供給者によって公開されている要約値とが等しい ときには、 購入した配列情報が、 供給の保持している配列情報と等しいことが 極めて高い確率で保証される。 更に、 ユーザ側では、 複数の供給者が公開して いる要約値を比較することによって、 同じ配列情報を異なる複数の供給者から 重複して購入することを防止することができる。 これらの際に、 ヌクレオチド の配列の長さ、 及び先端部や末尾の一部の短い配列の比較を行うことによって、 その配列情報の同一性を高めることができる。
また、 例えば所定の生物について複数の研究者が並行して研究を行っている 場合に、 第 1の研究者が保持しているヌクレオチドの配列と第 2の研究者が保 持しているヌクレオチドの配列との同一性を保証する必要がある。 この際に、 研究対象とする D N Aのヌクレオチドの配列数が例えば 1億個程度とすると、 その配列のテキス卜データは 1 0 0 Mバイト程度になる。 このような長い 2つ のテキストデ一夕に対して 1文字ずつの比較によって、 同一性を確認するのは 容易ではない。 これに対して本例では、 先ず第 1の研究者側で、 テキストデ一 夕の長さ、 及びハッシュ関数による要約値を算出し、 これを電子メール等で第 2研究者側に送信する。 これに対して、 第 2の研究者側でも自分のテキストデ 一夕の長さ及びハッシュ関数による要約値を算出し、 これらの値を第 1の研究 者から送信された値と比較することによって、 2つの膨大な長さのテキストデ 一夕の同一性を容易に高い確率で保証できる。 この際にも、 更に例えばヌクレ ォチドの配列の先端部及び末尾の所定長さの配列同士を比較することによって、 その同一性を高めることができる。
なお、 ハッシュ関数としては、 例えば文献 2 (FIPS Publ icat ion 180, 1993) で開示されているように、 N B S (Nat ional Bureau of Standards)によって提 案された S H S (Secure Hash Standard) ハッシュ関数を使用してもよい。 S
HSハッシュ関数は、 MD 5ハッシュ関数よりも複雑な演算を行うと共に、 1 60ビットの要約値が得られる。 これに関して、 例えばタンパク質を構成する アミノ酸の配列数は 20個〜 1 000個程度であり、 特に一文字表記を使用す る際にはそれに対応するテキストデ一夕も 20バイト〜 1 kバイト程度に短く なるため、 要約値から元のテキストデータが推定し易いと考えられる。 そこで、 アミノ酸の配列情報の要約値を求める際には、 SHSハッシュ関数を使用する 方が望ましいことがある。
また、 例えばヌクレオチドの配列を示す 2つの膨大な長さのテキストデ一夕 の同一性を確認するために、 ハッシュ関数の要約値を算出するような場合には、 それ程複雑な計算を繰り返して行う必要は無いと考えられる。 そこで、 このよ うな用途では、 例えば文献 3 ( . L. Rivest:"The MD4 message digest algor ithm", Lecture Notes in Co即 uter Science, 537, 303- 311 (1991) )で開示され ている MD4ハッシュ関数を使用してもよいと考えられる。 また、 そのように 単に同一性を確認する用途では、 要約値の長さも 40ビット〜 1 28ビット程 度でよい場合がある。
次に、 本例の DN A情報の供給者 (コンピュータシステム 2 A) と、 ユーザ (コンピュータシステム 2 B) との間で DNAの配列情報を受け渡す際のビジ ネスモデルの一例につき図 3〜図 6のフローチャートを参照して詳細に説明す る。 先ず、 DNA情報の供給者側では、 図 3のステップ 10 1において、 シー ケンサ一 4を使用して標準となる試料 (標準試料 Eとする) の DNA中の一方 の一列のヌクレオチドの配列を読み取り、 読み取った配列を表すテキストデー 夕 TX 1を情報処理装置 1 0に供給する。 本例では、 その標準試料 Eを大腸菌 として、 そのテキストデ一夕 TX 1として、 図 7に示すように、 上記のウェブ サイト 1から入手した大腸菌の DNAの配列情報の内の、 最初から 2048個 までのヌクレオチドの配列を示すテキストデ一夕を使用する。
標準試料 Eの DNA配列は配列番号 1に示されている。 図 7のテキストデ一
夕は、 配列番号 1の配列から数字データを除いて、 a, g, c, tの文字をそ れぞれ A, G, C, Tで置き換えたものに相当する。
次のステップ 102において、 情報処理装置 10は、 供給されたテキストデ 一夕 TX 1に上記の MD 5ハッシュ関数を施して 128ビッ卜の要約値 A B 1 を求めると共に、 そのヌクレオチドの配列の数 NA1、 及び先頭と末尾との 8 個ずつのヌクレオチドの配列 ST 1, SB 1を求める。 テキストデータ TX1 に対する具体的な値は下記の通りである。
AB 1 =hex (849339ac244cde42b5346ab5989aab61) … (1 1)
NA 1 = 2048
S T 1 =AGCTTTTC, S B 1 =CGCGAAGG
次のステップ 103において、 情報処理装置 10は、 テキストデータ TX1 を逆方向に並べ替えたテキストデータ TXR 1 (=GGAAGC · · · · TT TCGA) を求め、 このテキストデ一夕 TXR 1の MD 5ハッシュ関数による 要約値 ABR 1、 及びこのテキストデ一夕 TXR 1の先頭と末尾との 8個ずつ のヌクレオチドの配列 STR 1, S BR 1を求める。 配列 STR 1, SBR 1 は、 上記の配列 SB 1, ST 1をそれぞれ逆方向に並べ替えることによって容 易に求めることができる。 これらの具体的な値は以下の通りである。
ABR 1 =hex (4eblfeae30f522642b912ce3ea09652b) … (12)
S TR 1 =GGAAGCGC, S BR 1 =CTTTTCGA
次のステップ 104において、 情報処理装置 10は、 標準試料 Eの名前の情 報 (試料を特定する情報) 、 配列の数 NA1、 テキストデ一夕 TX1、 配列 S Τ 1, SB 1、 要約値 AB 1、 逆方向の配列 STR 1, SBR 1、 及び逆方向 の要約値 ABR 1を磁気ディスク装置 17のマスターファイル 19に記録する この際に、 マスターファイル 19を複数のファイルとして、 テキストデータ T XIと、 それ以外のデ一夕とを別のファイルに記録してもよい。 また、 テキス トデ一夕 TX1が例えば 100Mバイト程度以上になる場合には、 テキストデ
一夕 TX 1を複数のマス夕一ファイルに分割して記録してもよい。
次のステップ 105において、 情報処理装置 10は、 図 7に示すように、 標 準試料 Eのテキストデータ TX 1を配列方向 (ヌクレオチドの配列方向) に N 行で、 その配列方向に直交する方向 (以下、 「非配列方向」 という) に M列の 16文字の長さの部分テキストデ一夕 T ( i, j ) (i = l〜N, j = 1〜M) に分割する。 なお、 N, Mはそれぞれ 2以上の任意の整数であり、 (1) 式、 (2) 式を用いて既に説明したように、 テキストデータ TX 1が 100 kバイ 卜程度 (又はこの整数倍) であるときに、 このテキストデータ TX 1に対して 1/100程度のデータ量のシンドローム情報を得たい場合には、 例えば Nの 値が 64、 Mの値が 128に設定される。 以下では説明を簡単にするために、 テキストデ一夕 TX 1を 4行で、 かつ 32列に分割した場合を想定する。 即ち、 N=4, M=32とする。 この場合、 本例では端数は生じないが、 例えば図 7 において、 最後の部分テキストデータ T (4, 32) 中の文字が 16個より少 ない場合には、 足りない部分には予め定めた文字 (例えば文字 A) をダミーデ 一夕として付加すればよい。 また、 部分テキストデータ T ( i , j ) の長さは、 16文字以外の任意の長さでよいが、 処理速度を高めるためには、 8文字の倍 数が効率的である。
更に、 情報処理装置 10は、 図 7の各部分テキストデータ T ( i , j ) を表 1 (変換テーブル) に基づいてそれぞれ 32ビットのバイナリーデータ (数値 データ) よりなる変換データ A ( i , j ) に変換する。 この結果、 図 8に示す 4行で、 32列の変換データ A (i, j ) (16進数表示) が得られる。 また、 変換データ A (i, j ) を対応するヌクレオチドの配列方向に連続して配列し たときの集合体 (数値データ) をバイナリーデータ BN 1とする。 このバイナ リーデ一夕 BN 1は、 図 2の一方のバイナリ一デ一夕 BNAと同じものである が、 図 2のバイナリーデータ BNAは 2進数表示されており、 図 8のバイナリ 一データ (変換デ一夕 A ( i , j ) ) は 16進数表示されている。 この場合、
各部分テキストデ一夕 T ( i , j ) の長さは 16バイト (=128ビット) で あるため、 図 7の全体のテキストデータ TX 1に対して、 図 8の全体のバイナ リーデ一夕 BN1のデ一夕量は 1 4に減少している。 なお、 図 7の部分テキ ストデータ T ( i , j ) と図 8の変換デ一夕 A ( i , j ) とは等価であるため、 上記の方法の代わりに、 元のテキストデータ TX 1を表 1に基づいてバイナリ 一データ BN 1に変換した後、 このバイナリ一デ一夕 BN 1を N行で、 M列の 変換データ A (i, j ) に分割してもよい。
次のステップ 106において、 情報処理装置 10は、 図 8の全部の変換デ一 夕 A (i, j ) の内で、 各列の変換データ A ( i , j ) の配列方向に対する法 232 (mod 232) のもとでの和、 即ち配列方向のシンドローム (syndrome) C (j ) (j = l〜32) を計算する。 C (j ) は以下のように表すことがで さる。
C ( j ) =A(1, j) +A(2, j)十… +A(4, j) (mod232) - (13 )
更に、 情報処理装置 10は、 各行の変換データ A ( i, j ) (i = l〜4) の内で奇数番目の変換デ一夕 A ( i , 2 j ' - 1 ) (j ' =l〜16) の非配 列方向に対する法 232のもとでの和、 及び偶数番目の変換データ A ( i , 2 j ' ) の非配列方向に対する法 232のもとでの和、 即ち非配列方向のシンドロー ム B l (i) , B 2 ( i ) (i = l〜4) を次式より計算する。
B 1 (i) =A(i, 1)+A(i,3)十… +A(i, 31) (mod232) - (14)
B 2 (i) =A(i,2) +A(i,4)十… +A(i,32) (mod232) - (15) 変換データ A ( i, j ) に対する実際の計算結果が、 図 8のシンドローム C ( j ) , B l ( i ) , B 2 ( i ) として表示されている。
また、 図 9は、 図 8の標準試料 Eのデータ中からシンドローム C ( j ) , B 1 (i) , B 2 ( i ) だけを取り出して表示したものである。 この例において は、 シンドローム C (j ) , B l ( i) , B 2 ( i ) はそれぞれ 32ビット (4バイト) であるため、 全部のシンドロームのデータ量は、 160 (=4 ·
40) バイトとなる。 従って、 全部のシンドロームのデータ量は、 図 7の全体 のテキストデータ TX1 (2048バイト) に対してほぼ 1ノ13に減少して おり、 図 8の全体のバイナリーデータ BN 1に対してもほぼ 1 3に減少して いる。
次に図 4のステップ 107において、 情報処理装置 10は、 標準試料 Eの名 前の情報、 配列の数 NA1、 バイナリーデータ BN1、 シンドローム C ( j ) , B 1 ( i ) , Β 2 ( i ) を磁気ディスク装置 17のワーキングファイル 20に 記録する。 この際に、 ワーキングファイル 20を複数のファイルとして、 バイ ナリーデ一夕 BN1と、 シンドローム C ( j ) , B 1 ( i ) , Β 2 ( i ) とを 別のファイルに記録してもよい。 更に、 バイナリ一データ BN 1と共に、 ステ ップ 102で算出した要約値 AB 1をワーキングファイル 20に記録してもよ レ^
また、 バイナリ一デ一夕 BN 1が長いときには、 バイナリ一データ BN1を 複数のファイルに分割して記録してもよい。 更に、 図 7のテキストデータ TX 1 (ひいては図 8のバイナリ一デ一夕 BN 1) がかなり長い場合には、 テキス トデ一夕 TX 1を例えば 100 kバイト程度を単位として複数のデータ群に分 割し、 各データ群毎にシンドローム C ( j ) , B 1 ( i ) , B 2 (i) を求め るようにしてもよい。
更に、 ステップ 107において、 DNA情報の供給者は、 ワーキングフアイ ル 20に記録した情報、 即ち標準試料 Eの名前の情報、 配列の数 NA1、 バイ ナリーデ一夕 BN1、 シンドローム C ( j ) , B 1 ( i ) , B 2 ( i ) と、 マ ス夕一ファイル 17に記録した要約値 AB 1, ABR 1の情報とを、 CD— R ZRWドライブ 15を介して CD— R 16に記録してもよい。 この CD— R 1 6から、 更に多数の CD— ROMを作製してもよく、 これらの記録媒体が郵送 等によってユーザに販売される。
次の、 ステップ 108において、 情報処理装置 10は、 標準試料 Eの名前の
情報、 配列の数 NA1、 配列 ST1, SB 1、 要約値 AB 1、 逆方向の配列 S TR 1, SBR 1、 及び逆方向の要約値 ABR 1を磁気ディスク装置 17のコ ンテンッファイル 21に記録する。 図 7のテキストデ一夕 TX1が仮に 100 Mバイト程度の膨大なものであっても、 コンテンツファイル 21に記録される デ一夕は 500バイト程度の僅かなものである。 更に、 情報処理装置 10は、 コンテンツファイル 21中の情報を通信ネットワーク 1を介してコンテンツの プロバイダ 3に送信する。 これによつて、 コンテンツファイル 21中の情報は プロバイダ 3のサーバ内の閲覧可能なコンテンツファイル 31に記録されて、 第 3者がインターネットを介して自由に閲覧できるようになる。
次のステップ 109において、 DNA情報の供給者は、 ユーザから購入要求 が来るのを待つ状態となる。 そして、 (a) ユーザから標準試料 Eに対する簡 易データの要求があったときには、 ステップ 1 10に移行して、 情報処理装置 10は、 磁気ディスク装置 17のヮ一キングファイル 20の中のシンドローム C ( j ) , B 1 ( i ) , B 2 ( i ) の情報を例えば電子メールの添付ファイル としてそのユーザに送信する。 一方、 ステップ 109において、 (b) ユーザ から完全データの要求があったときには、 ステップ 1 1 1に移行して、 情報処 理装置 10は、 ワーキングファイル 20中のバイナリ一データ BN 1を Z I P フアイル等の形式で圧縮し、 この圧縮されたデ一夕を例えば電子メールの添付 ファイルとしてそのユーザに送信する。 この際に必要に応じて、 ハッシュ関数 による要約値 AB 1を同時に送信してもよい。 本例によれば、 簡易データ (シ ンドローム) はデ一夕量が少ないために短時間で送信することができる。 また、 完全デ一夕 (バイナリーデータ BN 1) でも元のテキストデータに比べて 1 4のデ一夕量であるため、 比較的短時間に送信することができる。
また、 ステップ 109において、 ユーザは、 必要に応じて部分データ、 即ち 図 8の全部の変換デ一夕 A ( i , j ) の内の所望のデータ、 例えば 2つの変換 データ A (4, 16) 及び A (1, 17) のみをその供給者から購入するよう
にしてもよい。 これによつて、 必要な正確なデ一夕のみを短時間に入手するこ とができる。
次に、 DNA情報のユーザ (図 1のコンピュータシステム 2Bの所有者とす る) 側では、 図 5のステップ 121において、 図 1の通信ネットワーク 1 (ィ ン夕ーネット) を介してプロバイダ 3のサーバ内のコンテンツファイル 31の 内容を閲覧し、 その中からステップ 108で供給者から送信された情報、 即ち 標準試料 Eの名前の情報、 ヌクレオチドの配列の数 NA1、 配列 ST1, SB 1、 要約値 AB 1、 逆方向の配列 STR 1, SBR 1、 及び逆方向の要約値 A BR 1を読み取り、 読み取った情報をコンピュータシステム 2 B内の記憶装置 の一時ファイルに記録する。
次の、 ステップ 122において、 そのユーザは、 不図示の DNAのシ一ケン サ一を用いて、 標準試料 Eと同じ種類で検査対象の試料 Fの DNA中の一方の 一列のヌクレオチドの配列を読み取り、 読み取られた配列を示すテキストデ一 夕 TX 2をコンピュータシステム 2 B内の情報処理装置に取り込む。 その検査 対象の試料 Fとは、 例えば突然変異を起こしていると思われる大腸菌であり、 そのテキストデータ TX 2は、 標準試料 Eのテキストデ一夕 TX 1と同様に最 初から 2048個までのヌクレオチドの配列を示すものとする。
試料 Fの DNA配列は配列番号 2に示されている。 後述の図 10のテキスト データは、 配列番号 2の配列から数字デ一夕を除いて、 a, g, c, tの文字 をそれぞれ A, G, C, Tで置き換えたものに相当する。
図 10は、 その試料 Fの DN Αのヌクレオチドの配列に対応するテキストデ 一夕 TX 2を示し、 この図 10の配列の内のアンダーラインを付した部分のみ が、 図 7の標準試料 Eの配列と異なっている。 即ち、 試料 Fの配列は、 標準試 料 Eの部分テキストデ一夕 T (4, 16) , T (1, 17) の部分だけが以下 のように異なっている。 なお、 この段階では、 ユーザは、 試料 Fの配列と標準 試料 Eの配列とのどの部分が相違しているのかは分からない。
標準試料 E 試料 F
T(4, 16)=ATTTGGACGGACGTTG → ATTTGGACATTATGGC
T(l, 17)=ACGGGGTCTATACCTG → GGCCAACTTATACCTG
そして、 ユーザのコンピュータシステム 2 B側の情報処理装置においても、 DN Aの配列情報を処理するためのアプリケーション ·プログラムが起動され ている。 そして、 その情報処理装置は、 ステップ 123において、 読み取られ たテキストデータ TX 2に上記の MD 5ハッシュ関数を施して 1 28ビットの 要約値 AB 2を求めると共に、 そのヌクレオチドの配列の数 NA 2、 及び先頭 と末尾との 8個ずつのヌクレオチドの配列 ST2, SB 2を求め、 これらを内 部の記憶装置の第 1データファイルに記録する。 テキストデータ TX2 (図 1 0) に対する具体的な値は下記の通りである。
AB 2=hex(1457b51222a83c3222e87cb4d4e63305) … (1 6)
NA 2 = 2048
S T 2 =AGCTTTTC, SB 2 = CGCGAAGG
次のステップ 1 24において、 情報処理装置は、 試料 Fの配列数 NA2と標 準試料 Eの配列数 NA 1とが等しいかどうかを調べ、 両者が異なっている場合 には、 ユーザはステップ 1 25に移行して、 別の DNA情報を検索し、 NA2 と同じ配列数の DNA情報をサーチする。 本例では、 ステップ 124において、 NA2=NA 1であるため、 動作はステップ 1 26に移行して、 試料 Fの先頭 と末尾との一部の配列 ST2, S B 2力、 標準試料 Eの配列 S T 1 , SB 1と 等しいかどうか、 更に試料 Fの要約値 AB 2が標準試料 Eの要約値 AB 1 (ス テツプ 1 2 1で一時ファイルに記録されている) と等しいかどうかを調べる。 これらが共に等しい場合には、 試料 Fの配列と標準試料 Eの配列とは非常に高 い確率 (ほぼ 1 2128 ^ 1 1038程度の確率) で一致しているとみなすこ とができる。 従って、 ステップ 127に移行して、 コンピュータシステム 2 B の情報処理装置は、 その第 1データファイルに 「試料 Fの DNA構造は、 標準
試料 Eの DNA構造と同一」 との情報を記録する。
但し、 本例では、 ST2 = ST1, SB2 = SB 1が成立する力 (1 1) 式及び (16) 式より AB 2≠AB 1であるため、 動作はステップ 126から ステップ 128に移行して、 その情報処理装置は、 試料 Fの先頭と末尾との一 部の配列 ST2, SB 2力 標準試料 Eを逆に並べた配列の一部の配列 ST R 1, S BR 1と等しいかどう力、 更に試料 Fの要約値 AB 2が標準試料 Eを逆 に並べた配列の要約値 ABR 1と等しいかどうかを調べる。 これらが共に等し い場合には、 試料 Fの配列と標準試料 Eを逆に並べた配列とは非常に高い確率 で一致しているとみなすことができる。 従って、 ステップ 139に移行して、 コンピュータシステム 2 Bの情報処理装置は、 その第 1データファイルに 「試 料 Fの DNA構造は、 標準試料 Eの DNA構造と回文 (palindrome) の関係に ある」 との情報を記録する。
本例では、 ST2≠STR2, SB2≠SBR2、 かつ (12) 式及び ( 1 6) 式より AB 2≠ABR 1であるため、 動作はステップ 128からステップ 129に移行して、 そのユーザは、 通信ネットワーク 1 (イン夕一ネット) を 介して DNA情報の供給者から上記の簡易データ、 即ち標準試料 Eのシンドロ ーム C (j ) , B l (i) , B2 (i) の情報 (図 9の情報) を購入し、 購入 した情報をコンピュータシステム 2 B (情報処理装置) 内の記憶装置の第 2デ 一夕ファイルに記録する。
次に、 図 6のステップ 130において、 コンピュータシステム 2 Bの情報処 理装置は、 図 10に示すように、 試料 Fのテキストデータ TX 2を配列方向 (ヌクレオチドの配列方向) に N行で、 非配列方向に M列の 16文字の長さの 部分テキストデータ TF ( i, j ) (i = l〜N, j =l〜M) に分割する。 分割数 N, Mは標準試料 Eの分割数と同じであり、 本例では、 N=4, M=3 2である。 更に、 情報処理装置は、 図 10の各部分テキストデ一夕 TF ( i , j ) を表 1 (変換テーブル) に基づいてそれぞれ 32ビットのバイナリーデー
夕 (数値デ一夕) よりなる変換デ一夕 AF ( i , j ) に変換する。 この結果、 図 1 1に示す 4行で、 32列の変換デ一夕 AF (i, j ) (16進数表示) が 得られる。 また、 変換デ一夕 AF (i, j ) を連続して配列した集合体 (数値 デ一夕) をバイナリ一デ一夕 BN 2とする。
次に、 情報処理装置は、 ステップ 106の動作と同様にして、 図 1 1の全部 の変換デ一夕 AF ( i , j ) の内で、 各列の変換データ AF ( i , j ) の配列 方向に対する法 232 (mod 232) のもとでの和、 即ち配列方向のシンドロー ム CF ( j ) ( j = 1〜32) を計算する。 CF ( j ) は、 (13) 式で A (i, j ) を AF (i, j ) で置き換えた式で計算される。 更に、 情報処理装 置は、 各行の変換デ一夕 AF ( i , j ) (i = l〜4) の内で奇数番目の変換 デ一夕 AF ( i , 2 j ' - 1 ) ( j ' =1〜16) の非配列方向に対する法 2 32のもとでの和、 及び偶数番目の変換データ AF ( i , 2 j ' ) の非配列方向 に対する法 232のもとでの和、 即ち非配列方向のシンドローム B 1 F ( i ) , B 2 F ( i ) ( i = l〜4) を計算する。 B 1 F ( i ) , B 2 F ( i ) は、 (14) 式、 (15) 式で A ( i , j ) を AF ( i, j ) で置き換えた式で計 算される。 変換データ AF ( i , j ) に対する実際の計算結果が、 図 1 1のシ ンドローム CF ( j ) , B 1 F ( i ) , B2F ( i ) として表示されている。 図 8 (標準試料 E) と図 11 (試料 F) とを比較すると、 図 8の変換データ A (4, 16) , A (1, 17) に対して図 1 1の変換データ A F (4, 1 6 ) , AF (1, 17) の値が異なっている。 従って、 それに対応して図 1 1 にアンダーラインを付して示すように、 図 1 1の配列方向の 2つのシンドロー ム CF (16) , CF (17) , 及び非配列方向の 2つのシンドローム Β 1 F (1) , Β 2 F (4) の値が、 図 8の対応するシンドローム C (16) , C (17) , B 1 (1) , B 2 (4) の値と異なっている。
また、 図 1 2は、 主に図 1 1の試料 Fのデ一夕中からシンドローム C F
( j ) , B 1 F ( i ) , B 2 F ( i ) だけを取り出して表示したものである。
次に、 ステップ 131において、 その情報処理装置は、 供給者から購入した 簡易データの 1組のシンドローム、 即ち図 8 (標準試料 E) の 1組のシンドロ —ム C ( j ) , B 1 ( i ) , B 2 ( i ) と、 上記のように求めた試料 Fの 1組 のシンドローム CF ( j ) , B 1 F ( i ) , Β 2 F ( i ) とを比較して、 相違 するシンドロームをサーチする。 本例では、 図 1 1のシンドローム CF ( 1 6) , CF ( 17) 、 及びシンドローム B 1 F (1) , B2F (4) が相違す るシンドロームとして特定される。 この場合、 配列方向の相違するシンドロ一 ム CF (16) , CF (17) の列と、 非配列方向の相違するシンドローム B 1 F (1) , B 2 F (4) の行との交点が、 標準試料 Eに対して相違する変換 データの位置となる。 従って、 図 1 1の第 4行で第 16列の変換デ一夕 AF (4, 16) 、 及び第 1行で第 17列の変換デ一夕 AF (1, 17) が相違す る変換データとして特定される。
次のステップ 132において、 その情報処理装置は、 図 1 1の変換デ一夕 A F ( i , j ) 中で図 8の変換データ A ( i , j ) と相違する変換デ一夕 (AF ( i ' , j ' ) とする) は、 各行、 又は各列に多くとも一つかどうかを調べる。 これが成立する場合には、 その変換デ一夕 AF ( i ' , j ' ) に対応する標準 試料 Eの変換データは、 法 232のもとでの連立方程式によって容易に求めるこ とができる。 本例では、 それが成立する、 即ち相違する変換データは、 第 1行、 第 4行に一つずつで、 かつ第 16列、 第 17列に一つずつであるため、 動作は ステップ 133に移行する。 そして、 その情報処理装置は、 先ず変換データ A F (4, 16) から標準試料 Eの変換データ A (4, 16) を復元するために、 図 8のシンドローム C (16) 、 図 1 1のシンドローム CF (16) 、 及び変 換デ一夕 AF (4, 16) を用いて次の演算を行う。
A (4, 16) =C(16) -CF(16) +AF(4, 16) (mod232)
=hex (7c33894d) -hex (7c3373a6) +hex (3f523cd6) (mod232)
=hex (3f52527d) … (17)
この結果を図 8の変換データ A (4, 16) と比較すると、 復元が正確に行 われていることが分かる。
続いて、 情報処理装置は、 変換デ一夕 AF (1, 17) から標準試料 Eの変 換デ一夕 A (1, 17) を復元するために、 図 8のシンドローム C (17) 、 図 1 1のシンドローム CF (17) 、 及び変換データ AF (1, 17) を用い て次の演算を行う。
A (1, 17) =C(17) -CF(17) +AF (1, 17) (mod232)
=hex (31b4c2ad) -hex (6661c2ad) +hex (5a0bccad) (mod232)
=hex(255eccad) … (18)
この結果を図 8の変換データ A (1, 17) と比較すると、 復元が正確に行 われていることが分かる。 また、 復元された変換データ A (4, 16) , A (1, 17) が、 図 12中の試料 Fのシンドローム CF ( j ) , B 1 F ( i ) , B2 F ( i ) の内側に表示されている。 図 12の変換データ A (4, 16) , A (1, 17) を表 1に従って逆変換して得られる部分テキストデ一夕は、 図 7の標準試料 Eの部分テキストデ一夕 T (4, 16) , T (1, 17) と等し いことが分かる。
次のステップ 134において、 その情報処理装置は、 復元された変換データ A ( i ' , j ' ) 、 即ち A (4, 16) , A (1, 17 ) で、 図 1 1の試料 F のバイナリーデータ BN 2中の対応する変換データ AF (4, 16) , AF (1, 17) を置き換えた後、 この置き換えによって得られるバイナリ一デー 夕 BN2を表 1に基づいてテキストデ一夕 TX1 ' に逆変換する。 更に情報処 理装置は、 そのテキストデータ TX 1 ' より MD5ハッシュ関数を用いて 12 8ビットの要約値 AB 1' を算出し、 この要約値 AB 1 ' が標準試料 Eの要約 値 AB 1 (ステップ 121で一時ファイルに記録されている) と等しいかどう かを確認する。 本例では、 AB 1 ' =AB 1が成立するが、 例えば図 1 1の試 料 Fの変換データ AF ( i , j ) 中の相違する変換デ一夕の位置や内容によつ
ては、 その相違する位置がステップ 132で正確に検出されない可能性がある c このような場合に、 AB 1, ≠AB 1となったときには、 ステップ 135に移 行すればよい。 通常は、 AB 1, =AB 1が成立して、 動作はステップ 138 に移行して、 情報処理装置は、 上記の第 1データファイルに 「試料 Fの配列と 標準試料 Eの配列との内で相違する部分の位置 U ' , j ' ) 、 及び相違する 部分テキストデ一夕の対」 の情報を記録する。 本例では、 位置 (i ' , j ' ) として位置 (4, 16) , (1, 17) 力 相違する部分テキストデ一夕の対 として A (4, 16) , AF (4, 16) 及び A (1, 17) , AF ( 1 , 1 7) が記録される。
一方、 ステップ 132において、 相違する変換データ AF ( i ' , j ' ) が 少なくとも一行に 2個以上で、 かつ列方向にも 2個以上 (奇数番目又は偶数番 目で 2個以上を意味する) 存在する場合には、 変換データの正確な復元は困難 である。 そこで、 動作はステップ 135に移行して、 そのユーザはその DNA 情報の供給者から標準試料 Eの完全データ、 即ち図 8のバイナリ一データ B N 1を通信ネットワーク 1 (インターネット) を介して購入し、 コンピュータシ ステム 2 Bの情報処理装置は、 そのバイナリーデータ BN 1を記憶装置の第 3 デ一夕ファイルに記録する。
次のステップ 136において、 その情報処理装置は、 そのバイナリ一データ BN1を表 1に基づいてテキストデ一夕 TX1 ' に逆変換 (復元) し、 そのテ キストデ一夕 TX1, より MD 5ハッシュ関数を用いて 128ビットの要約値 ΑΒ 1 ' を算出し、 この要約値 AB 1 ' が標準試料 Εの要約値 ΑΒ 1 (ステツ プ 121で一時ファイルに記録されている) と等しいかどうかを確認する。 通 常は、 AB 1 ' =ΑΒ 1が成立するが、 例えば通信エラ一等によって送信され たバイナリ一デ一夕 BN 1の中にエラ一が生じている場合には、 ΑΒ 1, ≠Α B lとなる。 このときには、 例えば供給者に完全デ一夕の再送信を行う等の対 処を行う。 そして、 ステップ 136で AB 1 ' ==AB 1が成立するときには、
ステップ 137に移行して情報処理装置は、 標準試料 Eのバイナリ一データ B N1中で、 試料 Fの相違している変換データ AF ( , j ' ) に対応する変 換デ一夕 A ( , j ' ) を求める。 その後、 動作はステップ 138に移行す る。
このように本例のビジネスモデルによれば、 第 1段階として標準試料 Eの要 約値 AB 1と試料 Fの要約値 AB 2とを比較して、 両者が等しいときには試料 Fの D N Aの構造は標準試料 Eの D N Aの構造と同じとみなすため、 D N A情 報の供給者からそれ以上の情報を購入する必要が無い。 また、 第 2段階として、 標準試料 Eのシンドローム C ( j ) , B 1 (i) , B 2 ( i ) と試料 Fのシン ドローム CF (j ) , B l F (i) , B2F (i) とを比較して、 相違する変 換デ一夕 AF ( i , j ) の個数が少ない場合には、 対応する標準試料 Eの変換 データ A ( i , j ) を復元するため、 膨大な完全データを購入する必要がなく、 情報処理コストを低減できる。
なお、 上記のステップ 135では、 ユーザは DN A情報の供給者から完全デ —夕 (バイナリーデータ BN 1) を購入している力 別の方法として、 ステツ プ 131で特定された相違する変換データ AF ( , j ' ) に対応する標準 試料 Eの変換データ A ( i ' , j ' ) のみを購入してもよい。 これによつて、 通信コストを低減できる。
また、 本例のシンドロームの使用方法に関して、 本例では非配列方向 (列方 向) に 2組のシンドローム B l ( i ) , B 2 ( i ) を求めているため、 図 1 1 の試料 Fの変換デ一夕 AF ( i , j ) において、 連続する 2列の変換デ一夕 A F ( i , j ) 、 例えば AF ( i, 16) , AF ( i , 17) ( i = 1〜4) の 全部 (8個) が標準試料 Eの変換データ A (i, j ) と相違していても、 その 相違する部分 (エラーコード) の位置を正確に検出することができる。 更に、 非配列方向のシンドローム B 1 F (i) , B2F (i) 、 及び変換データ A F (i, 16) , AF (i , 17) (i = l〜4) を用いて連立方程式を解くこ
とによって、 対応する標準試料 Eの変換データ A (i, j ) の全部を正確に復 元できる。 即ち、 ヌクレオチドの配列方向に対して隣接する 2列に跨るような 比較的長いエラーコード (バーストエラ一) が生じても、 本例のシンドローム によってその位置の検出、 及び対応する配列の復元を行うことができる。
また、 本例のシンドロームを用いれば、 SNP (—塩基変位多型: Single N ucleotide Polymorphism) のように所定の範囲内で 1つのヌクレオチド (塩基) だけが異なっているようなエラ一コードは、 更に容易にその位置の検出、 及び 復元を行うことができる。 そして、 所定の範囲内で、 即ち図 1 1の配列中で 1 つ (ヌクレオチドの 1つ分) だけ生じたエラ一コードの検出、 及び復元を行え ば良い場合には、 非配列方向のシンドローム B 1 F ( i ) , B 2 F ( i ) の代 わりに、 それらの和 (BF ( i ) とする) を使用するのみで十分である。 この 場合には、 図 8の標準試料 Eについても、 非配列方向のシンドローム B 1 ( i ) , B 2 ( i ) の代わりに、 それらの和 (B ( i) とする) を用意するの みでよい。
また、 例えば図 8 (図 1 1でも同様) において、 配列方向のシンドローム C ( j ) を、 各列で前半の 1組の変換デ一夕と後半の 1組の変換データとで 2つ 設け、 非配列方向のシンドローム B 1 ( i ) , B 2 ( i ) を一つの B (i) と した場合にも、 上記の隣接する 2列に跨るバーストエラーの検出及び復元を行 うことができる。 また、 より多くのエラーコードの復元を行うためには、 計算 は極めて複雑になるが、 シンドローム C ( j ) , B 1 ( i ) , B 2 (i) の代 わりに、 シンドローム情報として例えばリードソロモンの CRC符号 (Reed - S olomon Cyclic Redundancy Check Code: RSCRC Code)を使用してもよい。 RS CRC符号については、 例えば文献 (James S. Plank: Software-Practice & Experience, 27(9), September, pp.995-1012 (1997) )で開示されている。
なお、 上記の実施の形態では、 DNA又は RN Aを構成するヌクレオチドは 4種類であるため、 テキストデ一夕 TX 1をバイナリ一データ BN 1に変換す
る際に、 表 1に示すように各ヌクレオチドを 2ビッ卜のデータで表している。 これに対して、 ヌクレオチド (又は塩基) を表すテキストデ一夕として、 以下 のような 1 6種類の文字 a〜n ( 8ビットのアスキーデ一夕) が使用されるこ とがある。
a アデニン (アデニンを含むヌクレオチドと同義、 以下同様)
c シ.トシン
g グァニン
t チミン
U ゥラシ レ
m アデニン、 又はシトシン
r グァニン、 又はアデニン
w アデニン、 又はチミン (若しくはゥラシル)
s グァニン、 又はシトシン
y チミン (若しくはゥラシル) 、 又はシトシン
k グァニン、 又はチミン (若しくはゥラシル)
V アデニン、 グァニン、 又はシトシン
h アデニン、 シトシン、 又はチミン (若しくはゥラシル)
d アデニン、 グァニン、 又はチミン (若しくはゥラシル)
b グァニン、 シトシン、 又はチミン (若しくはゥラシル)
n (アデニン、 シトシン、 グァニン、 又はチミン (若しくはゥラシル) ) 又は (不明若しくは他の塩基) 。
この場合には、 これら 1 6種類の文字を互いに異なる 4ビットのコードに変 換し、 このコードを用いてテキストデータを数値デ一夕 (バイナリーデ一夕) に変換してもよい。 これによつて、 デ一夕量を 1 2にすることができる。 ま た、 将来的にヌクレオチド (塩基) の種類が増加したような場合には、 これら のヌクレオチドを 5ビット、 又は 6ビットのデ一夕で表現するようにしてもよ
い。
また、 上記の実施の形態では、 図 7及び図 1 0のヌクレオチドの配列を示す テキストデ一夕よりハッシュ関数によって要約値を算出しているが、 情報量と しては、 それらのテキストデータは図 8及び図 1 1のバイナリ一デ一夕 (数値 デ一夕) と等価である。 従って、 これらのバイナリ一デ一夕よりハッシュ関数 によってそれぞれ要約値を算出し、 これらの算出結果同士を比較するようにし てもよい。 バイナリーデ一夕はテキストデ一夕に対して 1ノ4程度であるため、 要約値を算出する時間が短縮できる利点がある。
なお、 上記の実施の形態では、 D N A又は R N A中のヌクレオチドの配列 (又は塩基の配列) の情報を処理対象としているが、 本発明は、 遺伝子を形成 するヌクレオチドの配列の情報を処理する場合にも適用できることは言うまで もない。
次に、 本発明の実施の形態の他の例につき説明する。 本例は、 タンパク質又 はペプチドを構成するアミノ酸の配列情報を処理する場合に本発明を適用した ものである。
本例でも基本的に図 1のコンピュータシステム 2 Aを使用できるが、 D N A のシーケンサ一 4の代わりに、 タンパク質のアミノ酸の配列を決定する配列読 み取り装置としてのタンパク質用のシーケンサ一 (protein Sequencer)が情報 処理装置 1 0に接続される点が異なっている。 なお、 その配列読み取り装置と しては、 アミノ酸の配列のデータベースも使用できる。 本例でも、 例えば新規 の試料 Gのタンパク質のアミノ酸の配列をそのシーケンサ一で解読した場合に、 その配列を示すテキストデータ (T X 3とする) が情報処理装置 1 0に供給さ れる。 本例では一文字表記を採用するものとして、 n個のアミノ酸の配列に対 応するテキストデータは、 nバイトの長さである。 本例では、 その試料 Gを大 腸菌として、 そのテキストデ一夕 T X 3として、 図 1 3に示すように、 上記の ウェブサイト 1から入手した大腸菌の或るタンパク質の 8 2 0個のアミノ酸の
配列を示すテキストデ一夕を使用する。
試料 Gのアミノ酸配列は配列番号 3に示されている。 図 1 3のテキストデ一 夕は、 配列番号 3の配列から数字データを除いて、 その配列を一文字表記で表 したものに相当する。 また、 図 1 3においては、 そのテキストデータが配列方 向 (アミノ酸の配列方向) に 8行で、 その配列方向に直交する非配列方向に 2 6列の 4文字の長さの部分テキストデータに分割されており、 86 1番以上の アミノ酸を示すデータ (テキストデ一夕 TX 3には正確には含まれない部分) の位置には仮に 0が表示されている。
次に、 情報処理装置 10は、 供給されたテキストデータ TX 3に上記の MD 5ハッシュ関数を施して 1 28ビットの要約値 A B 3を求めると共に、 そのァ ミノ酸の配列の数 N A 3、 及び先頭と末尾との 8個ずつのアミノ酸の配列 S T 3, SB 3を求める。 テキストデ一夕 TX 3に対する具体的な値は下記の通り である。
AB 3=hex (0f66dc2b3024a9739d0e912fdel2b8ba) … (1 9)
NA3 = 820
S T 3 =MRVLKFGG, S B 3=TL SWKLGV
次に、 情報処理装置 1 0は、 テキストデータ TX 3を逆方向に並べ替えたテ キストデ一夕 TXR 3 (=VGLKWS - · · - FKLVRM) を求め、 この テキストデ一夕 TXR 3の MD 5ハッシュ関数による要約値 ABR 3、 及びこ のテキストデ一夕 TXR 3の先頭と末尾との 8個ずつのアミノ酸の配列 STR 3, SBR 3を求める。 配列 STR 3, S B R 3は、 上記の配列 SB 3, ST 3をそれぞれ逆方向に並べ替えることによって容易に求めることができる。 こ れらの具体的な値は以下の通りである。 テキストデータ TXR 3の配列は元の テキストデ一夕 TX 3に対して回文 (palindrome) の関係にあると言うことが できる。
ABR 3 =hex (e895f433ele77f84b3cadeeadla52380) … (20)
STR3=VGLKWSLT, S B R 3 =GG F KL VRM
次に、 情報処理装置 10は、 試料 Gの名前の情報 (試料を特定する情報) 、 配列の数 NA3、 テキストデータ TX 3、 配列 ST3, SB 3、 要約値 AB3, 逆方向の配列 STR3, SBR3、 及び逆方向の要約値 ABR 3を磁気ディス ク装置 17のマスターファイル 19に記録する。 この際に、 マスターファイル 19を複数のファイルとして、 テキストデ一夕 TX 3と、 それ以外のデータと を別のファイルに記録してもよい。 続いて、 情報処理装置 10は、 例えば図 7 と同様に図 13に示すように、 試料 Gのテキストデ一夕 TX 3を配列方向 (ァ ミノ酸の配列方向) に N行で、 その配列方向に直交する非配列方向に M列の 4 文字の長さの部分テキストデータに分割する。 なお、 N, Mはそれぞれ 2以上 の任意の整数であり、 一例として N= 16, M= 13などとしてもよい。 本例 ではテキストデ一夕 TX 3に例えば 12文字分のダミーデータ (本例では 0を 用いるが、 例えば文字 Aなども使用できる) を付加して得られる 832 (=4 • 16 · 13) バイ卜のテキストデータ (これを TX 3 ' と呼ぶ) を用い、 テ キストデ一夕 TX3' を一例として N=8, M=26で分割する。 本例では、 ヌクレオチドの配列を扱う場合と異なり、 その 4文字分の部分テキストデ一夕 をそのまま 32ビットの変換データとして扱う。 なお、 この際に表 2に示すよ うに、 各アミノ酸を 6ビットのデータで表してもよいが、 データ量は 3 4程 度になるだけであるため、 本例では部分テキストデ一夕をそのまま変換データ (数値デ一夕) として扱う。
それに続いて、 情報処理装置 10は、 その 8行で 26列の変換データに対し て、 図 8の例と同様に、 各列の変換データの配列方向に対する法 232 (mod 232) のもとでの和、 即ち配列方向のシンドロームを計算する。 更に、 各行の 変換データの内で奇数番目の変換データの非配列方向に対する法 232のもとで の和、 及び偶数番目の変換デ一夕の非配列方向に対する法 232のもとでの和、 即ち非配列方向の 2組のシンドロームを計算する。 この例においては、 シンド
ロームそれぞれ 32ビット (4ノ イト) であるため、 全部のシンドロームのデ —夕量は、 168 (=4 · 42) バイトとなる。 従って、 全部のシンドローム のデータ量は、 全体の元のテキストデータ TX 3 (820バイト) に対してほ ぼ 1 4〜 1ノ5に減少している。
次に、 情報処理装置 10は、 試料 Gの名前の情報、 配列の数 NA3、 テキス トデ一夕 TX3、 要約値 ΑΒ3, ABR3、 及びシンドロームを磁気ディスク 装置 17のワーキングファイル 20に記録する。 この際に、 ワーキングフアイ ル 20を複数のファイルとしてもよい。 その後、 情報処理装置 10は、 試料 G の名前の情報、 配列の数 NA3、 配列 ST 3, SB 3、 要約値 AB3、 逆方向 の配列 STR3, SBR3、 及び逆方向の要約値 A B R 3を磁気ディスク装置 17のコンテンツファイル 21に記録する。 更に、 情報処理装置 10は、 コン テンッファイル 21中の情報を通信ネットワーク 1を介してコンテンツのプロ バイダ 3に送信する。 これによつて、 コンテンツファイル 21中の情報はプロ バイダ 3のサーバ内の閲覧可能なコンテンツファイル 31に記録されて、 第 3 者がインターネットを介して自由に閲覧できるようになる。 この結果、 第 3者 は、 公開されている試料 Gの配列の数 NA3、 及び要約値 AB 3 (又は必要に 応じて ABR3) を自分の保有するアミノ酸の配列の配列数、 及び要約値と比 較することによって、 その試料 Gが自分にとって新規かどうかを判定できる。 また、 ユーザは、 その試料 Gの配列情報を複数の供給者から誤って重複して購 入することを回避することができる。
その後、 コンピュータシステム 2 Aの所有者 (アミノ酸情報の供給者) は、 ユーザから購入要求が来るのを待つ状態となる。 そして、 ユーザから試料 Gに 対する簡易デ一夕の要求があったときには、 情報処理装置 10は、 磁気ディス ク装置 17のワーキングファイル 20の中の試料 Gのシンドロームの情報を例 えば電子メールの添付ファイルとしてそのユーザに送信する。 シンドロームの 情報を購入したユーザは、 試料 Gと同じ種類の自分で解読した試料のアミノ酸
の配列のシンドロームと、 その購入したシンドロームとを比較することによつ て、 相違する部分の検出及び復元を或る程度行うことができる。
一方、 ユーザから完全データの要求があったときには、 情報処理装置 1 0は、 ワーキングファイル 2 0中のテキストデ一夕 T X 3を Z I Pファイル等の形式 で圧縮し、 この圧縮されたデータを例えば電子メールの添付ファイルとしてそ のユーザに送信する。 この際に必要に応じて、 ハッシュ関数による要約値 A B 3を同時に送信してもよい。 本例によれば、 簡易データ (シンドローム) はデ —夕量が少ないために短時間で送信することができる。
更に、 そのアミノ酸の配列情報の供給者は、 ワーキングファイル 2 0に記録 した情報、 即ち試料 Gの名前の情報、 配列の数 NA 3、 テキストデ一夕 T X 3、 要約値 A B 3, A B R 3、 及びシンドロームを C D— R/RWドライブ 1 5を 介して C D— R 1 6に記録してもよい。 この C D— R 1 6から、 更に多数の C D— R OMを作製してもよく、 これらの記録媒体が郵送等によってユーザに販 兀 3 る。
次に、 本例において、 アミノ酸の配列中から所望の連続する部分的な配列を 選択する方法の一例につき説明する。 そのため、 図 1 3の試料 Gの配列が、 図 1の表示装置 1 2の表示画面中に表示されているものとして、 その表示画面の 右端のエッジ部を図 1 3のエッジ部 5 1とする。
図 1 3において、 試料 Gのアミノ酸の配列はエッジ部 5 1の左側の表示領域 に表示されており、 その表示領域には図 1のマウス 2 0 4によって制御される 力一ソル 5 2も表示されている。 この場合、 図 1 3の第 1 6列の第 2行〜第 7 行の矩形枠で囲まれた領域 5 4内の配列を選択するものとすると、 本例では先 ず領域 5 4の右端部の文字" A" の上にカーソル 5 2を移動して、 図 1のマウ ス 2 0 4の左スィッチ 2 0 4 aを操作する。 その後、 カーソル 5 2がエッジ部 5 1から更に右方向の位置 5 3まで仮想的に移動するように、 マウス 2 0 4を 右方向に移動する。
本例では、 そのように力一ソル 5 2がー方のエッジ部に達した後にも、 更に 力一ソル 5 2が表示領域の外側に移動するようにマウス 2 0 4を移動すると、 そのカーソル 5 2は、 そのエッジ部に対向する他方のエッジ部からその表示領 域内に現れるというスクリーン · ラッピング動作が行われる。 この結果、 カー ソル 5 2は、 図 1 3の表示領域の不図示の左側のエッジ部の右側に移動して、 領域 5 4の左端部の文字" K" 上に移動して、 領域 5 4の配列が選択される。 この状態で一例としてマウス 2 0 4の右スィッチ 2 0 4 bを操作することによ つて、 領域 5 4の配列のコピー等を行うことができる。
次に、 図 1 4は、 図 1 3の配列の第 1 5列〜第 1 7列の配列を示し、 この図 1 4において、 第 1 6列の第 8行の領域 5 6 A、 及びこれに続く第 1 7列の第 1行の領域 5 6 Bの配列を選択するものとする。 このとき、 先ず領域 5 6 Aの 左端部の文字" L " の上にカーソル 5 2を移動して、 図 1のマウス 2 0 4の左 スィッチ 2 0 4 aを操作する。 その後、 カーソル 5 2がエッジ部 5 1から更に 右下方向の位置 5 5まで仮想的に移動するように、 マウス 2 0 4を右下方向に 移動する。 この結果、 スクリーン ·ラッピング動作によって、 本例のカーソル 5 2は、 図 1 4の表示領域の不図示の左側のエッジ部の右側に移動して、 領域 5 6 Bの右端部の文字" L " 上に移動して、 領域 5 6 A, 5 6 Bの配列が選択 される。 この状態で一例としてマウス 2 0 4の右スィッチ 2 0 4 bを操作する ことによって、 領域 5 6 A, 5 6 Bの配列のコピー等を行うことができる。 このように本例によれば、 力一ソルのスクリーン · ラッピング動作によって、 マウス 2 0 4の移動量を少なくしてアミノ酸の配列中の一連の広い領域、 及び 左右に離れた端部の連続する領域の配列を容易に選択することができる。 同様 に、 ヌクレオチドの配列中から所定の部分的な領域を選択する場合にも、 カー ソルのスクリーン · ラッピング動作を行うことによって、 選択動作を容易にか つ高速に行うことができる。
次に、 カーソルのスクリーン ' ラッピング動作の別の例につき図 1 7を参照
して説明する。 この例では、 ユーザが図 1のマウス 2 0 4を用いて所望のアブ リケーシヨン ·プログラムを起動する際の動作につき説明する。 ここでは、 図 1の表示装置 1 2の表示領域を図 1 7の表示領域 2 0 1 aとして、 表示領域 2 0 1 aの長辺方向を X方向、 短辺方向を y方向とする。 また、 カーソルの座標 を指定できる範囲を有効座標領域 2 0 1 bとする。 この場合、 カーソルの座標 を表示領域 2 0 1 aの外側で、 かつ有効座標領域 2 0 1 bの内側に設定すると、 カーソルは表示領域 2 0 1 aのエッジ部に表示される。
図 1 7 ( a ) は、 表示領域 2 0 1 aに表示されるプログラムリストの一例を 示し、 この図 1 7 ( a ) の表示領域 2 0 1 aには、 メニューリスト 2 2 1から 選択されたプログラムの第 1のグループリスト 2 2 2 (第 1列) 、 及び第 2の グループリスト 2 2 3 (第 2列) が X方向に 2列に分けて表示されている。 こ の表示は、 メニューリスト 2 2 1上で 「プログラム」 の表示 (反転している) 上をカーソル 2 2 0が通過することによって生成される。 本例では、 第 2のグ ループリスト 2 2 3中のグループ G 1 6中の或るアプリケ一ション ·プロダラ ムを実行したいものとして、 カーソル 2 2 0を 「グループ G 1 6」 の表示 (反 転している) 上に移動させる。 本例の表示領域 2 0 1 aでは、 第 2のグループ リスト 2 2 3 (第 2列) の右側 (+ x方向) にはサブ情報を表示する余地が無 いため、 グループ G 1 6のアプリケーションリスト 2 2 4は、 グループリスト 2 2 2 (第 1列) の左側 (一 X方向) に表示される。 ここで、 実行したいアブ リケーシヨン 'プログラムがアプリケーション A 3であるとすると、 どのよう に力一ソル 2 2 0をアプリケーションリスト 2 2 4上に移動するかが問題とな る。
即ち、 単にカーソル 2 2 0をグループ G 1 6上から左側のグループリスト 2 2 2上に移動すると、 例えばグループ G 2のアプリケーションリス卜が表示さ れ、 グループ G 1 6のアプリケーションリスト 2 2 4の表示が消えてしまう。 そこで、 本例では、 カーソル 2 2 0をグループ G 1 6上から右方向 (+ x方向)
に移動させる。 そして、 力一ソル 2 2 0の座標を P (m, n ) とすると、 更に カーソル 2 2 0の座標が、 表示領域 2 0 1 aを囲む有効座標領域 2 0 1 bの + X方向の外側の座標 P (m l , n 1 ) となるように、 図 1のマウス 2 0 4を右 方向に移動する。
この結果、 カーソル 2 2 0は、 グループ G 1 6の表示の右側の位置から、 図 1 7 ( b ) に示すように座標 P ( 0 , n 1 ) の位置の近傍、 即ちアプリケ一シ ヨンリスト 2 2 4上に移動する。 この後、 マウス 2 0 4を僅かに下方向に移動 して、 カーソル 2 2 0をアプリケーション A 3の表示上に移動させた状態で、 図 1の左スィッチ 2 0 4 aをクリックすることによって、 極めて短時間に、 か つ容易にアプリケ一ション A 3のプログラムを起動することができる。
次に、 本例では、 例えば図 1 7 ( a ) において、 力一ソル 2 2 0の計算上の 座標が表示領域 2 0 1 aの外部で、 かつ有効座標領域 2 0 1 bの内部にある (力一ソル 2 2 0は表示領域 2 0 1 aのエッジ部に表示されている) とき、 即 ち力一ソル 2 2 0が不活性である (アイドリング状態にある) ときには、 図 1 のマウス 2 0 4のスィッチ 2 0 4 a , 2 0 4 bに別の機能を持たせるようにし てもよい。 このようにスィッチ 2 0 4 a, 2 0 4 bに別の機能を持たせるとき には、 力一ソル 2 2 0の形状を変形させてもよい。 一例として、 そのように力 一ソル 2 2 0が不活性であるときに、 左スィッチ 2 0 4 aを操作しながらマウ ス 2 0 4をドラッグしたときには、 表示領域 2 0 1 aの大きさを所定範囲で伸 縮できるようにしてもよい。 更に、 上記の範囲のみならず、 例えばカーソル 2 2 0が表示領域 2 0 1 aの輪郭 (エッジ部) に対して内側に隣接する幅 L 1の 枠状の領域にあるときにも、 スィッチ 2 0 4 a , 2 0 4 bに対して別の機能を 持たせてもよい。
以上をまとめると、 本例による情報選択方法は、 複数の情報 (2 2 1〜2 2 3 ) が表示された表示領域 (2 0 1 a ) より、 その複数の情報の何れか、 又は その複数の情報の何れかに関連する情報を選択する情報選択方法において、 移
動量及び移動方向の少なくとも一方の情報を含む制御情報を生成し、 この生成 された制御情報に基づいてその表示領域内にその複数の情報に重畳させて移動 自在にカーソル (2 2 0 ) (ポインタ) を表示し、 このカーソルとその複数の 情報の表示との位置関係に基づいて、 その複数の情報の何れか、 又はその複数 の情報の何れかに関連する情報を選択できるようにしておき、 その力一ソルを その表示領域の周縁部の第 1の端部に移動させた状態で、 更にそのカーソルを その表示領域の外側に移動させるようにその制御情報を与えたときに、 その力 一ソルをその表示領域のその周縁部のその第 1の端部とは異なる第 2の端部を 起点としてその表示領域内で移動させるものである。
即ち、 本例のカーソル (2 2 0 ) は、 ポインティングデバイスの制御情報に 応じて、 スクリーン, ラッピング方式で表示領域 (2 0 1 a ) 中を周期的に移 動する。
この結果、 G U I (Graphical User Interface)方式でコンピュータ等の各種 装置を操作する際に、 登録してあるアプリケーション ·プログラムの個数が多 い場合でも、 高速に力一ソルを所望のアプリケーション 'プログラムの位置に 移動させて、 そのプログラムを起動することができる。
本例において、 その表示領域 (2 0 1 a ) が所定の軸に関して実質的に軸対 称の領域 (矩形領域、 又は楕円形の領域等) である場合、 その第 2の端部は、 その表示領域内でその所定の軸に関してその第 1の端部と実質的に軸対称の位 置に設定されると共に、 そのカーソル (2 2 0 ) のその第 2の端部からの移動 方向は、 その制御情報によってその第 1の端部から更にその力一ソルを移動さ せようとした方向であることが望ましい。 これによつて、 カーソル (2 2 0 ) の周期的な動きが容易に予測できるため、 ユーザが特に習熟することなく、 直 ぐにその周期的な力一ソル (2 2 0 ) の動きを活用できる。
また、 そのカーソル (2 2 0 ) をその表示領域 (2 0 1 a ) のその周縁部の 第 1の幅の制限領域に移動させた状態、 及びそのカーソルをその制限領域から
更に第 2の幅 (L) だけ外側 (20 1 b) に移動させるようにその制御情報を 与えた状態では、 そのカーソルに対してその情報の選択以外の別の機能を与え ることが望ましい。 通常は、 その表示領域 (20 1 a) の周縁部にはアプリケ ーシヨン 'プログラムのアイコン等は表示されていない。 そこで、 そのカーソ ル (220) がその表示領域 (20 1 a) の周縁部に有る状態では、 アプリケ —ション ·プログラムの選択以外の機能、 例えばその表示領域の伸縮機能等を 持たせても、 アプリケーション ·プログラムの選択には実質的に影響が無いと 共に、 力一ソル (220) (ポインティングデバイス) の用途が広がる利点が ある。
また、 本例では図 1 7に示すように、 その表示領域 (20 1 a) 内にその複 数の情報、 及びこれらの情報に関連する情報が複数列 (222, 223) に表 示されているときに、 そのカーソル (220) がその複数列の一方の端部の列 (223) の所定の情報の表示を通過しているときに、 その表示領域内のその 複数列の他方の端部の列 (222) の外側にその所定の情報に関連する複数の サブ情報 (224) を表示し、 更にそのカーソルをその複数列の一方の端部の 列 (223) からその表示領域の外側に移動させるようにその制御情報を与え たときに、 そのカーソル (220) をその表示領域のその複数列の他方の端部 の列 (222) に近い端部 P (0, n 1) を起点として、 その複数のサブ情報 (224) の表示上に移動させて、 その複数のサブ情報の何れかを選択可能と している。
即ち、 図 1 7に示すように、 その表示領域 (20 1 a) 内に表示すべきアブ リケ一シヨン ·プログラムの個数が多い場合には、 例えばその右側の端部の列 (223) のサブ情報 (224) が左側の端部の列 (222) の外側に表示さ れる。 このときに、 本例の周期的な移動を行うカーソル (220) を適用する と、 そのサブ情報 (224) 中のアプリケーション ·プログラムを選択するた めには、 ポインティングデバイスによってそのカーソル ( 220) をその列
(223) から更に右方向に移動させるようにすればよい。 これによつて、 ァ プリケ一シヨン,プログラムの個数が多く、 プログラムリストが複数列になる ような場合でも、 GU I方式で容易にカーソルを所望のアプリケ一ション ·プ ログラムの位置に移動できる。
ここで、 DNA又は RNAのヌクレオチドの配列 (塩基の配列) に対応する テキストデ一夕 (又はこれを表 1等に基づいて変換した数値データ) の要約値 を算出するためのハッシュ関数について更に説明する。 例えばハッシュ関数の 演算対象を、 人間の DN Aのヌクレオチドの配列とすると、 そのテキストデ一 夕又は数値データのファイル (以下、 「原ファイル」 と言う) は 100Mバイ ト程度にも達する膨大なファイルである。 そこで、 本発明で使用するハッシュ 関数 (ハッシュ演算アルゴリズム) は、 演算対象の原ファイルを分割した後の 複数の分割ファイルを順次処理することによって、 全体の要約値を算出する機 能を持つことが望ましい。
また、 ハッシュ関数は、 一例として所定ビット数 ml (mlは例えば 32, 64等) のデ一夕を 1ワードとして、 所定ワード数 m2 (m2は例えば 16, 32, 64等) 単位で、 原ファイルの要約値を算出していく。 この際に、 デー 夕の処理単位は、 ml *m2ビットとなる。 例えば ml =32, m2=16で は、 処理単位は 512ビットとなる。 そこで、 その原ファイルを複数の分割フ アイルに分割する際には、 最初は ml *m2ビットの整数倍 (例えば 1000 0倍程度) を単位として分割していき、 端数として残ったデータに所定デ一夕 (長さを表すデータ、 区切りデータ等) を付加して ml ,m2ビットの整数倍 のファイルとすることで、 要約値の演算を効率的に実行することができる。 更に、 暗号理論で使用されるハッシュ関数は、 テキストデータ中のスペース コード及び改行コード等も全て演算処理対象としているが、 ヌクレオチド及び アミノ酸の配列情報については見やすくするために、 配列番号 1〜 3で示すよ うに途中にスペースコード、 配列順序を示す数字コード、 及び改行コードを挿
入する場合がある。 そこで、 ヌクレオチドの配列情報 (アミノ酸の配列情報も 同様) を演算処理対象とするハッシュ関数においては、 必要に応じてテキスト デ一夕中の所定コ一ドとしての数字コ一ド、 スペースコ一ド及び改行コードを 無視する機能を付加することが望ましい。 また、 隣接する文字を" 一" (ハイ フン) で分けることも考えられるが、 この場合には、 更に" 一" 記号も無視す る必要がある。
更に、 原ファイルを複数の分割ファイルに分割する際には、 複数の分割ファ ィルの順序等を示すデータ (以下、 「コメントデータ」 と言う) を各分割ファ ィルに付加することが望ましいことがある。 このように分割ファイル、 又は 1 つの原ファイルにコメントデータを付加する場合にも、 コメントデ一夕はハツ シュ関数で無視する必要がある。 そのため、 例えばコメントデータは所定の開 始記号 (例えば Z * ) 及び終了記号 (例えば * Z) の間に記録し、 八ッ シュ関数で処理する際に開始記号から終了記号までのデ一夕は無視するように すればよい。
また、 上記の実施の形態では、 例えば生物の D N Aのヌクレオチドの配列 (又はタンパク質のアミノ酸の配列) 内の先頭の一部、 及び末尾の一部の配列、 並びにその配列のテキストデ一夕の要約値をィン夕ーネッ卜上で公開すること がある。 この場合には、 その公開されている一部の配列と、 その要約値とから そのテキストデ一夕の内容が推定される可能性もある。 これを回避するために、 そのテキストデータをハッシュ関数で処理する際に、 その公開されている配列 を除いた部分についてのみ、 そのハッシュ関数を施して要約値を求めるように してもよい。
次に、 例えば核酸や遺伝子のヌクレオチドの配列が見易いように順序を示す 数字、 スペース、 及び改行を含んでテキストデータとして記録されたファイル (ファイル F D 1とする) の要約値(message digest)を計算するための方法の 一例につき図 1 5を参照して説明する。 なお、 以下の要約値の計算は、 例えば
図 1の情報処理装置 10において実行される。
図 15において、 先ずステップ 151では、 ファイル FD 1中のテキストデ 一夕から数字コード、 スペースコード、 及び改行コードを取り除いたテキスト デ一夕をファイル FD 2に記録する。 その次のステップ 152では、 例えば M D 5ハッシュ関数を用いてファイル FD 2中のテキストデ一夕の 128ビット の要約値を算出する。 この方法は処理は単純であるが、 ファイル FD 1が例え ば 100Mバイト程度であるとすると、 ファイル FD 2もほぼ 100Mバイト 程度になるため、 記憶装置の容量を大きくする必要がある。
MD 5ハッシュ関数のアルゴリズムについては、 上記のウェブサイト 2で詳 細に開示されているが、 ここでそのアルゴリズムについて簡単に説明する。 先ず、 ここでは 1ワード" word"とは、 32ビットの量であり、 1バイト" byt e"とは、 8ビッ卜の量である。 そして、 一列のビットは、 自然に一列のバイト と解釈することができ、 ここではそれぞれ 8ビットのデータの集まりを、 MS B (most significant bit) 即ち上位ビットが最初に表示される 1バイトのデ —夕として解釈することができる。 同様に、 一列のバイトは、 一列の 32ビッ 卜のワードと解釈することができ、 ここではそれぞれ 4バイトのデ一夕の集ま りを、 LSB (least significant byte)、 即ち下位バイトが最初に表示される 1ヮードのデ一夕として解釈することができる。
また、 次のように演算等を定義する。 即ち、 " X— i " は X に下付き文字 i を付加した表現を意味し、 その下付き文字が一つの式であるときには、 例え ば" x—ii + 1にのようにその式を括弧で囲むものとする。 同様に、 上付き文字 (べき乗) としては ' を用いる。 従って、 "x'i" は X の i 乗を意味する。 また、 記号" +" は、 ワードの加算、 即ち法 2'32 の加算を意味する。 そして、 " Xくくく s " は、 X を s ビットだけ左側に循環的にシフトして (回転して) 得 られる 32ビットの値を意味する。 また、 not(X) は、 X のビット毎の補数(c 0即 lement)を意味し、 " X v Y"は、 X と Y とにビット毎の OR演算を施して得
られる値を意味し、 " X xor Y"は X と Υ とにビット毎の X O R (排他的論理和) 演算を施して得られる値を意味し、 "ΧΓは X と Υ とにビット毎の AN D演算を 施して得られる値を意味する。
次に、 上記のファイル F D 2に記録されているテキストデータ (ファイル F D 1から数字コード、 スペースコード、 及び改行コードを取り除いたテキスト データ) を、 要約値を求めるべき bビットのメッセ一ジであるとする。 その値 bは、 任意の非負整数であり、 bは 0であってもよい。 その値 bは 8の倍数で ある必要はなく、 更に任意に大きい値であってもよい。 その bビットのメッセ ージの一連のビットは次のように表すことができる。
m_0 m_l . . . m_ (b-l)
そのメッセージの要約値は、 次の 5つのステップ A〜Eの処理で計算するこ とができる。
[ステップ A] (追加ビッ卜の付加)
そのメッセージには、 そのメッセージをビット列で表現したときの長さが法 5 1 2のもとで 4 4 8に合同となるように追加ビットが付加 (拡張) される。 即ち、 そのメッセージは、 その長さが 5 1 2の倍数のビットよりも 6 4ビット だけ少ない長さになるように拡張される。 追加ビットの付加は、 たとえそのメ ッセージの長さが既に法 5 1 2のもとで 4 4 8に合同である場合でも常に実行 される。
追加ビットの付加は、 単一のビット" 1" を付加した後に、 ビットの長さが法 5 1 2のもとで 4 4 8に合同となるようにビット" 0" を付加することによって 実行される。 全ての場合に、 少なくとも 1ビット、 そして最大で 5 1 2ビット が付加される。
[ステップ B ] (長さ情報の付加)
そのメッセージのビット数である b (ステップ Aにおける追加ビットの付加 が行われる前の長さ) の 6 4ビットの表現が、 ステップ Aで得られたメッセ一
ジに付加される。 実際には起こりそうもないが、 仮に bが 64ビットよりも大 きいときには、 bの表現の下位の 64ビット分だけが付加される。 これらのビ ットは、 2つの 32ビットのワードとして、 上述の内容に対応して下位のヮ一 ドが最初になるように付加される。
このようにして得られたメッセージのビット表現の長さは、 正確に 5 1 2の 倍数、 即ち 5 1 2ビットの倍数となる。 言い換えると、 このようにして得られ たメッセージの長さは、 正確に 1 6個の (32ビットの) ワードの倍数となる。 そこで、 このようにして得られたメッセージの各ワードを M[0 ... N-1] とす る。 ここで、 Nは 1 6の倍数である。
[ステップ C] (要約値バッファの初期化)
要約値を計算するために 4ワードのバッファ (A, B, C, D)を使用する。 ここで、 A, B, C, D はそれぞれ 32ビットのレジス夕であり、 これらのレジスタは下 位バイトを最初に記載する 1 6進表現で次の値に初期化される。
ワード A: 01 23 45 67
ワード B: 89 ab cd ef
ヮード C: fe dc ba 98
ワード D: 76 54 32 10
[ステップ D] 1 6ワードブロック毎のメッセージの処理
ここでは、 それぞれ入力として 3個の 32ビッ卜のワードを受け取って出力 として 1個の 32ビッ卜のワードを生成する 4個の補助的な関数を次のように 定義する。
F (X, Y, Z) = XY V not (X) Z
G (X, Y, Z) = XZ V Y not (Z)
H (X, Y, Z) = X xor Y xor Z
I (X, Y, Z) = Y xor (X v not (Z))
各ビット位置で、 関数 Fは、 Xが真ならば Yで、 そうでなければ Ζという条
件式として作用する。 関数 Fは、 V の代わりに +を使って定義することもでき た。 なぜなら、 XY と not(X)Z とは、 同じビット位置で共に 1となることが 決してないからである。
関数 G, H, Iは、 Χ,Υ,Ζ のビットからビット毎に並行に出力を生成する点 で関数 Fと同様である。
また、 関数 Ηは、 その入力に対してビット毎の XOR演算、 又はパリティ演 算を施す関数である。
更にこのステップ Dでは、 正弦関数から導かれる 64個の要素を持つテープ ル T[l ... 64]を用いる。 即ち、 そのテ一ブルの i番目の要素を T[i] として、 iの単位をラジアンとすると、 次のようになる。
T[i]= {4294967296 x abs(sin(i))} の整数部
なお、 abs(sin(i)) は sin(i) の絶対値である。 これらの関数及びテ一ブル を用いて以下の演算を行う。
各 16ワードのブロックを処理するために、 変数 iについて 0から (NZ1 6— 1) まで以下の [ iに関するループの始まり] から [iに関するループの 終わり] までの処理を繰り返して行う。
[ iに関するループの始まり]
先ず変数 jについて 0から 15まで、 1ワードのメッセージ M[i*16+j]を X [j] にコピーする。
続いて、 バッファ A, B,C, D の値をそれぞれ次のようにバッファ AA, BB, CC,DD にコピーする。
AA = A, BB = B, CC = C, DD = D
[ラウンド 1]
ここで、 [abed k s i] は次の処理を行うものと定義する。
a = b + ( (a I F (b, c, d) + X [k] + T[i]) <« s)
そして、 次の 16回の処理を行う。
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 17 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
[ラウンド 2 ]
ここで、 [abed k s i] は次の処理を行うものと定義する。
a = b + ( (a + G (b, c, d) + X [k] + T [U ) «< s)
そして、 次の 1 6回の処理を行う。
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
[ラウンド 3 ]
ここで、 [abed k s t] は次の処理を行うものと定義する。
a = b + ( (a + H (b, c, d) + X [k] + T [i] ) «< s)
そして、 次の 1 6回の処理を行う。
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36] [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 .16 39] [BCDA 10 23 40] [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44] [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
[ラウンド 4 ]
ここで、 [abed k s t] は次の処理を行うものと定義する。
a = b + ( (a + I (b, c, d) + X [k] + T [i] ) «< s)
そして、 次の 1 6回の処理を行う。
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64] 次に、 バッファ A,B,C, D の値にそれぞれ次のようにバッファ AA, BB, CC, DD の 値 (このブロックの処理が始まる前のバッファ A, B, C, D の値) を加算する。
A = A + AA, B = B + BB, C = C + CC, D = D + DD
[ iに関するループの終わり]
[ステップ E] 出力
出力として計算された要約値はバッファ A, B, C, D の値そのものである。 即ち、 バッファ A の下位バイトから始まって、 バッファ D の上位バイトで終わ る値がその要約値である。 なお、 要約値が 32ビット又は 64ビットでよいよ うな場合には、 それぞれ例えばバッファ A、 又はバッファ A, B の値のみを要約 値として用いてもよい。
また、 MD 5ハッシュ関数は、 元のデータの推定が困難となるように複雑な 処理を行っているが、 ヌクレオチドやアミノ酸の配列デ一夕の要約値を計算す る場合には元のデータが或る程度推定されても特に不都合がないことがある。 この場合には、 メッセージに対応する一連の所定ビット数 s ( 3は1^05ハッ シュ関数では 512) のブロック B i (i = l〜I) 毎の演算を、 順次次のよ うな簡単な演算で行うことも考えられる。
M, = (M.-! · B i +b) mo d 2 s ( i =2〜I)
この場合、 a, bは 0以外の sビットの数であり、 が最終的な要約値と なる。
次に、 上記のファイル FD 1の要約値を計算するための別の方法につき図 1 6を参照して説明する。 ここでは MD 5ハッシュ関数を用いて要約値を計算す るものとする。 以下の計算も一例として図 1の情報処理装置 10で実行される c 先ず図 16のステップ 161において、 ヌクレオチド自体を表すコードの個
数を表す変数 NX, NYの値をそれぞれ 0に設定し、 要約値を表す 3 2ビット ずつのバッファ A, B, C, Dの値を所定の初期値 (上記のステップ Cで設定 した値) に設定し、 要約値の計算対象のテキストデータを空にする。
次のステップ 1 6 2において、 ファイル FD 1中のテキストデ一夕の先頭か ら 1文字分 (ここでは 1バイト) の文字コード (ここでは全ての種類のコード を含む意味である) を読み取り、 それに続くステップ 1 6 3において、 読み取 つた文字コードが数字コード、 スペースコード、 又は改行コードかをチェック する。 そして、 読み取った文字コードが数字、 スペース、 改行の何れのコード でもない、 即ち本例では A〜Z, a〜zの何れかのコードであるときには、 ス テツプ 1 6 4に移行して、 変数 NXの値に 1を加算すると共に、 読み取った文 字コードを要約値の計算対象のテキストデータに加える。 続いてステップ 1 6 5において、 変数 NX (読み取られた有効な文字コードの個数) が、 要約値の 計算単位である文字数 NA に達したかどうかを調べる。 本例では、 ΝΛ = 5 1 2/8 = 6 4である。
ΝΧ = ΝΑ であるときには、 ステップ 1 6 6に移行して、 変数 NXを 0に戻 すと共に、 変数 NY (ΝΛ 個の文字単位のブロック数) に 1を加算した後、 ス テツプ 1 6 7に移行して、 計算対象のテキストデ一夕 (NA 個の文字コードを 含んでいる) の要約値 (A, B, C, D) を計算する。 これは、 上記のステツ プ Dを 1回実行することを意味する。 その後、 計算対象のテキストデ一夕を空 にしてから、 動作はステップ 1 6 8に移行して、 ファイル FD 1中に読み取り 対象となる文字コードがまた有るかどうかがチェックされる。 また、 ステップ 1 6 3で読み取られた文字コードが数字、 スペース、 改行の何れかのコードで あるときには、 ステップ 1 6 9で読み取った文字コードを無視した後、 ステツ プ 1 6 8に移行する。 更に、 ステップ 1 6 5で変数 NXが NA に達していない ときにも、 動作はステップ 1 68に移行する。
そして、 ステップ 1 6 8において、 読み取り対象となる文字コードがまだ有
るときには、 動作はステップ 1 62に戻り、 ファイル FD 1中のテキストデ一 夕から次の 1文字分の文字コードが読み取られて、 以下ステップ 1 63〜1 6 8の動作が繰り返される。 一方、 ステップ 1 68において、 読み取り対象とな る文字コードが無くなったときには、 動作はステップ 1 70に移行して、 要約 値 (A, B, C, D) が計算される。 この際に、 変数 NX, NYの値より読み 取られた有効な文字コードの全個数が分かるため、 上記のステップ A、 ステツ プ8、 ステップ D、 ステップ Eが実行される。 得られた要約値 (A, B, C, D) が最終的な要約値となる。
具体的に MD 5ハッシュ関数を用いて図 1 5、 及び図 16の計算方法で、 配 列番号 1、 2のヌクレオチドの配列を示すテキストデータ、 及び配列番号 3の アミノ酸の配列を示すテキストデ一夕の要約値を計算した結果は、 16進数表 示で以下のようになる。 これらの要約値は、 配列の改行方法等を変えても変化 しない一定の値である。
MD 5の要約値 (配列番号 1) =hex(lc0a0bld72e256bbl0556a2fb52d28ae) MD 5の要約値 (配列番号 2) =hex (ec8c3c9af 5630f 61f 3d0cd2bdl3b0f Od) MD 5の要約値 (配列番号 3) =hex(164fl4406ac21158e20ba72666a033ab) この要約値の計算方法によれば、 ファイル FD 1から逐次関係の無い文字コ —ドを取り除きながら要約値を計算しているため、 記憶装置の記憶容量を殆ど 増加する必要がないという利点がある。 従って、 ファイル FD 1の情報量が大 きくなる程、 この計算方法は有利になる。 また、 上記のステップ 1 5 1、 1 6 3では、 所定コードとしての数字コード、 スペースコード、 改行コードを取り 除いているが、 それ以外にコメント文などを取り除くようにしてもよい。 また、 図 1 5、 図 1 6で要約値を計算するための方法は、 MD 5ハッシュ関数のみな らず、 他のどのような関数であってもよい。
なお、 本発明は上述の実施の形態に限定されず、 本発明の要旨を逸脱しない 範囲で種々の構成を取り得ることは勿論である。 また、 明細書、 特許請求の範
囲、 図面、 及び要約を含む 2 0 0 0年 4月 1 9日付け提出の日本国特願 2 0 0 0 - 1 1 7 3 4 3の開示内容の要部、 及び 2 0 0 0年 5月 1 9日付け提出の日 本国特願 2 0 0 0 - 1 4 9 1 2 2の開示内容の全ては本願に組み込まれている c 産業上の利用の可能性
本発明によれば、 核酸や遺伝子中のヌクレオチドの配列情報、 又はタンパク 質やべプチド中のアミノ酸の配列情報を、 それらの配列が所定の長さを超えた ときに、 それらの配列を示すテキストデ一夕よりも少ないデータ量で記録する ことができる。 従って、 それらの配列情報を通信回線を介して短時間に送信す ることが可能となる。
また、 それらの配列を示すテキストデータ、 又はこれに対応する数値データ の数学的な要約値を用いた場合には、 膨大な長さの 2つのヌクレオチドの配列 同士、 又は 2つのアミノ酸の配列同士の同一性を少ないデータ量で高精度に確 認することができる。 また、 同一の複数の配列情報を誤って購入することも防 止できる。
また、 シンドローム情報を用いた場合には、 2つのヌクレオチドの配列 (又 は 2つのアミノ酸の配列) の間の相違する部分を少ないデータ量で容易に検出 できると共に、 必要に応じてその相違する部分の情報を復元することができる 従って、 例えば S N P (—塩基変位多型: Single Nucleot ide Polymorphism) を少ないデータ量で容易に発見することができる。
また、 本発明によれば、 ヌクレオチドの配列情報、 又はアミノ酸の配列情報 を少ないデータ量でユーザに供給できるビジネスモデルを提供することができ る。 この場合に、 更に数学的な要約値、 又はシンドローム情報を用いることに よって、 ユーザが提供された配列情報と情報供給者が保持している配列情報と の同一性の確認、 又は相違する部分の検出や復元を容易に行うことができる。 また、 本発明の要約値の計算方法によれば、 例えばヌクレオチドの配列を見
易くするための数値コードやスペースコードなど、 又はその配列の内容を説明 するためのコメント文などの所定コードを無視して、 必要な情報のみの要約値 を算出できるため、 その所定コードの内容が変化しても、 常に同一の要約値を 算出できる利点がある。 従って、 その要約値の計算方法は、 特にヌクレオチド やアミノ酸の配列情報の要約値を算出する場合に有効である。