説明

大規模化学構造データベースから高速に化学構造を検索するシステム及び方法

【課題】高速かつ安価な化学構造検索手法を開発すること。
【解決手段】コンピュータに入力された化合物の化学構造を、原子に対応するノードと、原子間の結合に対応するエッジからなる木構造として表現し、ノードの1つからルートノードを選択し、該ルートノードから深さ優先探索により経路決定を行い、該決定された経路に従い該化合物の化学構造を文字列化する手段と、
該木構造を基に、該化合物を構成する全ての部分構造を文字列化する手段と、
得られた化合物の化学構造の文字列化表現及び化合物の部分構造の文字列化表現を、該化合物を識別するユニークなIDと共に、化学構造データベースとして記録保存するための記憶媒体と
を備える、所定の部分構造を有する化合物を検索するための化学構造検索システム、ならびに、該システムを用いる化学構造の検索方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模な化学構造データベースから高速に化学構造を検索するシステム及び方法に関する。
【背景技術】
【0002】
化学構造データベースは、現代の化学・創薬研究において欠くことのできない重要なツールとなっているばかりでなく、特許情報や試薬管理などにおいても必要不可欠なツールとなっている。例えば、Chemical Abstracts Systemに対する化学構造検索では、SciFinder[http://www.jaici.or.jp/sci/SCHOLAR/index.html]が、企業内データベースに対する化学構造検索では、ISIS[http://www.mdli.com/]などが広く利用されている。
【0003】
化学構造検索アルゴリズムの開発は、1960年以来、多くの科学者が徹底的な研究を行ってきた。部分構造検索は、指定したクエリー構造が、与えられた標的構造の中に含まれているかどうかを判定する作業である。グラフ理論の用語を用いれば、部分構造検索はクエリーグラフ(G)が、標的グラフ(G)の部分グラフと同形であるかどうかを調べる作業であり、GとGの部分グラフ間の同形を探すことは、NP完全問題であることが知られている[非特許文献1]。したがって、一般的に、同形をすばやく判定することは非常に困難な作業であるが、多くの部分構造検索手法は、バックトラッキング法を効率的に利用して、この問題を解決している[非特許文献2]。
【0004】
しかしながら、50,000以上の化学構造データベースから化学構造検索を実施するには、バックトラッキング法だけでは、多くの検索時間(数十秒〜)を必要とし、実用的ではない。そこで、バックトラッキング法を行う前に、明らかに同形ではないグラフ(化学構造)を高速に除去する“スクリーニング”と呼ばれる手法が開発された。
通常、スクリーニング手法は、化学構造をビット文字列で表現する。各ビットは、任意のフラグメント(ベンゼン環、アミド基など)を意味し、1は、そのフラグメントが化学構造中に存在することを、0は存在しないことを示す。化学構造データベース中の標的構造は、事前にこのビット文字列を生成させ、データベースに保持しておく、クエリー構造のビット文字列は、検索時に生成させる。次に、クエリー構造のビット文字列と標的構造のビット文字列を順次比較し、クエリー構造のビット文字列中に存在する少なくとも1つの1の立ったビットが標的構造のビット文字列中に存在しなければ、同形の可能性はないとして除去される。この計算は、ビット演算子(AND、OR、XOR)を用いて計算できるので、非常に高速に処理できる[非特許文献3]。一般的に、ビット文字列を用いたスクリーニング手法、及びその改良型を用いることで、全体として10倍〜20倍の高速化が実現されるため、現在、多くの構造検索システムで利用されている。
【0005】
通常、データベースに対する検索の高速化は、インデックス(本の索引に相当する)を用いて実現されている。インデックスは、数値や文字列を対象としているため、ビット文字列同士の演算を必要とする既存の化学構造検索においては、有効に利用することができない。したがって、化学構造検索の多くは、データベースの最初から最後まで順次、ビット演算を繰り返す必要があり、高速化のもっとも大きなボトルネックとなっている。
【0006】
一方、近年、大規模データベースに対する検索システムとして、もっとも利用されているものは、GoogleやYahoo!の検索エンジンに代表される“大量の文書の中から特定の文字列を含む文書を検索する”全文検索システムである。全文検索システムの検索速度の速さは、検索エンジンを利用する誰しもが納得するレベルであり、自明である。通常、全文検索システムでは、形態素解析[非特許文献4]やN−gram法[非特許文献5]を用いて文書を単語に分解し、次に、この単語を転置インデックス法などでインデックス化する。この作業により、どの単語がどの文書内に存在するかを高速に検索可能としている。
【非特許文献1】M. Garey, D.Johnson, Computers and Intractability; A Guide to the Theory of NP−Completeness: W.H. Freeman, New York, 1979.
【非特許文献2】J. Xu, J. Chem. Inf. Comput.Sci. 1996, 36, 25−34.
【非特許文献3】M.F. Lynch, Chemical Information Systems, J.E. Ash, E. Hyde eds., Ellis Horwood, Chichester, 1985, 88−93.
【非特許文献4】久光徹、新田義彦、「日本語形態素解析における効率的な動詞活用処理」 情報処理学会研究会報告、94−NL−103, 1994年9月, 1−7.
【非特許文献5】踊堂憲道、伊藤克亘、鹿野清宏、中村哲、「N−gramモデルのエントロピーに基づくパラメータ削減に関する検討」 情報処理学会論文誌 2001年2月 Vol.42 No.2, 327−333
【発明の開示】
【発明が解決しようとする課題】
【0007】
化学構造検索において、複数ユーザーによるWeb経由での同時アクセス要求及びデータベースに登録されている化合物の数は、年々増加(肥大化)傾向にあり、これまで以上の高速な化学構造検索手法が求められている。さらに、データベース自体においても商用の高価なデータベースに依存せず、かつスーパーコンピュータなど特殊なハードウェアを利用せずとも、高速化を実現可能とする検索手法の開発は、いわゆる「チープ革命」の恩恵(コンピュータの急激な高性能化と低価格化、及びオープンソースとして提供される高機能なフリーソフトウェアの出現により、安価に高機能なアプリケーションを開発できるようになったこと。「チープ革命」の詳細は、梅田望夫著「ウェブ進化」ちくま新書を参照。)をダイレクトに受けることができ、コストパフォーマンスの圧倒的に高い化学構造検索システムの開発を可能とする。
以上のことから、高速かつ安価な化学構造検索手法の開発は、大規模データベースに対する複数ユーザーの同時アクセス要求を満たすばかりでなく、これまで未開拓であった化学構造検索を利用したWebアプリケーションシステムの提供を可能にすると期待されている。
【課題を解決するための手段】
【0008】
上記課題に鑑み、鋭意検討を重ねた結果、化学構造を“文書”とし、その部分構造を“単語”として表現することができれば、既存の全文検索システムをそのまま利用することができ、GoogleやYahoo!レベルの高速な検索システムが化学構造検索においても実現できることを見出し、化学構造検索における“スクリーニング”を全文検索で実現可能とするITMChemString(ITCS)法を開発した。
本発明の要旨は以下のとおりである。
〔1〕 コンピュータに入力された化合物の化学構造を、原子に対応するノードと、原子間の結合に対応するエッジからなる木構造として表現し、ノードの1つからルートノードを選択し、該ルートノードから深さ優先探索により経路決定を行い、該決定された経路に従い該化合物の化学構造を文字列化する手段と、
該木構造を基に、該化合物を構成する全ての部分構造を文字列化する手段と、
得られた化合物の化学構造の文字列化表現及び化合物の部分構造の文字列化表現を、該化合物を識別するユニークなIDと共に、化学構造データベースとして記録保存するための記憶媒体と
を備える、所定の部分構造を有する化合物を検索するための化学構造検索システム。
〔2〕 1)コンピュータに入力された化合物の化学構造を、原子に対応するノードと、原子間の結合に対応するエッジからなる木構造として表現し、ノードの1つからルートノードを選択し、該ルートノードから深さ優先探索により経路決定を行い、該決定された経路に従い該化合物の化学構造を文字列化すること、及び、2)該木構造を基に、該化合物を構成する全ての部分構造を文字列化すること、によって得られた該化合物の部分構造の文字列化表現をクエリーとして上記〔1〕に記載の化学構造検索システムに対して検索要求を投げる工程と、
該化学構造検索システムに含まれる化学構造データベースを利用して、コンピュータが投げかけられた検索要求を全文検索処理し、検索結果として化合物を識別するユニークなIDとそれに該当する標的化合物の化学構造の文字列化表現を返す工程と、
得られた該IDと標的化合物の化学構造の文字列化表現を化学構造検索処理して、検索結果として該部分構造を有する化合物のIDを提示する工程と
を含む、所定の部分構造を有する化合物を検索する方法。
【発明の効果】
【0009】
本発明の化学構造検索では、化学構造を“文書”とし、その部分構造を“単語”として表現しているので、既存の全文検索システムをそのまま利用することができ、好適には、GoogleやYahoo!レベルの高速な検索システムを化学構造検索においても実現できる。
【発明を実施するための最良の形態】
【0010】
本明細書において化学構造検索は、化合物の部分構造検索及び完全構造検索を意味する。
【0011】
本発明は、上述のような所定の部分構造を有する化合物を検索するための化学構造検索システムを提供する。上記各手段によって行われる処理の詳細は、後述するとおりである。
【0012】
それぞれの文字列化に用いる手段は、手動であっても、コンピュータなどの情報処理手段を用いてもよいが、処理の効率化を考慮すると、コンピュータなどの情報処理手段を用い、最初に化合物の化学構造の入力を行えばその後の処理はコンピュータによって自動で行われるようなプログラム又はシステムを構築するのが好ましい。
【0013】
化学構造データベースを記録保存するための記憶媒体としては、化合物の化学構造の文字列化表現、及び、化合物の部分構造の文字列化表現を、該化合物を識別するユニークなIDと共にデータベース化して記録保存することができるものであれば、いかなる記憶媒体であってもよい。例えば、そのような記憶媒体としては、コンピュータ内外に配置されたハードディスク、不揮発性メモリ、磁気ディスク、光ディスク、磁気テープなどが挙げられる。
【0014】
化学構造データベースには、化合物を識別するユニークなID、化合物の化学構造の文字列化表現、及び、化合物の部分構造の文字列化表現以外にも、該化合物に関するこれら以外の諸情報を、化合物を識別するユニークなIDに関連づけて記録保存させておいてもよい。そのような情報としては、融点、沸点、分子量、logP、分子表面積など化合物が持つ固有の物性や、反応性、構造及び反応経路情報などが挙げられる。
【0015】
本発明のITCS法の概要を図1に示す。
【0016】
ITCS法において、標的化合物は、まず「ITCS生成プロセス」(詳細は後述)により、ITCSが生成される。ITCSとは化合物の化学構造を示す文字列(通常の全文検索における文書に相当する)である。
次に、「ITCS WORD生成プロセス」(詳細は後述)により、ITCS WORDが生成される。ITCS WORDとは、化学構造を構成する全ての部分構造を列挙し、それらを文字列化したものである(通常の全文検索における単語に相当する)。
生成されたITCSとITCS WORDはIDとその他付加情報と共にデータベースに格納される。ここで格納される標的化合物数は1〜数千万化合物であり、PostgreSQL、MySQL、Oracleなどのリレーショナルデータベースが利用できる。
【0017】
クエリー化合物は、一般的な化学構造入力手段(例えば、汎用コンピュータ上で動く当該分野で慣用の化学構造描画ソフトウェア(例えば、ChemDraw、ISIS/Drawなど)から、sdf形式、mol2形式などの汎用の分子構造インターチェンジフォーマット形式で、入力され、標的化合物と同様にITCSとITCS WORDが生成される。
次に、クエリー化合物のITCS WORDをクエリーとして、データベースに検索要求を投げる。データベースにおいては、投げられた検索要求(ITCS WORD)に該当するデータを「全文検索プロセス」に対し、検索要求を出し、返答(ID)を得る。ここでの「全文検索プロセス」は、当業者に公知の手法であり、その手法は特に限定されず、全文検索に通常用いられているシステムを適宜利用することができる。例えば、データベース外部で利用するのであればNamazu、Rast、Estraierなどを利用することができ、データベース内部で利用するのであれば、PostgreSQLにおいてはTSearch2などを利用することができる。
「全文検索プロセス」により得られたIDとそれに該当するITCSをデータベースは、クエリーの返答として返す。
【0018】
ここまでのプロセスが“スクリーニング”である。
【0019】
最後に、スクリーニングにより得られたID + ITCSと、クエリー化合物のITCSを「化学構造検索プロセス」により構造検索を実施し、ヒット化合物のID及び諸情報(例えば、融点、沸点、分子量、logP、分子表面積など化合物が持つ固有の物性や、反応性、構造及び反応経路情報など)を提示する。
ここでの「化学構造検索プロセス」は公知のバックトラッキング法を利用することができる。「化学構造検索プロセス」はデータベースの外部で利用するだけではく、データベースの内部に組み込んで利用することもできる。
【0020】
以上のプロセスにより、大規模データベースから高速に化学構造を検索することが実現可能となる。
【0021】
「ITCS生成プロセス」
化学構造の文字列(線形)表記は、公知のものとしてWLN、SMILES、ROSDALなどが知られており、広く利用されている。本発明では、拡張性の観点から公知の手法を利用するのではなく、独自にITCS表記を開発するに至った。ITCS生成プロセスを図2に示す。
【0022】
ステップ1:
化学構造をsdf形式、mol2形式などの汎用の分子構造インターチェンジフォーマットで準備する。ここで、ヒュッケル則を用いて、芳香族としての性質をもつ結合の特定を行う。
【0023】
ステップ2:
化学構造を木構造として取り扱い、ノードは原子に、エッジは結合に対応させる。ルートノードは任意の原子から始めることができ、ノードは、原子種、原子ID番号、訪問番号を、エッジは結合次数を保持している。ここで、原子ID番号は、化学構造を作成する際に任意の割り振り方で各原子に番号を割り振ってもよいが、通常は、分子構造インターチェンジフォーマットを準備する際に用いるソフトウェアに依存して割り振られる。
【0024】
ステップ3:
ステップ2で作成した木のルートノードから、深さ優先探索によりルート決定を行う。「深さ優先探索」は公知のアルゴリズムである。この際、訪問するノードの順番(訪問番号)に従い、0から番号づけを行い、ノードに保持させる。
【0025】
ステップ4:
ステップ3で作成したルートに従いITCSを作成する。
ITCS化のルール:
・原子は原子名(C、N、Oなどの文字列)で表現する。
・結合は二重結合を‘d’、三重結合を‘t’、芳香族性の結合を‘a’、単結合は‘’(何もなし)で表現する。
・ルート上すでに訪問した原子は、原子名ではなく、訪問番号で表現する。この際、次に訪問するエッジの始まりのノードと現在訪問中のエッジの終わりのノードが異なれば、次のエッジの始まりの原子は‘<訪問番号>’で表現する。さらに、次のエッジの終わりの原子がすでに訪問されていれば、この原子は‘[訪問番号]’で表現する。例えば、図2のステップ3を参照して、現在訪問中のエッジがN(1)−C(2)とすると、次に訪問するエッジはN(1)−C(3)となる。この場合、現在訪問中の終わりのエッジはC(2)であり、次に訪問するエッジの始まりはN(1)となる。従って、同一ノードではないかつN(1)はすでに訪問されているノードなので<1>となる。
なお、[ ]を使うケースを、シクロヘキサンを例として以下に説明する。
【0026】
【化1】

【0027】
現在訪問中のエッジがC(4)−C(5)であり、次に訪問するエッジがC(0)−C(5)とすると、次のエッジの始まりと現在のエッジの終わりは異なりかつC(0)はすでに訪問しているので<0>となる。さらに次のエッジの終わりのノードC(5)もすでに訪問しているので、次のエッジは<0>[5]と表現される。
・最後に、‘/’(スラッシュ)を付加し、訪問番号の順序に従い原子ID番号を‘,’(コンマ)区切りで付加する。通常、化学構造を文字列化した場合、文字化後は、変換元になった化学構造ファイル上の原子ID番号を保持できない。そこで、本発明では、スラッシュ後にそれを付加することにより、原子ID番号の保持を可能としている。これにより、ITCSを用いた化学構造検索で一致した原子と変換元の化学構造ファイル上の原子を一致させることができ、一致した原子の強調表示などを変換元の化学構造ファイル上で行うことができる。
【0028】
「ITCS WORD生成プロセス」
本プロセスの目的は、任意の化学構造を構成する全ての部分構造を列挙し、文字列(通常の全文検索における「単語」に相当)化することである。ITCS WORD生成プロセスの主となる部分を図3及び4に示す。
【0029】
ステップ1:
ITCS生成プロセスで作成した木を、“基本木”とする。
【0030】
ステップ2:
基本木を基に、下記“成長木”構築ルールに基づき“成長木”を構築する。
“成長木”構築ルールに基づき木がこれ以上成長しなくなるまで実施する。ただし、木の深さは事前に設定する(n_depthとして設定する)必要があり、1〜化学構造を構成する結合の数、まで設定できる。現在のコンピュータ資源の性能を考慮し、通常は、4〜7として設定する。
“成長木”構築ルール
・ベースノードの選択は、成長木に対する深さ優先探索の順序に基づき行い、初期のベースノードは、“基本木”上のルートノードとする。
・ベースノードへのノードとエッジの付加は、ベースノードに対応する“基本木”上のノードとその子ノード及びそれらが属するエッジ、さらに、祖先ノードが存在する場合には、祖先ノードとその子ノード及びそれらが属するエッジをベースノードにコピーすることにより実施する。ただし、祖先ノードとその子ノード及びそれらが属するエッジが、すでに成長木上のルートノードからベースノードまでの経路上に存在していれば、付加しない。ここで祖先ノードとは、ベースノードからルートノードまでの経路上に位置するノードを示す。
【0031】
ステップ3:
ステップ2で構築された成長木のルートノードから末端ノードまでの全ての経路を列挙する。そして、各々の経路をルートノードから、深さ1,2,…,n_depth−1とそれぞれ切断することにより、部分構造に対応する経路が生成される。
ここで生成された全ての経路は、「ITCS生成プロセス」と同じアルゴリズムを用いて文字列化される。ここで生成された文字列をITCS WORDと呼ぶ。
【0032】
ステップ4:
ステップ1〜ステップ3の処理は、化合構造を構成する全ての原子をルートノードとして、繰り返し実施される。この処理により、化学構造中のn_depth長までで構成される全ての部分構造をITCS WORDとして文字列化することができる。
【0033】
ステップ5:
ある1つの化学構造は、複数のITCS WORDによる表現が可能となるため、それらITCS WORDを辞書式にアルファベット順に並べ最も大きいものを代表として用いる。例えば、CCNとNCCは同じ構造を示すが、これを辞書式にアルファベット順に並べるとNCC > CCNとなり、その代表はNCCとなる。これにより1つの構造は1つのITCS WORDに対応することになる。
【0034】
ステップ6:
ある1つの化学構造の中に、同じ部分構造(ITCS WORD)が複数存在するとき、そのITCS WORDの後ろに数値を付加する。ただし、数値の最大値は6とし、1は省略する。例えば、SCO<1>Nが3つ存在するとき生成されるITCS WORDは、SCO<1>N、SCO<1>N2、SCO<1>N3、となる。さらに設定したn_depth長では表現できない特殊な部分構造もこのステップで外部ITCS WORDとして付加することができる。例えば、CCCCCCCCCCCCCCやCCNCCNCCNCCNCCNCCNなど連続した炭素の繋がりや、連続した繰り返し構造など。
ただし、クエリーとして用いるITCS WORDはn_depth長のITCS WORDと外部ITCS WORDのみで十分である(それ以下の部分構造は、n_depth長のITCS WORD内に含まれているため)。
化学構造を構成する結合の数にn_depthを設定した場合、原理的には、全ての部分構造をITCS WORDとして文字列化することができるため、スクリーニングのみで化学構造検索が完結する。したがって、バックトラック法などの既存の化学構造検索を利用しなくてもよくなる。しかしながら、n_depthを大きくすればするほど、ITCS WORDが指数関数的に増加するため、現在のコンピュータ資源の性能を考慮すると、現状では4〜7が適切である。しかしながら、コンピュータ性能が向上すれば、n_depthをより大きくすることが可能である。
【実施例】
【0035】
化学構造検索事例
化学構造の検索事例として、以下に示すクエリー構造を用いて実施した。
【0036】
【化2】

【0037】
クエリー構造のITCSとITCS WORDを以下に示す。
ITCS:
CNCCNCC<4>C<1>[6]<0>CaCaCC<10>aCaCaC<8>a[14]<0>dO/1,2,7,10,4,9,8,13,3,6,11,16,15,14,12,5
ITCS WORD:
“CaCaCaCaCaCa[0] NCCaCaC NCCaC<2>aC NCCaC<0>C NCC<0>CC NCC<0>C<0>C NCCNC CaCaCC<0>C CaCaCaCaC CaCaCaC<2>C CaCaCaCC OdCNCC OdCNC<2>C OdCNC<1>C OdCN<1>CaC OdCCaCaC OdCCaC<2>aC NCCaCaC2 NCCaC<0>C4 NCC<0>CC4 NCC<0>C<0>C5 NCCNC6 CaCaCaCaC6 CaCaCaC<2>C4 CaCaCaCC4 OdCNCC2 OdCNC<1>C2 OdCN<1>CaC2 OdCCaCaC2”
【0038】
ITCS法を用いた場合と用いない場合において、データベースに含まれる化合物のデータ数と検索時間にどの程度の差が生じるかを調べることによりITCS法の有効性を検証した。ここで、ITCS法を用いない場合というのは、バックトラック法による化学構造検索のみでの検索を示す。結果を以下の表及び図5に示す。また、ヒットした化合物の例も以下に示す。
【0039】
【表1】

【0040】
【化3】

【0041】
これらの結果から、ITCS法を用いた場合、バックトラック法のみと比較して100倍以上(保存データ数100000の場合)の検索速度の向上が見られた。従って、本発明によれば、大規模な化学構造データベースから所定の部分構造を有する化合物を高速に検索することが可能となる。
【図面の簡単な説明】
【0042】
【図1】本発明の化学構造検索方法に基づくシステムの概要図である。
【図2】ITCS生成プロセスを説明する図である。
【図3】ITCS WORD生成プロセスを説明する図である。
【図4】図3の続きである。
【図5】ITCS法を用いた場合と用いない場合において、データベースに含まれる化合物のデータ数と検索時間にどの程度の差が生じるかを調べた結果を示すグラフである。

【特許請求の範囲】
【請求項1】
コンピュータに入力された化合物の化学構造を、原子に対応するノードと、原子間の結合に対応するエッジからなる木構造として表現し、ノードの1つからルートノードを選択し、該ルートノードから深さ優先探索により経路決定を行い、該決定された経路に従い該化合物の化学構造を文字列化する手段と、
該木構造を基に、該化合物を構成する全ての部分構造を文字列化する手段と、
得られた化合物の化学構造の文字列化表現及び化合物の部分構造の文字列化表現を、該化合物を識別するユニークなIDと共に、化学構造データベースとして記録保存するための記憶媒体と
を備える、所定の部分構造を有する化合物を検索するための化学構造検索システム。
【請求項2】
1)コンピュータに入力された化合物の化学構造を、原子に対応するノードと、原子間の結合に対応するエッジからなる木構造として表現し、ノードの1つからルートノードを選択し、該ルートノードから深さ優先探索により経路決定を行い、該決定された経路に従い該化合物の化学構造を文字列化すること、及び、2)該木構造を基に、該化合物を構成する全ての部分構造を文字列化すること、によって得られた該化合物の部分構造の文字列化表現をクエリーとして請求項1に記載の化学構造検索システムに対して検索要求を投げる工程と、
該化学構造検索システムに含まれる化学構造データベースを利用して、コンピュータが投げかけられた検索要求を全文検索処理し、検索結果として化合物を識別するユニークなIDとそれに該当する標的化合物の化学構造の文字列化表現を返す工程と、
得られた該IDと標的化合物の化学構造の文字列化表現を化学構造検索処理して、検索結果として該部分構造を有する化合物のIDを提示する工程と
を含む、所定の部分構造を有する化合物を検索する方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate