(57)【要約】【課題】クラスタリング処理時間を大幅に削減可能なクラスタリングプログラムを提供すること。【解決手段】機能が未知のｃＤＮＡ末端配列と既知配列との相同性を計算する作業と、その計算結果に基づいて分類する作業と、を分離する。また、機能が未知のｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する場合に、まず、識別子（配列）毎に個別の配列番号を設定し、さらに、前記ｃＤＮＡ末端配列と、当該ｃＤＮＡ末端配列との相同性が高い既知配列と、をグループ化し、グループ毎に個別のクラスタ番号を設定する。そして、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を同一のクラスタメンバーとする処理を行う。ただし、特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）には当該特定のクラスタ番号に属する識別子のみでクラスタメンバーを形成する。【選択図】        図４
2005202697.tif 000002
【特許請求の範囲】
【請求項１】
複数の分類対象配列を相同性に基づいて分類するクラスタリングプログラムであって、
前記分類対象配列に含まれる複数の基準となる配列（基準配列）の識別子と、当該基準配列との相同性が高い配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記基準配列の識別子と、当該基準配列との相同性が高い配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成ステップと、
前記配列番号順データを第１の領域に記憶する配列番号順データ記憶ステップと、
前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成ステップと、
前記クラスタ番号順データを第２の領域に記憶するクラスタ番号順データ記憶ステップと、
前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定ステップと、
前記クラスタメンバーリストを第３の領域に記憶するクラスタメンバーリスト記憶ステップと、
をコンピュータに実行させることを特徴とするクラスタリングプログラム。
【請求項２】
機能が未知の複数のｃＤＮＡ末端配列を、それぞれ、既知配列との相同性計算の結果に基づいて分類するクラスタリングプログラムであって、
前記複数のｃＤＮＡ末端配列を構成する各ｃＤＮＡ末端配列の識別子と、前記相同性計算結果として得られる既知配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記ｃＤＮＡ末端配列の識別子と、当該ｃＤＮＡ末端配列との相同性が高い既知配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成ステップと、
前記配列番号順データを第１の領域に記憶する配列番号順データ記憶ステップと、
前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成ステップと、
前記クラスタ番号順データを第２の領域に記憶するクラスタ番号順データ記憶ステップと、
前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定ステップと、
前記クラスタメンバーリストを第３の領域に記憶するクラスタメンバーリスト記憶ステップと、
をコンピュータに実行させることを特徴とするクラスタリングプログラム。
【請求項３】
前記クラスタメンバー決定ステップでは、
前記クラスタ番号順データに基づいて、特定のクラスタ番号に属するすべての識別子を同一のクラスタメンバーとしてまとめ、さらに、前記配列番号順データを確認した結果、当該クラスタメンバーを構成する識別子が他のクラスタ番号にも属している場合には、前記クラスタ番号順データに基づいて、前記他のクラスタ番号に属するすべての識別子についても同一のクラスタメンバーとして加え、一方で、新たに加えられた識別子が、残りのどのクラスタ番号にも属していない状態になった段階でクラスタメンバーの追加処理を停止し、
以降、前記停止まで一連の処理を、全識別子の分類が完了するまで継続することを特徴とする請求項１または２に記載のクラスタリングプログラム。
【請求項４】
前記クラスタメンバー決定ステップでは、
特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）、当該特定のクラスタ番号に属する識別子のみでクラスタメンバーを形成することを特徴とする請求項１、２または３に記載のクラスタリングプログラム。
【請求項５】
複数の分類対象配列を相同性に基づいて分類するクラスタリング装置において、
前記分類対象配列に含まれる複数の基準となる配列（基準配列）の識別子と、当該基準配列との相同性が高い配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記基準配列の識別子と、当該基準配列との相同性が高い配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成手段と、
前記配列番号順データを記憶する第１の記憶手段と、
前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成手段と、
前記クラスタ番号順データを記憶する第２の記憶手段と、
前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定手段と、
前記クラスタメンバーリストを記憶する第３の記憶手段と、
を備えることを特徴とするクラスタリング装置。
【請求項６】
機能が未知の複数のｃＤＮＡ末端配列を、それぞれ、既知配列との相同性計算の結果に基づいて分類するクラスタリング装置において、
前記複数のｃＤＮＡ末端配列を構成する各ｃＤＮＡ末端配列の識別子と、前記相同性計算結果として得られる既知配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記ｃＤＮＡ末端配列の識別子と、当該ｃＤＮＡ末端配列との相同性が高い既知配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成手段と、
前記配列番号順データを記憶する第１の記憶手段と、
前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成手段と、
前記クラスタ番号順データを記憶する第２の記憶手段と、
前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定手段と、
前記クラスタメンバーリストを記憶する第３の記憶手段と、
を備えることを特徴とするクラスタリング装置。
【請求項７】
前記クラスタメンバー決定手段は、
前記クラスタ番号順データに基づいて、特定のクラスタ番号に属するすべての識別子を同一のクラスタメンバーとしてまとめ、さらに、前記配列番号順データを確認した結果、当該クラスタメンバーを構成する識別子が他のクラスタ番号にも属している場合には、前記クラスタ番号順データに基づいて、前記他のクラスタ番号に属するすべての識別子についても同一のクラスタメンバーとして加え、一方で、新たに加えられた識別子が、残りのどのクラスタ番号にも属していない状態になった段階でクラスタメンバーの追加処理を停止し、
以降、前記停止まで一連の処理を、全識別子の分類が完了するまで継続することを特徴とする請求項５または６に記載のクラスタリング装置。
【請求項８】
前記クラスタメンバー決定手段は、
特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）、当該特定のクラスタ番号に属する識別子のみでクラスタメンバーを形成することを特徴とする請求項５、６または７に記載のクラスタリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の配列を相同性の程度にしたがって分類するためのクラスタリングプログラムに関するものであり、詳細には、「single linkage clustering」アルゴリズムの高速化を実現可能なクラスタリングプログラムおよびクラスタリング装置に関するものである。
【背景技術】
【０００２】
たとえば、ｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する処理のことを「EST clustering」と呼ぶが、この「EST clustering」を実現するためのアルゴリズムの一部分として、一般に「single linkage clustering」アルゴリズムがよく用いられる。この「single linkage clustering」アルゴリズムは、たとえば、「SingleLinkageClusterer（ftp://ftp.tigr.org/pub/software/singleLinkageClusterer）」等により実現できる。
【０００３】
また、ｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する代表的なプログラムとして、「BLASTCLUST（ftp://ftp.ncbi.nih.gov/blast/executables/LATEST-BLAST）」がある（非特許文献１参照）。これは、塩基配列またはアミノ酸配列と既知配列との相同性を計算する作業と、その計算結果に基づいて分類する作業と、を同時に行うプログラムである。具体的にいうと、非特許文献１には、以下の内容が記載されている。この「BLASTCLUST」は、「BLAST」アルゴリズムによる相同性計算結果に基づいてアミノ酸配列のグループ分けを行うために、「single linkage clustering」を用いる。また、このプログラムは、各々がユニークな配列識別子をもつような複数個のタンパク配列からなる「FASTA」フォーマットファイルを入力とする。そして、このプログラムは、クラスタとしてまとめられた配列識別子ファイルを出力する。
【０００４】
また、上記「BLASTCLUST」は、「BLAST」から処理をはじめることもできるし、また一方で、クラッシュ時に備えてヒットリスト（queryID，hitID）が保存されているので、そのヒットリストを入力として与えることにより、「single linkage clustering」から処理をはじめることもできる。
【０００５】
【非特許文献１】NCBI News Fall/Winter 2000 "http://www.ncbi.nih.gov/Web/Newsltr/FallWinter2000/fall_winter2000.pdf"
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記「BLASTCLUST」は、機能が未知のｃＤＮＡ末端配列と既知配列との相同性を計算する作業と、その計算結果に基づいて分類する作業と、を同時に行う点で便利であるが、一方で、融通が利かない、すなわち、「single linkage clustering」の機能だけを利用したい場合であっても、そのような機能は提供されていない、という問題があった。
【０００７】
また、上記「single linkage clustering」アルゴリズムを実現するための１つの手段である「SingleLinkageClusterer」においては、たとえば、ヒットリスト内の配列同士を総当りで確認することにより、クラスタメンバーを作成している。しかしながら、この例では、上記のようにヒットリスト内の配列同士で総当りの確認処理を行う必要があるので、分類処理にかかる時間が増大する、という問題があった。
【０００８】
また、昨今は、ＰＣクラスタを用いて並列処理を行う「BLAST」専用機が一般に入手可能である。また、このような専用機を用いると、ヒットリスト作成までの処理の高速化を実現できる。しかしながら、「BLAST」以降の上記「single linkage clustering」アルゴリズムについては、ヒットリスト内の全配列同士を確認する処理があるため、処理の並列化が不可能であり、このような要因で、「single linkage clustering」アルゴリズムにかかる処理（クラスタリング処理）の高速化が非常に困難である、という問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、機能が未知のｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する場合において、「BLAST」と「single linkage clustering」とを分離し、さらに「single linkage clustering」にかかる処理時間を大幅に削減可能なクラスタリングプログラムおよびクラスタリング装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかるクラスタリングプログラムは、複数の分類対象配列を相同性に基づいて分類するクラスタリングプログラムであって、たとえば、前記分類対象配列に含まれる複数の基準となる配列（基準配列）の識別子と、当該基準配列との相同性が高い配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記基準配列の識別子と、当該基準配列との相同性が高い配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成ステップと、前記配列番号順データを第１の領域に記憶する配列番号順データ記憶ステップと、前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成ステップと、前記クラスタ番号順データを第２の領域に記憶するクラスタ番号順データ記憶ステップと、前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定ステップと、前記クラスタメンバーリストを第３の領域に記憶するクラスタメンバーリスト記憶ステップと、をコンピュータに実行させることを特徴とする。
【００１１】
また、本発明にかかるクラスタリングプログラムは、機能が未知の複数のｃＤＮＡ末端配列を、それぞれ、既知配列との相同性計算の結果に基づいて分類するクラスタリングプログラムであって、前記複数のｃＤＮＡ末端配列を構成する各ｃＤＮＡ末端配列の識別子と、前記相同性計算結果として得られる既知配列の識別子と、が対応付けられた状態で記述されたヒットリストを読み出し、当該ヒットリストに基づいて、前記ｃＤＮＡ末端配列の識別子と、当該ｃＤＮＡ末端配列との相同性が高い既知配列の識別子と、をグループ化し、グループ毎に個別のクラスタ番号を設定し、さらに、当該クラスタ番号が設定された識別子をソートし、識別子毎に個別の配列番号を設定し、その後、当該配列番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述した配列番号順データを生成する配列番号順データ生成ステップと、前記配列番号順データを第１の領域に記憶する配列番号順データ記憶ステップと、前記配列番号順データを読み出し、当該配列番号順データをクラスタ番号順にソートし、当該クラスタ番号順に、識別子とクラスタ番号と配列番号とを関連付けて記述したクラスタ番号順データを生成するクラスタ番号順データ生成ステップと、前記クラスタ番号順データを第２の領域に記憶するクラスタ番号順データ記憶ステップと、前記配列番号順データと前記クラスタ番号順データとを読み出し、これらのデータに基づいて、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子を、同一のクラスタメンバーとする処理を行い、当該クラスタメンバーを構成する識別子を記述したクラスタメンバーリストを生成するクラスタメンバー決定ステップと、前記クラスタメンバーリストを第３の領域に記憶するクラスタメンバーリスト記憶ステップと、をコンピュータに実行させることを特徴とする。
【００１２】
また、本発明にかかるクラスタリングプログラムにおいて、前記クラスタメンバー決定ステップでは、前記クラスタ番号順データに基づいて、特定のクラスタ番号に属するすべての識別子を同一のクラスタメンバーとしてまとめ、さらに、前記配列番号順データを確認した結果、当該クラスタメンバーを構成する識別子が他のクラスタ番号にも属している場合には、前記クラスタ番号順データに基づいて、前記他のクラスタ番号に属するすべての識別子についても同一のクラスタメンバーとして加え、一方で、新たに加えられた識別子が、残りのどのクラスタ番号にも属していない状態になった段階でクラスタメンバーの追加処理を停止し、以降、前記停止まで一連の処理を、全識別子の分類が完了するまで継続することを特徴とする。
【００１３】
また、本発明にかかるクラスタリングプログラムにおいて、前記クラスタメンバー決定ステップでは、特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）、当該特定のクラスタ番号に属する識別子のみでクラスタメンバーを形成することを特徴とする。
【発明の効果】
【００１４】
本発明にかかるクラスタリングプログラムにおいては、機能が未知のｃＤＮＡ末端配列と既知配列との相同性を計算する作業（「BLAST」）と、その計算結果に基づいて分類する作業（クラスタリング処理）と、を分離した形で実現する構成とした。また、本発明にかかるクラスタリングプログラムは、たとえば、機能が未知のｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する場合、まず、識別子毎に個別の配列番号を設定し、さらに、前記ｃＤＮＡ末端配列と、当該ｃＤＮＡ末端配列との相同性が高い既知配列と、をグループ化し、グループ毎に個別のクラスタ番号を設定する。そして、同一の配列番号を共有する複数のクラスタ番号に属するすべての配列で、１つのクラスタメンバーを形成することとした。これらにより、代表的なプログラムである「BLASTCLUST」を使用した場合と比較して、また、配列総当りでクラスタメンバーを生成する従来方式と比較して、大幅に「single linkage clustering」にかかる処理時間を低減でき、ひいては、「EST clustering」にかかる処理時間を大幅に低減できる、という効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかるクラスタリングプログラムおよびクラスタリング装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１６】
図１は、機能が未知のｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する（「EST clustering」に相当）ためのクラスタリング装置として動作し、本発明のクラスタリング処理を実現可能な一般的な計算機システムの構成を示す図である。なお、本実施例においては、一例として、ｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する場合について説明するが、分類の対象となる配列はｃＤＮＡ配列に限らず、たとえば、本実施例の処理をｃＤＮＡ以外の塩基配列やアミノ酸配列の分類に適用することとしてもよい。また、分類の対象となる配列は、必ずしも機能が未知の配列である必要はない。
【００１７】
この計算機システムは、たとえば、ＣＰＵを含む制御ユニット１０１と、メモリユニット１０２と、表示ユニット１０３と、入力ユニット１０４と、ＣＤ−ＲＯＭドライブユニット１０５（ＤＶＤドライブユニット，ＦＤドライブユニットであってもよい）と、ディスクユニット１０６と、外部Ｉ／Ｆユニット１０７と、を備え、これらの各ユニットは、それぞれシステムバスＡを介して接続されている。
【００１８】
図１において、制御ユニット１０１は、本発明のクラスタリングプログラムを実行する。メモリユニット１０２は、ＲＡＭ，ＲＯＭ等の各種メモリを含み、制御ユニット１０１が実行すべきプログラム，処理の過程で得られた必要なデータ等を記憶する。表示ユニット１０３は、ＣＲＴやＬＣＤ（液晶表示パネル）等で構成され、計算機システムの使用者に対して各種画面を表示する。入力ユニット１０４は、キーボード，マウス等で構成され、計算機システムの使用者が、各種情報の入力を行うために使用する。また、図示のＣＤ−ＲＯＭ２００には、本発明のクラスタリング処理を記述したプログラム（クラスタリングプログラム）が格納されている。
【００１９】
ここで、上記本発明のクラスタリングプログラムが実行可能な状態になるまでの上記計算機システムの動作例について説明する。まず、上記のように構成される計算機システムには、ＣＤ−ＲＯＭドライブユニット１０５にセットされたＣＤ−ＲＯＭ２００から、クラスタリングプログラムがディスクユニット１０６にインストールされる。そして、計算機システムの起動時（専用機の場合）またはプログラムの実行時に、ディスクユニット１０６から読み出されたプログラムがメモリユニット１０２に格納される。この状態で、制御ユニット１０１（ＣＰＵ）は、メモリユニット１０２に格納されたプログラムにしたがって、本発明のクラスタリング処理を実行する。
【００２０】
なお、本発明においては、ＣＤ−ＲＯＭ２００にて本発明のクラスタリング処理を記述したプログラムを提供しているが、このプログラムの記録媒体は、これに限定されることなく、システムを構成するコンピュータに応じて、たとえば、フロッピー（登録商標）ディスク等の磁気ディスク，光磁気ディスク，磁気テープ等の他の記録媒体を用いることも可能である。また、電子メール，インターネット等の伝送媒体により提供されたプログラムを用いることとしてもよい。
【００２１】
つぎに、上記「EST clustering」処理の概要、および上記「EST clustering」処理における本発明のクラスタリングプログラムの位置付け、について説明する。図２は、上記「EST clustering」の処理手順を示すフローチャートである。
【００２２】
まず、計算機システムの制御ユニット１０１は、ユーザの指示により、「FASTA」形式のｃＤＮＡ末端配列を記載したファイル、すなわち、query.fastaファイルを生成し、そのquery.fastaファイルをメモリユニット１０２の所定領域に格納する（ステップＳ１）。
【００２３】
つぎに、制御ユニット１０１は、ユーザの指示により、NCBI等の公的機関が既に公開している既知配列と、上記query.fastaファイルから読み出したｃＤＮＡ末端配列と、をまとめたファイル、すなわち、db.fastaファイルを生成し、そのdb.fastaファイルをメモリユニット１０２の所定領域に格納する（ステップＳ２）。
【００２４】
つぎに、制御ユニット１０１は、上記query.fastaをquery側とし、上記db.fastaをデータベース側として、「BLAST」を行う（ステップＳ３）。そして、上記「BLAST」結果として得られるヒットリスト（ヒットリストは「queryIDとhitIDとの組み合わせがわかるようなリスト，表，データであれば、その形式はどのようなものでもかまわない。）をメモリユニット１０２の所定領域に格納する（ステップＳ４）。図３−１，図３−２，図３−３は、「BLAST」結果として得られるアライメントの一例を示す図である。なお、本実施例においては、相同性検索の手段として「BLAST」を採用するが、これに限らず、たとえば、既知の検索法である「dynamic programing法」や「FASTA法」を用いることとしてもよい。
【００２５】
最後に、制御ユニット１０１は、上記ヒットリストに基づいて、後述する本発明のクラスタリングプログラム（「single linkage clustering」を含む）を実行する（ステップＳ５）。そして、その結果であるクラスタメンバーリストをメモリユニット１０２の所定領域に格納する（ステップＳ６）。以下では、本発明の特徴的な処理であるステップＳ５およびステップＳ６の処理について詳細に説明する。
【００２６】
つぎに、本発明のクラスタリングプログラム（上記ステップＳ５およびステップＳ６に相当）を図面に基づいて詳細に説明する。図４は、本発明のクラスタリングプログラムによる処理を示すフローチャートである。
【００２７】
なお、ここでは、機能が未知のｃＤＮＡ末端配列と既知配列の相同性を計算する「BLAST」の結果に基づいて、既にヒットリスト（queryID，hitID）が生成されていることを前提とし、そのヒットリストが既にメモリユニット１０２の所定領域に格納されていることとする。図５は、上記ヒットリストの一例を示す図である。このヒットリストは、機能が未知のｃＤＮＡ末端配列の識別子を表すqueryID（図示の000001_queryID_1（配列番号１参照）,000002_queryID,…に相当）と、上記相同性計算結果（上記「BLAST」結果に相当）として得られる既知配列の識別子を表すhitID（図示のAB000096（配列番号２参照），AK004551，AK004675等に相当）と、の組み合わせを記述したデータである。ただし、ヒットリストは、queryIDとhitIDとの組み合わせがわかるようなリスト，表，データであれば、その形式はどのようなものでもかまわない。すなわち、「BLAST」結果そのものであっても、その結果をクラスタリング処理用にフォーマット変換したものであってもかまわない。また、ここでは、一例として、NCBIで公開されているデータベースを利用して「BLAST」を実行した場合について記載する。
【００２８】
まず、制御ユニット１０１では、上記ヒットリストをメモリユニット１０２から読み出し、そのヒットリストに基づいてqueryIDのみを記載したデータ（図６のlist_qid参照）と、hitIDのみを記載したデータ（図７のlist_hitid参照）を生成し、それらのデータをメモリユニット１０２の所定領域に個別に格納する（ステップＳ１１）。
【００２９】
つぎに、制御ユニット１０１では、上記ヒットリストおよびlist_qid，list_hitidをメモリユニット１０２から読み出し、これらの情報を用いて、識別子（上記queryID，hitIDに相当）と、配列（以下、単に配列と記載する場合は、上記ｃＤＮＡ末端配列および既知配列を表す）を分類するためのクラスタ番号と、を関連付ける。すなわち、最初のqueryIDにクラスタ番号”１”を付与し、以降、queryIDが切り替わる度にクラスタ番号をインクリメントする。そして、上記関連付け後のデータをメモリユニット１０２の所定領域に格納する（ステップＳ１２）。図８は、識別子とクラスタ番号が関連付けられた状態のデータの一例を示す図である。ここでは、上記「BLAST」結果に基づいて相同性の高い配列同士を同一グループに分ける処理を行い、たとえば、000001_queryID，AB000096，AK004551，AK004675に対応するクラスタ番号を”１”とし、000002_queryID，AB000121，BC030169に対応するクラスタ番号を”２”とし、以降、000003_queryIDと 各hitIDの組，000004_queryIDと各hitIDの組，000005_queryIDと各hitIDの組，…に対応するクラスタ番号を順に”３”，”４”，”５”…とする（インクリメントする）。なお、この段階では、配列番号をすべて”−１”と記載しておく。
【００３０】
つぎに、制御ユニット１０１では、上記識別子とクラスタ番号が関連付けられた状態のデータをメモリユニット１０２から読み出し、このデータを識別子でソートする。そして、ソート後のデータをメモリユニット１０２の所定領域に格納する（ステップＳ１３）。図９は、ソート後のデータの一例を示す図である。
【００３１】
つぎに、制御ユニット１０１では、上記ソート後のデータをメモリユニット１０２から読み出し、そのデータの配列番号欄に、識別子毎に個別の配列番号を設定し、識別子と配列番号の対応付けを行う。ここでは、各識別子に対応する配列番号を、上記ソート後の順に”０”，”１”，”２”，…と設定し、配列番号設定後のデータをcluster_1としてメモリユニット１０２の所定領域に格納する（ステップＳ１４）。このとき、クラスタ番号と配列番号が同一であるレコード（行）がある場合は、そのレコードを削除する。なお、このような同一レコードの重複については、予めヒットリストから削除しておくこととしてもよい。図１０は、cluster_1の一例を示す図である。図示の複数個の同一識別子は、その識別子が複数のクラスタ番号に重複して関連付けられていることを表している。
【００３２】
つぎに、制御ユニット１０１では、上記cluster_1をメモリユニット１０２から読み出し、そのcluster_1をクラスタ番号でソートし、ソート後のデータをcluster_2としてメモリユニット１０２の所定領域に格納する（ステップＳ１６）。このとき、クラスタ番号と配列番号が同一であるレコード（行）がある場合は、そのレコードを削除する。図１１は、cluster_2の一例を示す図である。
【００３３】
つぎに、制御ユニット１０１では、上記cluster_1およびcluster_2を用いて、「single linkage clustering」を実行する（ステップＳ１７）。ここで、本実施例の「single linkage clustering」の手順を具体的に説明する。図１２は、本実施例の「single linkage clustering」手順の具体例を示す図である。なお、図１２は、本実施例の「single linkage clustering」を簡単に説明するための図であり、図示の配列番号とクラスタ番号の対応付けは上記図１０および図１１とは異なる。また、図示のクラスタ番号１，２，３，…は、cluster_2のクラスタ番号に対応し、図示の配列番号０，１，２，…は、cluster_1の配列番号に対応する。
【００３４】
たとえば、クラスタ番号”１”に属する識別子（配列）に対応する配列番号が”０”，”１”，”２”である場合、これらの識別子にて同一のクラスタメンバーを形成する。そして、たとえば、配列番号”２”に対応する識別子がクラスタ番号”４”にも属している場合には、クラスタ番号”４”に属するすべての識別子（配列番号”２”，”６”）についても上記と同一のクラスタメンバーとして加える。さらに、クラスタ番号”４”に属する識別子、たとえば、配列番号”６”に対応する識別子が他のクラスタ番号に属している場合には、そのクラスタ番号に属する識別子についても同一のクラスタメンバーとして加える。以降、新たに加えられる識別子が他のクラスタ番号に属していない状態になるまでクラスタメンバーの追加処理を継続する。たとえば、cluster_1を参照すると、配列番号”６”に対応する識別子がクラスタ番号”４”以外のクラスタ番号に属しているかどうかを直ちに判断できるので、上記「新たに加えられる識別子が他のクラスタ番号に属していない状態」を判定するのは容易である。
【００３５】
また、クラスタ番号”２”に属する識別子（配列）に対応する配列番号が”３”，”４”，”５”である場合には、これらの識別子にて上記とは異なるクラスタメンバーを形成する。そして、たとえば、配列番号”５”に対応する識別子がクラスタ番号”５”にも属している場合には、クラスタ番号”５”に属するすべての識別子（配列番号”５”，”８”）についても同一のクラスタメンバーとして加える。さらに、クラスタ番号”５”に属する識別子、たとえば、配列番号”８”に対応する識別子が他のクラスタ番号に属している場合には、そのクラスタ番号に属する識別子についても同一のクラスタメンバーとして加える。以降、新たに加えられる識別子が他のクラスタ番号に属していない状態になるまでクラスタメンバーの追加処理を継続する。なお、特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）には、当該特定のクラスタ番号の属する識別子のみでクラスタメンバーを形成する。
【００３６】
このようにして、全クラスタ番号について処理を行い、その結果をcluster_3としてメモリユニット１０２の所定領域に格納する（ステップＳ１７）。これにより、機能が未知のｃＤＮＡ末端配列を、既知配列を含むクラスタメンバーに帰属させることができる。図１３は、cluster_3の内容を説明するための概略図である。実際には、cluster_3は、下記のリスト形式で表現される。
cluster_3[1]＝｛0,119978,126329,126352,3,119978,…｝
cluster_3[2]＝｛1,119979,132190,4,119979,…｝
【００３７】
最後に、制御ユニット１０１では、上記cluster_3をメモリユニット１０２から読み出し、そのcluster_3に基づいてクラスタメンバーリストを生成し、そのリストをメモリユニット１０２の所定領域に格納する（ステップＳ１８）。図１４は、クラスタメンバーリストの一例を示す図である。
【００３８】
このように、本実施例においては、機能が未知のｃＤＮＡ末端配列と既知配列との相同性を計算する作業（「BLAST」）と、その計算結果に基づいて分類する作業（クラスタリング処理）と、を分離した形で実現する構成とした。
【００３９】
また、本実施例においては、機能が未知のｃＤＮＡ末端配列を、既知配列との相同性の程度にしたがって分類する場合、まず、識別子（配列）毎に個別の配列番号を設定し、さらに、前記ｃＤＮＡ末端配列と、当該ｃＤＮＡ末端配との相同性が高い既知配列と、をグループ化し、グループ毎に個別のクラスタ番号を設定する。そして、同一の配列番号を共有する複数のクラスタ番号に属するすべての識別子で、１つのクラスタメンバーを形成することとした。ただし、特定のクラスタ番号に属する識別子が他のどのクラスタ番号にも属していない場合（共有なし）には当該特定のクラスタ番号に属する識別子のみでクラスタメンバーを形成する。
【００４０】
これらにより、代表的なプログラムである「BLASTCLUST」を使用した場合と比較して、また、配列総当りでクラスタメンバーを生成する従来方式と比較して、大幅に「single linkage clustering」にかかる処理時間を低減でき、ひいては、「EST clustering」にかかる処理時間を大幅に低減できる。
【産業上の利用可能性】
【００４１】
以上のように、本発明にかかるクラスタリングプログラムは、塩基配列，アミノ酸配列を配列の相同性の程度に応じて短時間でグループ化できるため、機能未知遺伝子のアノテーション付与やＤＮＡチップの設計等に好適に利用できる。
【図面の簡単な説明】
【００４２】
【図１】本発明のクラスタリング処理を実現可能な一般的な計算機システムの構成を示す図である。
【図２】「EST clustering」の処理手順を示すフローチャートである。
【図３−１】「BLAST」結果として得られるアライメントの一例を示す図である。
【図３−２】「BLAST」結果として得られるアライメントの一例を示す図である。
【図３−３】「BLAST」結果として得られるアライメントの一例を示す図である。
【図４】本発明のクラスタリングプログラムによる処理を示すフローチャートである。
【図５】ヒットリストの一例を示す図である。
【図６】list_qidの一例を示す図である。
【図７】list_hitidの一例を示す図である。
【図８】識別子とクラスタ番号が関連付けられた状態のデータの一例を示す図である。
【図９】ソート後のデータの一例を示す図である。
【図１０】cluster_1の一例を示す図である。
【図１１】cluster_2の一例を示す図である。
【図１２】本実施例の「single linkage clustering」手順の具体例を示す図である。
【図１３】cluster_3の内容を説明するための概略図である。
【図１４】クラスタメンバーリストの一例を示す図である。
【符号の説明】
【００４３】
１０１  制御ユニット
１０２  メモリユニット
１０３  表示ユニット
１０４  入力ユニット
１０５  ＣＤ−ＲＯＭドライブユニット
１０６  ディスクユニット
１０７  外部Ｉ／Ｆユニット
２００  ＣＤ−ＲＯＭ
【配列表フリーテキスト】
【００４４】
配列番号１：000001_queryID
配列番号２：AB000096
【図１】
2005202697.tif 000003
【図２】
2005202697.tif 000004
【図３−１】
2005202697.tif 000005
【図３−２】
2005202697.tif 000006
【図３−３】
2005202697.tif 000007
【図４】
2005202697.tif 000008
【図５】
2005202697.tif 000009
【図６】
2005202697.tif 000010
【図７】
2005202697.tif 000011
【図８】
2005202697.tif 000012
【図９】
2005202697.tif 000013
【図１０】
2005202697.tif 000014
【図１１】
2005202697.tif 000015
【図１２】
2005202697.tif 000016
【図１３】
2005202697.tif 000017
【図１４】
2005202697.tif 000018
【配列表】
2005202697000001.app