(57)【特許請求の範囲】
【請求項１】
（ａ）構造推定対象となる有機化合物に対する二次元ＮＭＲスペクトル測定で得られた二次元プロトンＮＭＲ情報を入力するステップと、
（ｂ）有機化合物の構造のうち、プロトンの結合した炭素原子が１原子以上つらなる部分を基幹部分、基幹部分以外の部分を非基幹部分と呼ぶとき、有機化合物に含まれる基幹部分と当該基幹部分に隣接する非基幹部分とから構成され、且つ、該非基幹部分中の原子が前記基幹部分以外の基幹部分中のプロトンの結合した炭素原子と結合している場合には当該プロトンの結合した炭素原子を疑似原子として含む部分構造と、二次元プロトンＮＭＲ情報との相関関係を蓄積した知識ベースに蓄積された部分構造のそれぞれについて、その二次元プロトンＮＭＲ情報と前記入力された二次元プロトンＮＭＲ情報とを照合し、前記構造推定対象となる有機化合物に含まれる可能性のある部分構造を推定するステップとを含むことを特徴とする有機化合物の構造推定方法。
【請求項２】
前記知識ベース中の二次元プロトンＮＭＲ情報および前記入力された二次元プロトンＮＭＲ情報は、１Ｈ−ＮＭＲスペクトルにおける各ピークの化学シフト値、各ピークのプロトン数、及び存在する場合にはクロスピーク情報を含む請求項１記載の有機化合物の構造推定方法。
【請求項３】
前記知識ベースは、有機化合物中の同じ芳香族環に属する基幹部分を持つ複数の部分構造は一つの部分構造として蓄積する請求項２記載の有機化合物の構造推定方法。
【請求項４】
前記ステップｂは、
（ｂ−１）前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報における各ピークの化学シフト値及び各ピークのプロトン数が前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかを調べるステップと、
（ｂ−２）前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報における各クロスピークが前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかを調べるステップとを含む請求項２記載の有機化合物の構造推定方法。
【請求項５】
前記ステップｂ−１では、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるピークについては、マッチするピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でもマッチしたものと判定する請求項４記載の有機化合物の構造推定方法。
【請求項６】
前記ステップｂ−２では、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるクロスピークおよびジェミナルプロトンにかかるクロスピークについては、マッチするクロスピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でもマッチしたものと判定する請求項４記載の有機化合物の構造推定方法。
【請求項７】
前記ステップｂ−２では、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるクロスピークを構成するピークが、前記入力された二次元プロトンＮＭＲ情報における同じプロトン数のピークにマッチする場合、部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピークのみが前記入力された二次元プロトンＮＭＲ情報に存在するか否かを検査する請求項４記載の有機化合物の構造推定方法。
【請求項８】
前記ステップｂ−２では、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるクロスピークを構成するピークが、前記入力された二次元プロトンＮＭＲ情報におけるプロトン数のより多いピークにマッチする場合、部分構造の当該ピークとクロスピークを成すピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でも、および部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピーク以外のピークが前記入力された二次元プロトンＮＭＲ情報に存在していても、マッチすると判断する請求項４記載の有機化合物の構造推定方法。
【請求項９】
前記ステップｂは更に、
（ｂ−３）前記構造推定対象となる有機化合物に含まれる可能性のある部分構造毎に、その部分構造の二次元プロトンＮＭＲ情報における各ピークのプロトン数と前記入力された二次元プロトンＮＭＲ情報におけるマッチしたピークのプロトン数とから、当該部分構造が前記構造推定対象となる有機化合物に含まれる可能性のある個数を求めるステップを含む請求項４記載の有機化合物の構造推定方法。
【請求項１０】
（ｃ）前記ステップｂによって推定された部分構造から前記構造推定対象となる有機化合物の候補構造を組み立てるステップを更に含む請求項１または２記載の有機化合物の構造推定方法。
【請求項１１】
前記ステップｃは、
（ｃ−１）前記ステップｂによって推定された部分構造から全体構造を組み立てる際の出発点となる部分構造を選定するステップと、
（ｃ−２）該選定された部分構造を出発点として前記入力された二次元プロトンＮＭＲ情報と矛盾の無い候補構造を組み立てるステップとを含む請求項１０記載の有機化合物の構造推定方法。
【請求項１２】
前記ステップｃ−１では、前記ステップｂによって推定された部分構造の全てを、全体構造を組み立てる際の出発点となる部分構造に選定する請求項１１記載の有機化合物の構造推定方法。
【請求項１３】
前記ステップｃ−１では、前記入力された二次元プロトンＮＭＲ情報中の各クロスピーク毎に、そのクロスピークにマッチするクロスピークを持つ部分構造の集合を生成し、その部分構造の集合の何れか１つを、全体構造を組み立てる際の出発点となる部分構造に選定する請求項１１記載の有機化合物の構造推定方法。
【請求項１４】
前記ステップｃ−１では、前記入力された二次元プロトンＮＭＲ情報中にクロスピークが存在しない場合、前記入力された二次元プロトンＮＭＲ情報中の各ピーク毎に、そのピークにマッチするピークを持つ部分構造の集合を生成し、その部分構造の集合の何れか１つを、全体構造を組み立てる際の出発点となる部分構造に選定する請求項１３記載の有機化合物の構造推定方法。
【請求項１５】
前記生成した部分構造の集合毎に、その部分構造の集合を全体構造を組み立てる際の出発点となる部分構造に選定した際の優劣をコンピューティング時間の面から評価し、最も評価の高い部分構造の集合を、全体構造を組み立てる際の出発点となる部分構造に選定する請求項１３または１４記載の有機化合物の構造推定方法。
【請求項１６】
前記ステップｃ−２は、
（ｃ−２−１）部分構造どうしを重ね合わせてより大きな部分構造を生成することにより、前記ステップｃ−１によって選定された部分構造毎に、その部分構造をルートとし、完全構造またはそれ以上大きくできない部分構造をリーフとする組み立ての樹を探索するステップと、
（ｃ−２−２）リーフの内、完全構造であって且つ前記入力された二次元プロトンＮＭＲ情報と矛盾の無い構造を１つの候補構造とするステップとを含む請求項１１記載の有機化合物の構造推定方法。
【請求項１７】
前記ステップｃ−２−１では、部分構造どうしの重ね合わせは、疑似原子を例外として、水素原子のない構造の部分でのみ行う請求項１６記載の有機化合物の構造推定方法。
【請求項１８】
前記ステップｃ−２−１では、一方の部分構造の何れか１つの非基幹部分の全原子及びその息子原子が、他方の部分構造の何れか１つの非基幹部分の全原子およびその息子原子にマッチするとき、この２つの部分構造は重ね合わせることができると判定する請求項１７記載の有機化合物の構造推定方法。
【請求項１９】
前記ステップｃ−２−１では、一方の部分構造中の疑似原子と他方の部分構造中の疑似原子またはプロトンの結合した炭素原子とを重ね合わせのスタート点として重ね合わせを試行する請求項１８記載の有機化合物の構造推定方法。
【請求項２０】
前記ステップｃ−２−１では、組み立ての樹のノードから、より大きな部分構造を生成するために当該ノードに部分構造を重ね合わせる処理を行う前に、当該部分構造の二次元プロトンＮＭＲ情報と当該ノードの二次元プロトンＮＭＲ情報とを統合した二次元プロトンＮＭＲ情報が前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかをチェックし、矛盾する場合には重ね合わせ処理を行わない請求項１６記載の有機化合物の構造推定方法。
【請求項２１】
前記ステップｃ−２−１では、深さ方向優先探索によって組み立ての樹を探索し、且つ、バックトラック時に直前に重ね合わせた部分構造を差し引くことにより直前のノードを動的に生成する請求項１６記載の有機化合物の構造推定方法。
【請求項２２】
前記ステップｃ−２−２では、各候補構造毎に当該完全構造がどの程度良い候補であるかを定量的に示すスコアを算出する請求項１６記載の有機化合物の構造推定方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は有機化合物の構造推定に関し、特に既知の有機化合物の部分構造と二次元プロトンＮＭＲ情報（ピークの化学シフトとＨ−ＨＣＯＳＹピークなどのクロスピークの情報）との相関関係を蓄積する知識ベースを使って、未知の有機化合物から測定された二次元プロトンＮＭＲ情報に基づいて未知有機化合物に含まれうる部分構造、更には完全構造を推定する方法に関する。
【０００２】
【従来の技術】
有機化合物の構造推定とは、未知の有機化合物のスペクトルを測定し、それを基にコンピュータによってその有機化合物の構造を解析し推定することを言い、一般的には既知の有機化合物の部分構造とスペクトルとの相関関係を蓄積してある知識ベースが利用される。
【０００３】
このような有機化合物の構造推定では種々のスペクトルが利用されるが、最近においては二次元ＮＭＲ（２Ｄ−ＮＭＲ；二次元核磁気共鳴スペクトル）が特に注目されている。その理由は、２Ｄ−ＮＭＲでは、そのシグナルとシグナルの結合（クロスピーク）情報から一次元ＮＭＲ（１Ｄ−ＮＭＲ）では容易に得られないような炭素骨格などの連結情報が得られること、パルス磁場勾配法（Ｐｕｌｓｅ  Ｆｉｅｌｄ  Ｇｒａｄｉｅｎｔ）という測定法によって、正確かつ短時間で、少量試料から２Ｄ−ＮＭＲスペクトルの測定が可能になったことなどによる。
【０００４】
図３４（ａ）に同図（ｂ）に示す有機化合物の２Ｄ−ＮＭＲスペクトルの一つであるＨ−ＨＣＯＳＹスペクトルを示す。縦軸と横軸とに記載されたａ，ｂ，ｃ，ｄ，ｅは同図（ｂ）の有機化合物を構成するノードＡ，Ｂ，Ｃ，Ｄ，Ｅに対応するシグナルであり、縦軸と横軸とで同じ内容になっている。これは一次元ＮＭＲのスペクトルデータに相当し、化学シフト値として扱われる。他方、縦軸と横軸のシグナルの交点に付した黒丸はシグナルの結合（クロスピーク）であり、Ｈ−Ｈ  ＣＯＳＹスペクトルに相当する。このうち、クロスピークＣ／ＡはノードＡとノードＣとが隣接していること、クロスピークＥ／ＢはノードＥとノードＢとが隣接していること、クロスピークＥ／ＤはノードＥとノードＤとが隣接していることを、それぞれ示している。
【０００５】
このような２Ｄ−ＮＭＲスペクトルを用いて有機化合物の構造を推定する従来の技術が、特開平１０−３１９１０５号公報に記載されている。この従来技術では、相関テーブルとリンクテーブルという２種類のテーブルから構成される知識ベースを使う。相関テーブルには、有機化合物の部分構造とその部分構造におけるフォーカスノードの１Ｈ−ＮＭＲスペクトルにおける化学シフト値とその部分構造のＩＤ番号とを含む相関情報が多数蓄積されている。またリンクテーブルには、相関テーブルに登録された部分構造のフォーカスノードのうち、相関テーブルに登録された他の１つ以上の部分構造のフォーカスノードとの間にＨ−Ｈ  ＣＯＳＹスペクトルの相関関係があるノード毎に、そのノードをフォーカスノードとする部分構造のＩＤ番号である主ＩＤ番号と前記相関関係のあるノードをフォーカスノードとする部分構造のＩＤ番号である副ＩＤ番号とを列挙したＩＤ番号列と、前記主ＩＤ番号に対応する部分構造のフォーカスノードの１Ｈ−ＮＭＲスペクトルにおける化学シフト値である主化学シフト値と前記副ＩＤ番号に対応する部分構造のフォーカスノードの１Ｈ−ＮＭＲスペクトルにおける化学シフト値である副化学シフト値とを列挙した化学シフト値列とを持つリンク情報が多数蓄積されている。
【０００６】
図３５は従来技術で使われる知識ベースの説明図である。今、図３５（ａ）に模式的に示す２つの有機化合物Ｘ，Ｙを考える。Ｘは、ノードａ，ｂ，ｃ，ｄ，ｅ，ｆがその順に連結された構造を有し、Ｙは、ノードａ，ｂ，ｃ，ｄ，ｇ，ｈがその順に連結された構造を有する。ａ〜ｈはＣＨ，ＣＨ2 等の有機化合物を構成するノードである。ここで、Ｘはノードｃ，ｄ間とノードｄ，ｅ間とに各々クロスピークを有し、ノードｃ，ｄ，ｅの化学シフト値はＫ１，Ｋ２，Ｋ３であるとする。また、Ｙはノードｃ，ｄ間にクロスピークを有し、ノードｃ，ｄの化学シフト値はＸと同じＫ１，Ｋ２であるとする。
【０００７】
従来技術では、各有機化合物Ｘ，Ｙについて、化学シフト値を有するノード（つまりプロトンの結合された重原子）をフォーカスノードとして、適当なサイズの部分構造を抽出する。部分構造のサイズとしては、その部分構造内にクロスピーク情報にかかる連結構造が含まれ得るように２スフィア〜６スフィア程度に設定される。従って、抽出する部分構造のサイズを２スフィアとすると、Ｘについては、ノードｃ，ノードｄ，ノードｅをそれぞれフォーカスノードとする図３５（ｂ）のＸｃ、Ｘｄ、Ｘｅに示すような３つの部分構造を抽出し、各々にＩＤ番号１，２，３を割り当てる。同様にＹについて、ノードｃ，ノードｄをそれぞれフォーカスノードとする図３５（ｂ）のＹｃ，Ｙｄに示すような２つの部分構造を抽出し、各々にＩＤ番号４，５を割り当てる。そして、Ｘｃ，Ｘｄ，Ｘｅ，Ｙｃ，Ｙｄの部分構造に関して、相関テーブルに図３５（ｃ）に示すような相関情報Ｃxc、Ｃxd、Ｃxe、Ｃyc、Ｃydを登録し、リンクテーブルには図３５（ｄ）に示すようなリンク情報Ｌxc、Ｌxd、Ｌxe、Ｌyc、Ｌydを登録する。
【０００８】
従来技術では、このような知識ベースを使って有機化合物の構造推定を以下のように行う。今、未知有機化合物に対するスペクトル測定によって、図３５（ｅ）に示すように、ピークｐ１，２，３の化学シフト値としてＫ１，Ｋ２，Ｋ３が得られ、また、ピークｐ１とピークｐ２とが結合し、ピークｐ２とピークｐ３とが結合しているとするクロスピーク情報が与えられたとする。この場合、クロスピーク情報にて互いに相関関係があるとされるピーク対（ｐ１，ｐ２）に対して、以下の処理を行う。
【０００９】
先ず、一方のピークｐ１の化学シフト値Ｋ１を主化学シフト値として有し且つそのピークｐ１と相関関係があるとされるピークｐ２の化学シフト値Ｋ２を副化学シフト値として有する化学シフト値列を持つリンク情報Ｌxc, Ｌycを第１のリンク情報として、図３５（ｄ）のリンクテーブルから抽出する。また、当該ピーク対の他方のピークｐ２の化学シフト値Ｋ２を主化学シフト値として有し且つそのピークｐ２と相関関係があるとされるピークｐ１，ｐ３の化学シフト値Ｋ１，Ｋ３を副化学シフト値として有する化学シフト値列を持つリンク情報Ｌxdを第２のリンク情報として、図３５（ｄ）のリンクテーブルから抽出する。
【００１０】
次に、第１のリンク情報と第２のリンク情報の対（Ｌxc−Ｌxd，Ｌyc−Ｌxdの２つ）のうち、各々の対のリンク情報間で、第１のリンク情報中の副ＩＤ番号の１つに第２のリンク情報中の主ＩＤ番号が存在し、且つ、第２のリンク情報中の副ＩＤ番号の１つに第１のリンク情報中の主ＩＤ番号が存在するという条件が成立する対として、Ｌxc−Ｌxdを求める。そして、この対の主ＩＤ番号ＩＤ１，ＩＤ２に対応する部分構造Ｘｃ，Ｘｄのペアを当該ピーク対ｐ１，ｐ２にかかる部分構造の推定結果の１つの候補とする。
【００１１】
ここで、クロスピーク情報を活用せずに、化学シフト値だけで図３５（ｃ）の相関テーブルを検索すると、少なくともＸｃ，Ｘｄ，Ｘｅ，Ｙｃ，Ｙｄの５つの部分構造が抽出されてしまう。更に、クロスピーク情報を活用するにしても、上述したペアを求めるという処理を行わない場合は、Ｘｃ，Ｘｄ以外にＹｃの部分構造が抽出されてしまう。ＹｃやＹｄは、ノードｄが相関関係を持つノードが１つであるため、本来の候補ではない。このような不要な部分構造を早い段階で除去することにより、後の全体構造の組み立てを効率良く実施することができる。
【００１２】
同様な処理は、クロスピーク情報にて互いに相関関係があるとされる他のピーク対（ｐ２，ｐ３）についても実施される。
【００１３】
以上のようにして可能な全ての部分構造を推定した後、推定した部分構造を基に完全構造を組み立てる全体構造の組み立て処理が実施される。
【００１４】
【発明が解決しようとする課題】
上述した従来技術は、Ｈ−ＨＣＯＳＹのクロスピーク情報を積極的に活用した知識ベースを利用している点において画期的なものであったが、次のような課題があった。
【００１５】
知識ベース中の部分構造として、１Ｈ−ＮＭＲスペクトルの化学シフト値を持つノード（つまり水素の結合する原子）をフォーカスノードとする所定サイズの部分構造を採用している。従って、シグナル（化学シフト）が現れるノードが隣接していると、１つのピーク対について、本来お互いに連結される関係にある部分構造のペアが候補構造として求められる。前述した例で説明すると、ピーク対（ｐ１，ｐ２）に対して部分構造Ｘｃ，Ｘｄのペアが候補となる。同様に図３５（ａ）の有機化合物Ｘのようなクロスピークのつながりがあると、他のピーク対（ｐ２，ｐ３）からも本来お互いに連結される関係にある部分構造のペアが候補構造として求められる。即ち、ピーク対のＮ個のつながりがあるクロスピークからは、お互いに連結される関係にある部分構造のペアが候補構造としてＮ組求められる。このため、後の全体構造の組み立ての段階で、各ペアを構成する部分構造間の組み立ての為にＮ回の組み立てが必要となり、更に組み立てられたＮ個の部分構造を順次に組み立ててより大きな構造にする為にＮ−１回の組み立てが必要となり、組み立て工程数が増大する。
【００１６】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、２Ｄ−ＮＭＲスペクトルを用いた有機化合物の構造推定における組み立て工数を削減し、効率的な構造推定を可能にすることにある。
【００１７】
【課題を解決するための手段】
本発明においては、有機化合物の構造のうち、プロトンの結合した炭素原子が１原子以上つらなる部分を基幹部分、基幹部分以外の部分を非基幹部分と呼ぶ。そして基幹部分は、部分構造上、一体で不可分な部分として捉え、１つの基幹部分を中心にそれに隣接する非基幹部分を含めて１つの部分構造とする。従って、一般に１つの部分構造のサイズは従来技術に比べて大きくなり、その分、後の組立工程数が削減される。また、非基幹部分中の原子が前記基幹部分以外の基幹部分中のプロトンの結合した炭素原子と結合している場合には、当該プロトンの結合した炭素原子を疑似原子として部分構造に含ませる。疑似原子は、水素原子の結合している炭素原子や他の疑似原子と重ね合わせることができる性質を持たせた仮想的な原子である。本発明で使用する知識ベースは、このような部分構造と二次元プロトンＮＭＲ情報との相関関係を蓄積している。
【００１８】
知識ベース中の前記二次元プロトンＮＭＲ情報は、１Ｈ−ＮＭＲスペクトルにおける各ピークの化学シフト値に加えて、好ましくは各ピークのプロトン数を含み、更に存在する場合にはＨ−ＨＣＯＳＹなどのクロスピーク情報を含む。また、有機化合物中の同じ芳香族環に属する基幹部分を持つ複数の部分構造は、後の完全構造の組み立てにおける組み合わせの爆発を防ぐために、好ましくは一つの部分構造として知識ベースに蓄積される。
【００１９】
このような知識ベースは、知識ベース構築手段によって、多数の有機化合物のそれぞれについてその有機化合物を構成する各原子とそれらの間の結合関係とを示す構造情報およびその有機化合物の１Ｈ−ＮＭＲスペクトル情報を記録した化合物ファイルを蓄積してある化合物データベースから構築される。
【００２０】
構造推定対象となる有機化合物に対する二次元ＮＭＲスペクトル測定で得られた二次元プロトンＮＭＲ情報もまた、１Ｈ−ＮＭＲスペクトルにおける各ピークの化学シフト値に加えて、好ましくは各ピークのプロトン数を含み、更に存在する場合にはＨ−ＨＣＯＳＹなどのクロスピーク情報を含む。このような二次元プロトンＮＭＲ情報が入力された場合、部分構造推定手段により、前記知識ベースに蓄積された部分構造のそれぞれについて、その二次元プロトンＮＭＲ情報と前記入力された二次元プロトンＮＭＲ情報とを照合し、前記構造推定対象となる有機化合物に含まれる可能性のある部分構造を推定する。
【００２１】
具体的には、前記部分構造推定手段は、ピーク検査手段によって前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報における各ピークの化学シフト値及び各ピークのプロトン数が前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかを調べ、また、クロスピーク検査手段によって前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報における各クロスピークが前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかを調べ、各ピーク及び各クロスピークが入力スペクトルに矛盾しない部分構造を、前記構造推定対象となる有機化合物に含まれる可能性のある部分構造として推定する。
【００２２】
前記ピーク検査手段は、好ましくは、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるピークについては、マッチするピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でもマッチしたものと判定する。これは、ヘテロ原子に結合したプロトンの場合、理論的にはピークの出現が期待されているが、実際には測定されない場合があることを考慮した対策である。
【００２３】
また前記ピーク検査手段は、好ましくは、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるクロスピークおよびジェミナルプロトンにかかるクロスピークについては、マッチするクロスピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でもマッチしたものと判定する。これは、ヘテロ原子に結合したプロトン及びジェミナルプロトンの場合、理論的にはクロスピークの出現が期待されているが、実際には測定されない場合があることを考慮した対策である。
【００２４】
また、前記クロスピーク検査手段は、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるクロスピークを構成するピークが、前記入力された二次元プロトンＮＭＲ情報における同じプロトン数のピークにマッチする場合、部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピークのみが前記入力された二次元プロトンＮＭＲ情報に存在するか否かを検査する。これによって、部分構造の推定数をより一層削減することができる。
【００２５】
他方、前記クロスピーク検査手段は、前記知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるクロスピークを構成するピークが、前記入力された二次元プロトンＮＭＲ情報におけるプロトン数のより多いピークにマッチする場合、部分構造の当該ピークとクロスピークを成すピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合、および部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピーク以外のピークが前記入力された二次元プロトンＮＭＲ情報に存在していても、マッチすると判断する。これは、プロトンＮＭＲスペクトルの測定では、類似した化学シフト値を持つ複数のピークが１つの重複ピークとして観測されることがあることを考慮した対策である。
【００２６】
また前記クロスピーク検査手段は、前記構造推定対象となる有機化合物に含まれる可能性のある部分構造毎に、その部分構造の二次元プロトンＮＭＲ情報における各ピークのプロトン数と前記入力された二次元プロトンＮＭＲ情報におけるマッチしたピークのプロトン数とから、当該部分構造が前記構造推定対象となる有機化合物に含まれる可能性のある個数を求める。
【００２７】
また本発明は、全体構造組立手段により、前記推定された部分構造から前記構造推定対象となる有機化合物の候補構造を組み立てる。具体的には、前記全体構造組立手段は、出発部分構造選定手段によって、前記部分構造推定手段によって推定された部分構造から全体構造を組み立てる際の出発点となる部分構造を選定し、組立手段によって、該選定された部分構造を出発点として前記入力された二次元プロトンＮＭＲ情報と矛盾の無い候補構造を組み立てる。
【００２８】
全体構造を組み立てる際の出発点となる部分構造として、前記部分構造推定手段によって推定された部分構造の全てを選定しても良く、より効率良く組み立てが行えるように、入力の二次元プロトンＮＭＲ情報中の各クロスピーク毎に、そのクロスピークにマッチするクロスピークを持つ部分構造の集合を生成し、その部分構造の集合の何れか１つを、全体構造を組み立てる際の出発点となる部分構造に選定しても良い。また、入力の二次元プロトンＮＭＲ情報中にクロスピークが存在しない場合、入力の二次元プロトンＮＭＲ情報中の各ピーク毎に、そのピークにマッチするピークを持つ部分構造の集合を生成し、その部分構造の集合の何れか１つを、全体構造を組み立てる際の出発点となる部分構造に選定するようにしても良い。更に、生成した部分構造の集合毎に、その部分構造の集合を全体構造を組み立てる際の出発点となる部分構造に選定した際の優劣をコンピューティング時間の面から評価し、最も評価の高い部分構造の集合を、全体構造を組み立てる際の出発点となる部分構造に選定するようにしても良い。
【００２９】
前記組立手段は、樹探索手段によって、部分構造どうしを重ね合わせてより大きな部分構造を生成することにより、出発点となる部分構造として選定された部分構造毎に、その部分構造をルートとし、完全構造またはそれ以上大きくできない部分構造をリーフとする組み立ての樹を探索し、検証手段によって、リーフの内、完全構造であって且つ前記入力された二次元プロトンＮＭＲ情報と矛盾の無い構造を１つの候補構造とする。検証手段は、好ましくは各候補構造毎に当該完全構造がどの程度良い候補であるかを定量的に示すスコアを算出する。
【００３０】
前記樹探索手段は、部分構造どうしの重ね合わせは、疑似原子を例外として、水素原子のない構造の部分でのみ行う。具体的には、一方の部分構造の何れか１つの非基幹部分の全原子及びその息子原子が、他方の部分構造の何れか１つの非基幹部分の全原子およびその息子原子にマッチするとき、この２つの部分構造は重ね合わせることができると判定する。ここで、非基幹部分の原子の息子原子とは、当該非基幹部分に隣接する基幹部分中の原子であって当該非基幹部分の原子に結合している原子を意味する。従って、息子原子は原子タイプ１である。
【００３１】
前記樹探索手段は、無駄な重ね合わせを事前に防止するために、組み立ての樹のノードから、より大きな部分構造を生成するために当該ノードに部分構造を重ね合わせる処理を行う前に、当該部分構造の二次元プロトンＮＭＲ情報と当該ノードの二次元プロトンＮＭＲ情報とを統合した二次元プロトンＮＭＲ情報が前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかをチェックし、矛盾する場合には重ね合わせ処理を行わないようにすることが望ましい。
【００３２】
また、前記樹探索手段は、限られた容量のメモリを使って組み立ての樹の探索が行えるようにするために、深さ方向優先探索によって組み立ての樹を探索し、且つ、バックトラック時に直前に重ね合わせた部分構造を差し引くことにより直前のノードを動的に生成する。
【００３３】
【発明の実施の形態】
次に本発明の実施の形態の例について図面を参照して詳細に説明する。
【００３４】
図１を参照すると、本発明の一実施の形態にかかる構造推定システム１は、化合物データベース２と、この化合物データベース２から構築された知識ベース３と、キーボードやファイル等の入力装置４と、表示装置やファイル等の出力装置５とに接続され、知識ベース構築手段１１、入力手段１２、部分構造推定手段１３、部分構造格納手段１４、全体構造組立手段１５、候補格納手段１６および出力手段１７を主要部として有している。
【００３５】
このような構造推定システム１は、例えばパーソナルコンピュータ等のコンピュータと構造推定プログラムとによって実現することができる。構造推定プログラムは、ＣＤ−ＲＯＭ、磁気ディスク装置、半導体メモリ等の機械読み取り可能な記録媒体（図示せず）に記録されており、コンピュータの起動時などにコンピュータに読み取られ、コンピュータの動作を制御することにより、コンピュータ上に図１に示した知識ベース構築手段１１、入力手段１２、部分構造推定手段１３、部分構造格納手段１４、全体構造組立手段１５、候補格納手段１６、出力手段１７を実現する。
【００３６】
このように構成された本実施の形態の構造推定システム１においては、先ず、多数の有機化合物についてその構造および１Ｈ−ＮＭＲスペクトル情報を蓄積してある化合物データベース２から、知識ベース構築手段１１が、有機化合物の部分構造と二次元プロトンＮＭＲ情報との相関関係を蓄積する知識ベース３を構築する。ここで、１つの部分構造は、有機化合物に含まれる基幹部分（プロトンの結合した炭素原子が１原子以上つらなる部分）と当該基幹部分に隣接する非基幹部分（プロトンの結合した炭素原子が１原子以上つらなる部分以外の部分）とから構成され、且つ、その非基幹部分中の原子が前記基幹部分以外の基幹部分中のプロトンの結合した炭素原子と結合している場合には当該プロトンの結合した炭素原子を疑似原子として含む。
【００３７】
構造推定システム１は、このような知識ベース３を使って未知有機化合物で測定された二次元プロトンＮＭＲ情報からその有機化合物の構造を推定する。具体的には、入力手段１２は、入力装置４から未知有機化合物の二次元プロトンＮＭＲ情報を入力して部分構造推定手段１３および全体構造組立手段１５に伝達する。部分構造推定手段１３は、入力された二次元プロトンＮＭＲ情報および知識ベース３の内容に基づき未知有機化合物に含まれる可能性のある全ての部分構造を推定し、部分構造格納手段１４に格納する。次に、全体構造組立手段１５は、推定された部分構造から入力スペクトル情報に矛盾しない全ての可能な全体構造を求め、候補格納手段１６に格納する。そして、出力手段１７が候補格納手段１６に格納された候補構造を、出力装置５に出力する。
【００３８】
以下、本実施の形態にかかる構造推定システム１の各部を詳細に説明する。
【００３９】
（１）知識ベースの構築
図２を参照すると、化合物データベース２から知識ベース３を構築する知識ベース構築手段１１は、入力手段１１１、部分構造抽出手段１１２、修飾結合表生成手段１１３および登録更新手段１１４を主要部として有している。図３に知識ベース構築手段１１の全体処理の一例を示す。以下、図２および図３を参照して、知識ベース構築手段１１の概要を説明する。
【００４０】
化合物データベース２には、多数の有機化合物の化合物ファイルが蓄積されている。１つの化合物ファイルは１つの有機化合物に対応し、その有機化合物を構成する各原子とそれらの間の結合関係とを示す構造情報、およびその有機化合物の１Ｈ−ＮＭＲスペクトル情報が記録されている。入力手段１１１は、このような化合物データベース２から化合物ファイルを１ファイルずつ順番に入力していく（Ｓ１）。
【００４１】
部分構造抽出手段１１２は、入力手段１１１によって入力された化合物ファイルが示す有機化合物から部分構造を抽出し、また抽出した部分構造に対応する二次元プロトンＮＭＲ情報を抽出する（Ｓ２）。具体的には、化合物ファイルが示す有機化合物に含まれる基幹部分毎に、当該基幹部分と当該基幹部分に隣接する非基幹部分とから構成される部分構造を抽出し、更にこの部分構造に対応する二次元プロトンＮＭＲ情報を抽出する。従って、或る化合物ファイルが示す有機化合物に基幹部分が唯一存在する場合には、当該有機化合物の全体構造が１つの部分構造として抽出される。この場合の部分構造は完全構造となる。他方、基幹部分がｎ個存在する場合には、ｎ個の部分構造が抽出される。この場合の部分構造は文字通り部分的な構造である。また、芳香族環はリング全体が１つの部分構造に含まれるように部分構造を抽出する。
【００４２】
次に、１つの化合物ファイルから抽出された部分構造と二次元プロトンＮＭＲ情報との組すべてに対して、修飾結合表生成手段１１３および登録更新手段１１４により以下の処理を繰り返す（Ｓ３〜Ｓ８）。
【００４３】
先ず修飾結合表生成手段１１３は、部分構造を構成する各原子とそれらの間の結合関係とを示す部分構造情報およびその部分構造情報の二次元プロトンＮＭＲ情報を含む修飾結合表を生成する（Ｓ３）。そして、この生成した修飾結合表を規範化する（Ｓ４）。規範化の詳細については後述する。次に登録更新手段１１４は、規範化された修飾結合表中の部分構造情報と同じ部分構造情報を持つ修飾結合表が知識ベース３に既に登録されているか否かを検査し（Ｓ５）、未登録の場合には今回の修飾結合表を知識ベースに追加登録する（Ｓ６）。他方、同じ部分構造の修飾結合表が知識ベース３に既に登録されていた場合には、今回の修飾結合表中の二次元プロトンＮＭＲ情報を考慮に入れて、知識ベース３中の既登録の修飾結合表中の二次元プロトンＮＭＲ情報を更新する（Ｓ７）。
【００４４】
１化合物ファイルから抽出された個々の部分構造の全てに対して修飾結合表生成手段１１３および登録更新手段１１４による上述した処理が終了すると（Ｓ８でＹＥＳ）、制御が入力手段１１１に戻され、化合物データベース２中の次の化合物ファイルについて前述と同様の処理が行われる。そして、化合物データベース２中の全ての化合物ファイルに対する処理を終えると（Ｓ９でＹＥＳ）、知識ベース３の構築処理が終了する。
【００４５】
次に知識ベース構築手段１１の実施例について詳細に説明する。
【００４６】
（１−１）化合物データベース２
１万数千件の有機化合物について、１Ｈ−ＮＭＲスペクトルの測定データまたは文献データを収集し、データベース化した。有機化合物１つ当たりのデータは１つの化合物ファイルに格納され、各化合物ファイルは、その有機化合物の構造情報と、その帰属情報を有する１Ｈ−ＮＭＲスペクトル、および測定条件などのデータを含む。化合物ファイルの例を図４に示す。
【００４７】
この例の化合物ファイルは、ヘッダ２００と、カウントライン２０１と、アトムブロック２０２と、ボンドブロック２０３と、シフトブロック２０４とを含んでいる。ヘッダ２００には、この化合物ファイルで示される有機化合物の名称等が設定される。今の場合、ＥＴＨＹＬ（４−ＭＥＴＨＯＸＹＰＨＥＮＹＬ）ＡＣＥＴＡＴＥである。参考までに、その構造式を図５に示す。なお、図５において、１〜１４は原子番号である。ここで、本明細書における原子番号とは、各構成重原子を順に番号付けしたものである。また、カウントライン２０１には、この有機化合物を構成する元素の数（例の場合１４）、元素と元素とが結合している数（例の場合１４）等が設定される。
【００４８】
アトムブロック２０２とボンドブロック２０３とは、この化合物ファイルで示される有機化合物の構造情報を示し、アトムブロック２０２では当該有機化合物を構成する元素の種類等が設定され、ボンドブロック２０３では各元素間の結合状態等が設定される。アトムブロック２０２はその各行が１つの元素に対応しており、先頭行から順に原子番号１の元素、原子番号２の元素、…、原子番号１４の元素を記述している。各行の先頭から３つまでの数値は当該元素の座標値を示し、その次の記号「Ｃ」等が当該元素の種類を示す。以降、各種のデータが設定されるが、本発明に直接関係しないので省略する。ボンドブロック２０３はその各行が１組の元素間の結合を記述しており、各行の先頭から順に、第１元素の原子番号、第２元素の原子番号、結合状態、…となっている。以降、各種のデータが設定されるが、本発明に直接関係しないので省略する。結合状態は、１が単結合、２が二重結合、３が三重結合、４が芳香族結合、５がその他の結合をそれぞれ示す。例えば、１行目は、原子番号２の元素と原子番号１の元素とが二重結合していることを、２行目は、原子番号３の元素と原子番号１の元素とが単結合していることを、それぞれ示す。
【００４９】
なお、アトムブロック２０２およびボンドブロック２０３では、一般に水素原子は明示されず、重原子のみ記述される。個々の重原子に結合している水素原子の数は、当該重原子の全原子価と他の重原子との連結に使われる原子価数との差で求まり、他の重原子との連結に使われる原子価数は結合タイプと結合数とにより求まる。
【００５０】
最後のシフトブロック２０４は、この有機化合物に対する１Ｈ−ＮＭＲスペクトル測定の結果得られたスペクトルデータに関する情報が設定されている。このうち、「Ｎ  ＨＳＦ  １」が先頭についている行は、原子番号と化学シフト値とを記述する。例えば、１行目は、原子番号３の元素の第１化学シフト値（ｌｏｗｖａｌｕｅ）および第２化学シフト値（ｈｉｇｈ  ｖａｌｕｅ）が３．５４００ｐｐｍであることを示す。なお、その後ろには強度（Ｉｎｔｅｎｓｉｔｙ）等が付記されるが、本発明と直接関係しないので省略する。また、「Ｎ  ＭＳＣ
１」が先頭についている行は、測定共鳴周波数を示し、例の場合、９０ＭＨｚである。「Ｎ  ＳＬＶ  １」が先頭についている行は、測定溶媒の種類を示し、例の場合、重水素化クロロホルム（ＣＤＣｌ3 ）である。「Ｎ  ＲＥＦ  １」が先頭についている行は、当該データが記載されている文献名（出典名）などを示す。Ｍ  ＥＮＤ、＄＄＄＄は一化合物情報の終了である。
【００５１】
図４の例には無いが、シフトブロック２０４において、「Ｎ  ＨＳＦ  １」が先頭についている複数の行に同じ原子番号が現れる場合がある。これはジェミナルプロトンが存在していることを示す。ジェミナルプロトンとは、狭義には、ＣＨ2 におけるＣがＨ2 以外の原子とそれぞれ単結合している結合環境の下で２種の化学シフトが生じる場合の当該Ｈ2 の２つのプロトンを意味するが、本明細書においては、ＣＨ2 におけるＣがＨ2 以外の原子と二重結合している結合環境の下で２種の化学シフトが生じる場合の当該Ｈ2 の２つのプロトン（いわゆる末端ビニル基プロトン）なども包含する意味で使用している。
【００５２】
なお、本実施例の場合、化合物データベース２の各化合物ファイルには、Ｈ−Ｈ  ＣＯＳＹスペクトル（クロスピーク）の情報は記録されていない。後述するようにクロスピークは、各化合物ファイルに記述されている有機化合物の構造情報中のプロトンの結合した重原子のつながりと１Ｈ−ＮＭＲスペクトル情報から論理的に求められる。
【００５３】
（１−２）部分構造抽出手段１１２
図６に部分構造抽出手段１１２の処理例を示す。部分構造抽出手段１１２は先ず、化合物ファイル中のアトムブロック２０２及びボンドブロック２０３によって規定される有機化合物の全体構造を、プロトンの結合する炭素原子とプロトンの結合しない重原子との間でその結合を切ることにより、基幹部分と非基幹部分とに分割する（Ｓ１１）。例えば図７（ａ）に示す構造の有機化合物を例にすると、プロトンの結合する炭素原子は原子番号１、２、４、６、７の原子、プロトンの結合しない重原子は原子番号３、５、８の原子なので、切断箇所は図７（ｂ）に波線で示す合計５箇所であり、図７（ｃ）、（ｄ）、（ｅ）に示す３つの基幹部分と、図７（ｆ）、（ｇ）に示す２つの非基幹部分とに分割される。
【００５４】
次に部分構造抽出手段１１２は、１つの基幹部分に注目し（Ｓ１２）、以下の処理を行う。先ず、当該基幹部分に、それに隣接する全ての非基幹部分を元通りに結合する（Ｓ１３）。例えば図７（ｃ）の基幹部分を注目した場合、この基幹部分に隣接する非基幹部分は図７（ｆ）なので、図８（ａ）に示すように元通りに結合する。次に、非基幹部分に他の基幹部分と結合していた箇所が存在していた場合、その箇所に疑似原子を結合する（Ｓ１４）。例えば図８（ａ）の場合、非基幹部分の原子番号８の原子は図７（ｅ）の基幹部分の原子番号７の原子と単結合していた。また、原子番号３の原子は図７（ｄ）の基幹部分の原子番号４の原子と二重結合していた。従って、図８（ｂ）に示すように、それらの結合箇所にそれぞれ疑似原子＊を結合する。本実施例においては、この図８（ｂ）に示すような構造が１つの部分構造となる。
【００５５】
次に、上述のようにして生成した部分構造に、以下のように二次元プロトンＮＭＲ情報を対応付ける（Ｓ１５）。
【００５６】
先ず、当該部分構造に含まれるプロトンに結合された重原子のうち、化合物ファイル中のシフトブロック２０４に１Ｈ−ＮＭＲスペクトルのピークの化学シフト値が記述されているものに対し、その記述された化学シフト値を割り当てる。例えば、図８（ｂ）に示す部分構造の場合、プロトンの結合する原子番号１、２は炭素原子であるため、その１Ｈ−ＮＭＲスペクトルの化学シフト値が化合物ファイルのシフトブロック２０４に記述されているはずなので、その記述されている化学シフト値をＫ１、Ｋ２とすると、原子番号１、２の各原子に図８（ｃ）のように割り当てる。また、図８（ｂ）に示す部分構造にはプロトンの結合したヘテロ原子はないが、若しそのようなヘテロ原子があって、それに対応するピークの化学シフト値がシフトブロック２０４に記述されていれば、そのヘテロ原子にその化学シフト値を割り当てる。更に、ジェミナルプロトンを持つ原子の場合、シフトブロック２０４に記述されている２種の化学シフト値を割り当てる。
【００５７】
次に、化合物ファイル中のシフトブロック２０４に記述されている１Ｈ−ＮＭＲスペクトルのピークを持つ重原子の当該部分構造内におけるつながりを調べ、ピークを持つ重原子が隣接している部分を１つのクロスピークとする。また、ジェミナルプロトンのように同じ重原子が２種の化学シフト値のピークを持つ場合、その部分もクロスピークとする。例えば図８（ｂ）の場合、化学シフト値Ｋ１、Ｋ２のピークを持つ原子番号１、２の原子が隣接しているので、クロスピークとして、１−２のクロスピーク情報を生成し、当該部分構造のＨ−ＨＣＯＳＹスペクトル情報として割り当てる。
【００５８】
部分構造抽出手段１１２は、以上のような処理と同様の処理を他の基幹部分に注目を移して繰り返す（Ｓ１６）。これにより、図７の例では、図９（ａ）に示すように、図７（ｄ）の基幹部分に図７（ｆ）、（ｇ）の２つの非基幹部分が結合され、図９（ｂ）に示すように非基幹部分中の他の基幹部分と結合していた箇所に疑似原子＊が結合され（疑似原子に置換された元の原子どうしが相互に結合している場合には図示するように疑似原子間も結合しておく）、図９（ｃ）に示すように、プロトンの結合する原子番号４の原子に化合物ファイル中のシフトブロック２０４から読み込んだ化学シフト値Ｋ４が割り当てられる。なお、この場合、クロスピークは存在しない。同様に、図１０（ａ）に示すように、図７（ｅ）の基幹部分に図７（ｆ）、（ｇ）の２つの非基幹部分が結合され、図１０（ｂ）に示すように非基幹部分中の他の基幹部分と結合していた箇所に疑似原子＊が結合される。このとき、原子番号３の原子と原子番号５の原子とは同じ原子（原子番号４の原子）に結合していたので、その部分には共通の疑似原子が結合される。そして、図１０（ｃ）に示すように、プロトンの結合する原子番号６、７の各原子に化合物ファイル中のシフトブロック２０４から読み込んだ化学シフト値Ｋ６、Ｋ７が割り当てられると共に、ピークを持つ原子番号６、７が隣接しているので、クロスピークとして、６−７のクロスピーク情報が生成される。
【００５９】
最後に部分構造抽出手段１１２は、今回処理した化合物ファイルが示す有機化合物中に芳香族環が存在するか否かを調べ、存在していれば、同じ芳香族環に属する基幹部分を持つ部分構造を１つの部分構造に統合する（Ｓ１７）。例えば図１１（ａ）に示すような芳香族環を有する仮の有機化合物を説明の便宜上想定すると、ステップＳ１１〜Ｓ１６の処理によって図１１（ｂ）〜（ｅ）に示す合計４つの部分構造が抽出されるが、同じ芳香族環に属する基幹部分を持つ部分構造は図１１（ｄ）と（ｅ）の部分構造なので、そのスペクトル情報も含めて図１１（ｆ）に示すように１つの部分構造に統合する。プロトンＮＭＲスペクトルにおいて、芳香族水素は、非常に少ない化学シフト範囲を持つ（通常６．５〜８．５ｐｐｍ）。このため、芳香族−１Ｈの部分構造が、この範囲のピークを持つ入力スペクトルのほとんどとマッチし、提案される部分構造の数が多くなる。同じ芳香族環に属する基幹部分を持つ部分構造を上述のように１つの部分構造に統合することで、提案される部分構造の数を大幅に削減でき、後の完全構造の組み立てにおける組み合わせの爆発を防ぐことができる。
【００６０】
（１−３）修飾結合表生成手段１１３
修飾結合表生成手段１１３は、部分構造抽出手段１１２で抽出された各部分構造毎に修飾結合表を生成する。各部分構造毎に生成された修飾結合表は、その後に原子番号等の規範化が行われて、規範化された修飾結合表となる。そして、当該部分構造と同じ部分構造が知識ベース３に未登録のときは、後段の登録更新手段１１４によって知識ベース３に登録され、同じ部分構造が知識ベース３に既に存在するときは、知識ベース３中に存在した同じ部分構造の修飾結合表中のスペクトル情報が後段の登録更新手段１１４によって更新される。
【００６１】
図１２（ａ）に修飾結合表のフォーマット例を示す。この例の修飾結合表は、補助情報行３００、結合表３０１およびスペクトル情報３０２で構成される。
【００６２】
補助情報行３００には、図１２（ｂ）に示すように、化合物データベース２から抽出された当該部分構造の数３００１、当該部分構造中の重原子の数３００２、１Ｈ−ＮＭＲスペクトルのピークの数３００３、当該部分構造の規範化されたＩＤ番号３００４がその順に並べられる。修飾結合表の生成時点では、部分構造数３００１は１に初期設定される。ＩＤ番号３００４は修飾結合表の生成時点では未設定であり、後の規範化時に設定される。
【００６３】
結合表３０１には、当該部分構造を構成する各原子とそれらの間の結合関係とを示す部分構造情報が、１原子について１行で記述される。修飾結合表の生成時点では、当該部分構造を構成する各原子に１から始まる連番の原子番号を付与し、原子番号１の原子から順に１行ずつ記述される。１原子当たりの記述内容は図１２（ｃ）に示すように、原子名３０１１、原子タイプ３０１２、重原子への結合数３０１３、結合情報３０１４の並びとなる。原子タイプ３０１２は、主に後述する構造組み立てにおける重ね合わせの観点から各原子のタイプを分類したもので、合計５種類あり、それぞれ以下の数値０〜４が割り当てられる。
０：結合プロトンのない重原子
１：結合プロトンがあり且つ重ね合わせ可能な炭素原子
２：疑似原子
３：結合プロトンはあるが、重ね合わせ不可能な炭素原子
４：結合プロトンのあるヘテロ原子
ここで、原子タイプ０、２、４を持つ原子は非基幹部分に含まれ、原子タイプ１、３を持つ原子（炭素原子）は基幹部分に含まれる。また、基幹部分に含まれる炭素原子のうち、隣接する非基幹部分中の原子と結合している炭素原子が原子タイプ１となり、それ以外の炭素原子が原子タイプ３となる。
【００６４】
また、結合情報３０１４には、図１２（ｄ）に示すように、結合相手となる原子の原子番号３０１４１と結合タイプ３０１４２の組が設定される。結合タイプ３０１４２は合計５種類あり、それぞれ以下の数値１〜５が割り当てられる。
１：単結合
２：二重結合
３：三重結合
４：芳香族結合
５：その他の結合
【００６５】
スペクトル情報３０２には、当該部分構造の帰属情報としての二次元プロトンＮＭＲ情報が、１ピーク当たり１行で記述される。１行当たりの記述内容は図１２（ｅ）に示すように、当該ピークに対応する重原子の番号３０２１、ピークタイプ３０２２、化学シフト情報３０２３、当該ピークに対応する重原子に結合されたプロトンの数（Ｈ原子数）３０２４、クロスピークの数３０２５、クロスピークのペア情報３０２６となっている。
【００６６】
ピークタイプ３０２２は２種類あり、それぞれ以下の数値０〜１が割り当てられる。
０：炭素原子に付くプロトンに起因するタイプ
１：ヘテロ原子に付くプロトンに起因するタイプ
【００６７】
化学シフト情報３０２３には、図１２（ｆ）に示すように、化学シフト範囲の中間値３０２３１、化学シフトの平均値３０２３２、偏差値３０２３３から構成される。ここで、化学シフト範囲の中間値とは、当該部分構造の集積（登録）済の化学シフト値の最大値と最小値を平均した値を言う。もし新しい部分構造の場合は、第１化学シフト値と第２化学シフト値が、最大値であり、最小値となるので、その平均値が中間値となる。また、偏差値としては例えば２σ（９５％信頼限界相当）または化学シフト範囲の１／２が使用される。修飾結合表の生成時点では、当該ピークを持つ重原子に対応付けられた第１および第２化学シフト値に基づき、それぞれ以下のように設定される。
化学シフト範囲の中間値３０２３１＝（第１化学シフト値＋第２化学シフト値）／２
化学シフトの平均値３０２３２＝（第１化学シフト値＋第２化学シフト値）／２
偏差値３０２３３＝｜第１化学シフト値−第２化学シフト値｜／２
【００６８】
クロスピークのペア情報３０２６は、図１２（ｇ）に示すようなピーク番号３０２６１とクロスピークタイプ３０２６２の組が、クロスピーク数３０２５の数だけ記述される。ピーク番号３０２６１は、その行の原子番号３０２１とクロスピークを構成する相手原子の原子番号である。クロスピークタイプ３０２６２は３種類あり、それぞれ以下の数値０〜２が割り当てられる。
０：ｆｉｘｅｄ
１：ｆｌｅｘｉｂｌｅ
２：ｈｅｔｅｒｏ
クロスピークタイプ１はジェミナルプロトンにかかるクロスピークであることを示し、クロスピークタイプ２はヘテロ原子に結合したプロトンを少なくとも一方とするクロスピークであることを示し、クロスピークタイプ０はそれ以外のクロスピークを示す。
【００６９】
図１３（ａ）に図８（ｃ）に示した部分構造について生成された修飾結合表の例を示す。なお、図８（ｃ）の部分構造における各原子の原子番号は図１３（ｂ）に示したように付け替えられているものとする。なお、Ｌ１、Ｌ２は化学シフト範囲の中間値、Ｋ１、Ｋ２はその平均値を示す。
【００７０】
次に修飾結合表の規範化について説明する。修飾結合表の規範化は、以下の３段階で実施される。
（ア）部分構造中の原子の原子番号の規範化
（イ）スペクトル情報の規範化
（ウ）部分構造ＩＤ番号の規範化
【００７１】
部分構造中の原子の原子番号の規範化とは、同じ構造を持つ部分構造については、それらの部分構造間において同じ原子には同じ原子番号を付与するように標準化することを言う。部分構造の原子の規範化番号を得るアルゴリズムとしては、例えば、Ｈ．ＨｏｎｇとＸ．ＸｉｎによってＪ．Ｃｈｅｍ．Ｉｎｆ．Ｃｏｍｐｕｔ．Ｓｃｉ．１９９４，３４，７３０−７３４に掲載されたアルゴリズムを使用することができる。この規範化された原子番号を使って修飾結合表における結合表３０１を書き換える。例えば、図１３（ｂ）に示す部分構造中の原子の原子番号１〜６が図１４（ａ）中の矢印で示すように、１→３、２→２、３→１、４→４、５→６、６→５のように規範化された場合、図１３（ａ）の修飾結合表における結合表３０１は、図１４（ｂ）の結合表３０１のように変更される。
【００７２】
次にスペクトル情報の規範化とは、（ア）によって規範化された原子番号を使って修飾結合表におけるスペクトル情報３０２中のピークが属している重原子の番号を規範化番号で書き換えることを言う。例えば、図１４（ａ）のように原子番号が規範化された場合、図１３（ａ）の修飾結合表におけるスペクトル情報３０２は、図１４（ｂ）のスペクトル情報３０２のように変更される。
【００７３】
最後に部分構造ＩＤ番号の規範化とは、規範化後の修飾結合表における結合表３０１で示される部分構造に対して、重原子の数、所定の原子タイプを持つ原子の数など部分構造の特徴情報をＩＤ番号として１つの整数番号に組み込むことを言う。規範化された部分構造ＩＤ番号は、修飾結合表における補助情報行３００に設定される。規範化された部分構造ＩＤ番号のフォーマット例と各桁に組み込む情報の例を図１５に示す。この例では、１０進数１０桁の整数の各桁に部分構造の各種の特徴情報を以下のように組み込んでいる。
桁０−１：作成された部分構造のうち、異なる環境を持つ原子種類の数で、全く同じ環境（対称性）のものがあれば、まとめて１つとする。対称性がない場合は、桁２−３で示される原子の数と同じである。
桁２−３：部分構造を構成する重原子（水素以外の原子）の数
桁４    ：原子タイプ１（結合プロトンがあり、且つ重ね合わせ可能な炭素原子）の原子の数
桁５    ：原子タイプ２（擬似原子）の原子の数
桁６−７：ヘテロ原子のコードの合計数（ただし同じヘテロ原子が複数存在しても１つのコードのみ）、０：Ｃ，１：Ｏ，２：Ｎ，３：Ｓ，４：Ｆ，５：Ｃｌ，６：Ｂｒ，７：Ｉ，８：Ｐ，９：その他
桁８    ：環（リング）構造の数
桁９    ：水素原子の結合するヘテロ原子の有無、有：１，無：０
【００７４】
（１−４）登録更新手段１１４
図１６に登録更新手段１１４の処理例を示す。登録更新手段１１４は先ず、修飾結合表生成手段１１３で生成された規範化された修飾結合表の補助情報行３００に設定されている部分構造ＩＤ番号をキーに知識ベース３を検索する（Ｓ２１）。同じ部分構造ＩＤ番号を持つ修飾結合表が知識ベース３に存在しなかった場合（Ｓ２２でＮＯ）、今回の修飾結合表をそのまま知識ベース３に追加登録する（Ｓ２３）。
【００７５】
他方、同じ部分構造ＩＤ番号を持つ修飾結合表が知識ベース３に存在した場合（Ｓ２２でＹＥＳ）、今回の修飾結合表の結合表３０１で示される部分構造と、知識ベース３に存在した同じ部分構造ＩＤ番号を持つ修飾結合表の結合表で示される部分構造とが同じ構造か比較する（Ｓ２４）。この比較は、原子番号が規範化されているので、同じ原子番号を持つ原子を比較していくことで足りる。２つの部分構造での同じ原子番号を持つ全ての原子が結合タイプを含めて同じである場合、それらは同じ部分構造と判定する。このような比較の結果、同じ部分構造の修飾結合表が知識ベース３に存在しないことが確かめられた場合（Ｓ２５でＮＯ）、今回の修飾結合表をそのまま知識ベース３に追加登録する（Ｓ２３）。
【００７６】
反対に、今回の修飾結合表と同じ部分構造の修飾結合表が知識ベース３に存在した場合（Ｓ２５でＹＥＳ）、今回の修飾結合表中の二次元プロトンＮＭＲ情報を考慮に入れて、知識ベース３に存在した修飾結合表中の二次元プロトンＮＭＲ情報を更新する（Ｓ２６、Ｓ２７）。
【００７７】
この更新方法としては、例えば、知識ベース３に新たな修飾結合表を新規登録した際、およびその更新時に、その修飾結合表に対応して、それまでの同一部分構造にかかる二次元プロトンＮＭＲ情報の値を別途保存しておき、同じ部分構造の修飾結合表が出現したとき、この修飾結合表中の二次元プロトンＮＭＲ情報と前記保存された過去の二次元プロトンＮＭＲ情報とから、化学シフト範囲の中間値、化学シフトの平均値および偏差値を再計算し（Ｓ２６）、この再計算した値で、知識ベース３に存在した修飾結合表のスペクトル情報３０２における各行の化学シフト情報３０２３に含まれる化学シフト範囲の中間値３０２３１、化学シフトの平均値３０２３２および偏差値３０２３３を更新し、補助情報行３００の部分構造数３００１を＋１する（Ｓ２７）方法がある。勿論、上述のような過去の値を保存せずに、今までの統計値である化学シフト範囲の中間値、化学シフトの平均値および偏差値と今回の二次元プロトンＮＭＲ情報とから計算によって更新後の各値を求めるようにしても良い。以下に、化学シフト範囲の中間値と平均値の算出方法の例を示す。
○中間値の算出方法
登録済の中間値（Ｃ１とする）、偏差（σ）、新しく入力される第１化学シフト値と第２化学シフト値の最大値（Ｃ２）と最小値（Ｃ３）とから、登録済最大値（Ｃ１＋σ）とＣ２を比較し、大きい方を新たな最大値Ｃ４とし、登録済最小値（Ｃ１−σ）とＣ３を比較し、小さい方を新たな最小値Ｃ５として、Ｃ４とＣ５の平均値を新たな中間値とする。
○平均値の算出方法
登録済の平均値（Ｃ１とする）、平均値を算出するのに用いた化学シフト値の個数（ｎ）、新しく入力される第１化学シフト値と第２化学シフト値の平均値（Ｃ２）とから、（Ｃ１＊ｎ＋Ｃ２）／（ｎ＋１）＝Ｃ３を新たな平均値とする。
【００７８】
なお、ジェミナルプロトンのピークは、有機化合物のスペクトル測定周波数によっては重複ピークとして観測されたり、２つの明確なピークとして観測される場合がある。このため重複ピークとしてジェミナルプロトンが観測された部分構造と、２つの明確なピークとして観測された部分構造との双方が出現した場合、登録更新手段１１４は、平均値などをとって調整する。例えば、或る部分構造中の或る原子について、化学シフト値２．３０ｐｐｍ、プロトン数２の重複ピークがあり、同じ部分構造中の同じ原子について、２つの明確なピークとして、化学シフト値２．２０ｐｐｍ、プロトン数１の第１のピークと、化学シフト値２．４０ｐｐｍ、プロトン数１の第２のピークがある場合、
（２．３０＋２．２０）／２＝２．２５ｐｐｍ、プロトン数１のピーク
（２．３０＋２．４０）／２＝２．３５ｐｐｍ、プロトン数１のピーク
を持つような部分構造が知識ベース３に格納されるようにする。
【００７９】
（１−５）知識ベース３
知識ベース３は磁気ディスク装置などのランダムアクセス可能な記録媒体に構築された物理的なファイルである。図１７に知識ベース３の構成例を示す。先頭の行４００には知識ベース３に蓄積された部分構造の総数が設定される。この例では１３５０３個の部分構造が蓄積されている。各部分構造を示す規範化された修飾結合表４０１は、知識ベース３における部分構造の位置を示すシンボル行「Ｓｕｂｓｔｒｕｃｔｕｒｅ＃」４０２によって分けられている。各修飾結合表４０１は、図１２で説明したように補助情報行３００と結合表３０１とスペクトル情報３０２とから構成される。
【００８０】
（２）未知有機化合物の測定スペクトル
入力装置４から入力される未知有機化合物のスペクトル情報を含むデータ例を図１８に示す。この例では、２Ｄ−ＮＭＲスペクトル測定で得られた未知有機化合物の各ピーク番号毎の１Ｈ−ＮＭＲの化学シフト値とプロトン数、Ｈ−Ｈ  ＣＯＳＹスペクトルのクロスピーク情報、および測定溶媒が含まれている。クロスピーク情報は、ピーク番号の組み合わせとなっている。構造推定システム１における入力手段１２は、このようなスペクトル情報を入力データとして入力し、部分構造推定手段１３および全体構造組立手段１５に伝達する。
【００８１】
（３）部分構造の推定
次に、入力されたスペクトル情報および知識ベース３の内容に基づき未知有機化合物に含まれる可能性のある部分構造を推定する部分構造推定手段１３の詳細を説明する。
【００８２】
図１９は部分構造推定手段１３の全体処理の一例を示すフローチャートである。部分構造推定手段１３は、先ず、入力手段１２から図１８に示したようなデータを入力し（Ｓ３１）、知識ベース３中のそれぞれの修飾結合表毎に、その修飾結合表中のスペクトル情報（図１２の３０２）が入力データと適合するか否かを調べ、適合する場合にはその修飾結合表が示す部分構造は未知有機化合物に含まれうる可能性のある部分構造と判断し、その部分構造に関する情報を部分構造格納手段１４に格納する（Ｓ３２〜Ｓ３５）。
【００８３】
ステップＳ３３において、修飾結合表中のスペクトル情報が入力データと適合するか否かは概ね以下のようにして判断される。
【００８４】
今、知識ベース３に記憶されている部分構造のセットをＳ、ｉ番目の部分構造をＳｉ（ｉ＝１，２，…，ｎ）とする。
Ｓ＝［Ｓｉ］          ｉ＝１，２，…，ｎ                        （１）
ここで、ｎは知識ベース３に蓄積された部分構造の数である。
また、部分構造Ｓｉの二次元プロトンＮＭＲでのスペクトル特徴が１組のピークＰＳｉと１組のクロスピークＣＰＳｉを持つとする。
ＰＳｉ＝［Ｐｊ］      ｊ＝１，２，…，ｍ                        （２）
ＣＰＳｉ＝［Ｐｋ×Ｐｌ］    ｋ≠ｌ                              （３）
Ｐｋ∈ＰＳｉ  ａｎｄ  Ｐｌ∈ＰＳｉ                              （４）
ここで、ｍは部分構造Ｓｉのピークの数である。また、Ｐｋ×ＰｌはクロスピークがＨ−Ｈ  ＣＯＳＹスペクトルにおいてｋ番目のピークＰｋとｌ番目のピークＰｌの間になければならないことを意味する。シンボル∈は「含められる」ことを意味する。
他方、入力データによって示される未知有機化合物の二次元プロトンＮＭＲスペクトルが１組のピークＰと１組のクロスピークＣＰを持つとする。
【００８５】
この場合、部分構造Ｓｉが未知有機化合物に含まれる可能性があるかどうかは、基本的には、以下の式（５）で相関関係をチェックして決定する。
ＰＳｉ  ⊆  Ｐ  ∧  ＣＰＳｉ  ⊆  ＣＰ                          （５）
ここで、⊆：ｉｎｃｌｕｄｅ  ｏｒ  ｅｑｕａｌ
∧：ａｎｄ
即ち、未知有機化合物の二次元プロトンＮＭＲ情報のピークにマッチするピークを有し、且つ、未知有機化合物の二次元プロトンＮＭＲ情報のクロスピークにマッチするクロスピークを有する部分構造を、当該未知有機化合物に含まれる可能性のある部分構造の１つとする。ここで、ＰＳｉ⊆Ｐの判定における化学シフト値の照合は或る程度の許容値をもってチェックされる。許容値としては知識ベース３の修飾結合表のスペクトル情報に記述された偏差値および予め定められたデフォルトの偏差値（例えば０．１０〜０．１５ｐｐｍ）の内、大きな方を使う。
【００８６】
また、前記（５）式に加えて他の条件を加味して、部分構造Ｓｉが未知有機化合物に含まれる可能性を判定するようにしても良い。例えば、部分構造ＳｉのピークＰｋが入力データのピークＰｘにマッチしたとしても、ピークＰｋのプロトン数（図１２（ｅ）のＨ原子数３０２４）がピークＰｘのプロトン数（図１８）より多ければ、候補から除外して良い。
【００８７】
また、ヘテロ原子（例えばＯ、Ｎ、Ｓ、Ｐ、Ｓｉ等のＣ以外の原子）に結合したプロトンは、実際にはピークが観測されず、また隣接のプロトンとのクロスピークも観測されない場合がある。これを考慮して、前記（５）式におけるＰＳｉ⊆Ｐのチェックは、部分構造Ｓｉのピークタイプ（図１２（ｅ）の３０２２）が１のピークについては、若しマッチしなくても当該判定に関してはマッチすると判断する。同じく、前記（５）式におけるＣＰＳｉ⊆ＣＰのチェックは、部分構造Ｓｉのクロスピークタイプ（図１２（ｇ）の３０２６１）が２（ヘテロ原子に結合するプロトンによるクロスピーク）の場合、若しマッチしなくても当該判定に関してはマッチすると判断する。
【００８８】
更に、ジェミナルプロトンは、実際には明確な２つのピークとして観測されず、重複ピークとして観測される場合がある。これを考慮して、前記（５）式におけるＣＰＳｉ⊆ＣＰのチェックは、部分構造Ｓｉのクロスピークタイプ（図１２（ｇ）の３０２６１）が１（ジェミナルプロトンによるクロスピーク）の場合、若しマッチしなくても当該判定に関してはマッチすると判断する。
【００８９】
以上のような考えに基づくステップＳ３３の詳細を図２０に示す。先ず、部分構造の１つのピークに注目し（Ｓ４１）、そのピークの化学シフト値にマッチするピークが入力スペクトルに存在するか否かを調べる（Ｓ４２）。存在しない場合は、当該部分構造は入力データに適合しないと判断し、候補から除外する（Ｓ４３）。存在した場合は、更にそのピークの水素原子数が、マッチした入力ピークの水素原子数を超えていないかを調べ（Ｓ４４）、超えていれば水素原子数が矛盾するので、当該部分構造は入力データに適合しないと判断し、候補から除外する（Ｓ４３）。或る１つのピークが入力ピークにマッチし且つ水素原子数に矛盾が無ければ（Ｓ４４でＹＥＳ）、ステップＳ４１に戻って当該部分構造中の残りのピークについて同様のチェックを行う。このような処理を当該部分構造中の全てのピークについて繰り返し、１つのピークでも入力ピークにマッチしないか、または水素原子数が矛盾していれば候補から除外し、全てのピークが入力ピークにマッチし且つ水素原子数に矛盾がなければ（Ｓ４５でＹＥＳ）、次にクロスピークの照合を行う（Ｓ４６）。なお、ヘテロ原子に結合したプロトンは実際にはピークが観測されない場合があるため、前述のように柔軟に対応する。
【００９０】
クロスピークの照合処理Ｓ４６では、部分構造のピークが同じ水素原子数で入力ピークにマッチした場合と、部分構造のピークが水素原子数のより多い入力ピークにマッチした場合とで、異なる照合の仕方を採用する。
【００９１】
先ず、部分構造のピークが同じ水素原子数で入力ピークにマッチした場合には、クロスピークの照合は厳格に実施され、部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピークのみが入力スペクトルに無ければならない。例えば、当該部分構造に化学シフト値Ｋ１のピーク１と化学シフト値Ｋ２のピーク２とから成るクロスピーク１−２があり、ピーク１の水素原子数は１とする。このとき、ピーク１とマッチするピーク１’が入力スペクトル中にあり、そのピーク１’の水素原子数が同じ１であったとすると、入力スペクトル中にはピーク１’とクロスピークを成すピークとして化学シフト値Ｋ２を持つピーク２’だけ存在しなければならず、そのようなピーク２’が存在しないか、存在してもピーク１’にピーク２’以外の他のピークとのクロスピークが存在した場合には照合不一致となる。
【００９２】
次に、部分構造のピークが水素原子数のより多い入力ピークにマッチした場合には、クロスピークの照合はより柔軟に実施され、部分構造の当該ピークに係るクロスピークが入力スペクトルに存在しなくても、また、入力スペクトルが他のクロスピークを持っていても良い。例えば、当該部分構造に化学シフト値７．４６ｐｐｍのピーク１と化学シフト値７．５７ｐｐｍのピーク２とから成るクロスピーク１−２があり、ピーク１、２の水素原子数は何れも１とする。このとき、ピーク１およびピーク２と許容値０．１ｐｐｍ以下でマッチする化学シフト値７．５０ｐｐｍのピーク１２’が入力スペクトル中にあり、そのピーク１２’の水素原子数が４であったとすると、クロスピーク１−２はマッチしたと判断される。また、化学シフト値７．５０ｐｐｍの入力ピークが他の入力ピークとクロスピークを持っていても、クロスピーク１−２はマッチしたと判断される。これは、プロトンＮＭＲスペクトルの測定では、しばしばピークで非常に混み合っており、幾つかのピークは重なって大きな積分値を持つ広いピークとして現れ、類似した化学シフト値を持つ２つのピークのクロスピークが１つの重複ピークに埋もれてしまっていることを考慮した対策である。
【００９３】
なお、ステップＳ４６においては、ヘテロ原子に結合したプロトン及びジェミナルプロトンは実際には隣接のプロトンとのクロスピークが観測されない場合があるため、前述したように柔軟に対応する。
【００９４】
以上のようなクロスピークの照合で不一致となった場合（Ｓ４７でＮＯ）、当該部分構造は候補から除外される。他方、クロスピークでも照合がとれた場合（Ｓ４７でＹＥＳ）、当該部分構造は未知有機化合物に含まれうる可能性のある１つの部分構造と判断する（Ｓ４８）。そして、本実施例においては、未知有機化合物に含まれる可能性がある当該部分構造の数を以下のようにして推定しておく（Ｓ４９）。
【００９５】
部分構造のピークをＰＳｉ（ｉ＝１、…、ｍ）、各ピークのプロトン数をＰＰｉ（ｉ＝１、…、ｍ）、マッチした入力ピークのプロトン数をＩＰｉ（ｉ＝１、…、ｍ）とするとき、ＩＰｉ／ＰＰｉの商が２以上となるとき、その整数部分をｎとして、当該部分構造が最大ｎ個だけ、未知有機化合物に含まれる可能性があるとする。これは、全く同じ複数の部分構造が未知有機化合物に含まれている場合、そのプロトンＮＭＲスペクトルにおいて、この部分構造のスペクトル特徴は全く重なり、対応する水素原子数をより大きくするためである。
【００９６】
図２１に部分構造格納手段１４の例を示す。部分構造格納手段１４は磁気ディスク装置などのランダムアクセス可能な記録媒体に生成された物理的なファイルであり、その先頭の行５００には推定された部分構造の総数が設定される。この例では６５２個の部分構造が推定されている。推定された個々の部分構造に関する情報５０１は、部分構造の位置を示すシンボル行「Ｓｕｂ＃」５０２によって分けられている。
【００９７】
各部分構造に関する情報５０１は、５０１−１と５０１−２の２つの部分から成る。第１の部分５０１−１は、部分構造と入力スペクトルの間のマッチした詳細を示し、５０３、５０４、５０５の３つの部分から成る。最初の部分５０３は、当該部分構造のピークの数を記述した行である。続く部分５０４は、１行当たり１ピークで、最初はピーク番号、２番目はマッチした入力ピークの数、最後にマッチした入力ピークの番号である。残りの部分５０５には、未知有機化合物の構造にあると考えられる当該部分構造の可能な数と、知識ベース３中のこの部分構造の位置とが記述される。第２の部分５０１−２には、当該部分構造を蓄積する知識ベース３中の修飾結合表を構成する補助情報行３００と結合表３０１とスペクトル情報３０２がそのまま記述されている。
【００９８】
（４）全体構造の推定
次に、部分構造推定手段１３によって推定された部分構造から入力スペクトル情報に矛盾しない全ての可能な全体構造を求める全体構造組立手段１５について説明する。
【００９９】
部分構造推定手段１３によって推定された部分構造の中には、完全構造とそうでない構造との２種類がある。完全構造であるか否かは、疑似原子を有するか否かによって判定できる。本実施例の全体構造組立手段１５は、完全構造になっている部分構造について処理した後、続いて完全構造でない部分構造について、それらを組み立てることで候補構造を求める。図２２に全体構造組立手段１５の全体処理の例を示す。
【０１００】
全体構造組立手段１５は、先ず、部分構造格納手段１４に格納された完全構造になっている部分構造を処理する（Ｓ５１）。この処理は、完全構造になっている部分構造を部分構造格納手段１４から読み出し、その完全構造中の水素原子数が入力データ中の水素原子数と矛盾しないかどうか等をチェックし、矛盾がなければ１つの候補構造として候補格納手段１６に出力する処理である。詳しくは後述する。
【０１０１】
次に全体構造組立手段１５は、完全構造でない部分構造を組み立てて入力スペクトルに矛盾しない全体構造を組み立てる。先ず、部分構造格納手段１４から完全構造以外の部分構造を全て抽出する（Ｓ５２）。次に、未知有機化合物の全体構造を組み立てる際の出発点となる部分構造の集合を選定する（Ｓ５３）。全体構造を組み立てる際の出発点となる部分構造を本明細書ではフォーカスノードと呼ぶ。フォーカスノードの選定方法としては、全ての可能な候補構造が、選ばれたフォーカスノードを出発点として組み立てられることが保証されていれば、どのような方法でも良い。最も単純な方法は、ステップＳ５１で抽出した全ての部分構造をフォーカスノードとする方法である。より効率的なフォーカスノードの選定方法については後述する。
【０１０２】
次に全体構造組立手段１５は、１つのフォーカスノード毎に、そのフォーカスノードを出発点として全体構造の組立を行う（Ｓ５４〜Ｓ５６）。構造組立の主なアルゴリズムは、「組み立ての森」の検索アルゴリズムである。組み立ての森は、独立した樹から成る。樹のなかでは、未知有機化合物の候補構造は、完全構造をもつ葉（リーフ：これ以上大きくすることができない部分的な若干の構造も、葉である）として考える。他のノードは、異なる部分構造を重ねることによって発生する部分的な構造（新しく発生する、より大きな構造）として扱われる。構造組み立ては、組み立ての森を探すよう処理され、樹の全ての葉を得る。組み立ての樹を探すことは、深さ方向優先戦略によって実施される。そして、バックトラッキング（後方追跡）テクニックが、全部の樹を探すことを保証するために使われる。組み立ての樹の概念図を図２３に示す。
【０１０３】
図２３において、シンボル◎、○、□はそれぞれ１つのノードであり、特にノード◎は樹のルートＲ、ノード□は葉と呼ぶ。ルートＲには、フォーカスノードとして選定された部分構造の１つが設定される。ノード○は、異なる部分構造を重ねることによって新しく発生した部分構造を示す。葉のノード□は完全構造をもつ。シンボル△は重ね合わせに使用する部分構造を示す。以下、図２３を参照して、組み立ての樹の探索方法を説明する。なお、以下の説明において、或るノード（Ａとする）に対して部分構造を重ねることによって新しいノード（Ｂとする）が生成される場合、ノードＡとノードＢとの関係において、ノードＡを親ノード、ノードＢを子ノードと呼ぶ。例えば、図２３において、ルートＲはノードＮ１１およびノードＮ１２の親ノードであり、ノードＮ１１およびノードＮ１２はルートＲの子ノードである。また、ノードＮ２１は、ノードＮ１１から見て子ノードであり、ノードＣ２から見て親ノードである。
【０１０４】
先ず、フォーカスノードに対して重ね合わせる部分構造のセットを選定する。このセットをレベル０の部分構造セットと呼び、Ｐ［０］［ｎ］と記す。ｎは部分構造の数である。図２３の場合、３つの部分構造Ｐ［０］［３］、Ｐ［０］［２］  Ｐ［０］［１］を含むセットが選定されている。或るノードに対して重ね合わせる部分構造セットを選定する方法については後述する。次に、フォーカスノードと、レベル０の部分構造セット中の１つの部分構造Ｐ［０］［３］とを重ね合わせる（矢印（１））。図２３の場合、重ね合わせに成功し、新たな部分構造Ｎ１１が生成されている。このように重ね合わせに成功し、新たな部分構造が生成されると、レベルを１つ進めてレベル１とし、部分構造Ｎ１１に対する組み立てを続行する。この場合にも、部分構造Ｎ１１に対して重ね合わせる部分構造セットを選定する。図２３の場合、２つの部分構造Ｐ［１］［２］、Ｐ［１］［１］を含むレベル１のセットが選定されている。次に、部分構造Ｎ１１と、レベル１のセット中の１つの部分構造Ｐ［１］［２］とを重ね合わせる（矢印（２））。図２３の場合、重ね合わせに成功し、完全構造Ｃ１が生成されている。
【０１０５】
このように完全構造が生成されると、その構造中の水素原子数が入力データ中の水素原子数と矛盾しないかどうか等をチェックし、矛盾がなければ１つの候補構造として候補格納手段１６に出力する。但し、同じ完全構造が既に候補格納手段１６に格納されているか否かを調べ、格納されているときは出力しない。そして、バックトラックを行って（矢印（３））、親ノードの部分構造Ｎ１１に戻る。次に、部分構造Ｎ１１と、レベル１のセット中の１つの部分構造Ｐ［１］［１］とを重ね合わせる（矢印（４））。図２３の場合、重ね合わせに成功し、新たな部分構造Ｎ２１が生成されている。従って、レベルを１つ進めてレベル２とし、部分構造Ｎ２１に対する組み立てを続行すべく、部分構造Ｎ２１に対して重ね合わせる部分構造セットを選定する。図２３の場合、１つの部分構造Ｐ［２］［１］を含むレベル２のセットが選定されている。そこで、部分構造Ｎ２１と部分構造Ｐ［２］［１］とを重ね合わせる（矢印（５））。図２３の場合、重ね合わせに成功し、完全構造Ｃ２が生成されている。
【０１０６】
次に、完全構造Ｃ２に対して完全構造Ｃ１と同様な処理を行った後、バックトラックを行って（矢印（６））、部分構造Ｎ２１に戻る。この部分構造Ｎ２１に重ね合わせる部分構造はレベル２のセット中のＰ［２］［１］だけで後は存在しないので、再びバックトラックを行って（矢印（７））、部分構造Ｎ１１に戻る。この部分構造Ｎ１１に重ね合わせる部分構造はレベル１のセット中のＰ［１］［２］、Ｐ［１］［１］で全て処理し終えているので、再びバックトラックを行って（矢印（８））、ルートＲに戻る。以下、図２３に示す（９）→（１０）→（１１）→（１２）→（１３）→（１４）…のような順序で、組み立ての樹の探索が続けられる。なお、矢印（１０）の先に付したシンボル×は、部分構造Ｎ１２に対して新たに選定された重ね合わせる部分構造セット内のＰ［１］［２］との重ね合わせが失敗したことを示している。
【０１０７】
以上のような組み立ての樹の探索において、樹が大きいと全てのノードを保持するにはコンピュータのメモリが不足する場合がある。このような場合には、子ノードを生成したとき、この子ノードを格納するメモリ領域として、親ノードが使っていたメモリ領域を使用し、バックトラックする際には、子ノードから元の部分構造およびスペクトル情報を差し引くことによって親ノードをダイナミックに生成するようにすれば良い。
【０１０８】
次に、或るノードに対して重ね合わせる部分構造を選定する方法について説明する。フォーカスノードに対して重ね合わせるレベル０の部分構造セットは、部分構造推定手段１３で推定された部分構造の中より今回のフォーカスノードを除外した部分構造のうち、フォーカスノードと重ね合わせた場合に出来上がる部分構造のスペクトル情報が入力スペクトル情報と矛盾しない部分構造である。また、レベルｎ（ｎ≠０）の部分構造セットから選択した或る部分構造ａを重ね合わせて出来た部分構造Ａに対して重ね合わせるレベルｎ＋１の部分構造セットは、レベルｎの部分構造セット中より今回選択した部分構造ａを除外した部分構造のうち、前記重ね合わせて出来た部分構造Ａと重ね合わせた場合に出来上がる部分構造のスペクトル情報が入力スペクトル情報と矛盾しない部分構造である。ここで、未知有機化合物の構造にあると考えられる部分構造の可能な数（図１２（ｂ）の部分構造数３００１）が２以上の部分構造については、その数だけの異なる部分構造が存在するものとして扱う。また、スペクトルが矛盾しないかどうかはプロトン数を考慮して判断する。簡単な具体例を挙げて以下説明する。
【０１０９】
今、部分構造推定手段１３で推定された部分構造をＳＰ１、ＳＰ２、ＳＰ３、ＳＰ４、ＳＰ５とし、未知有機化合物の構造にあると考えられる部分構造ＳＰ１、ＳＰ２、ＳＰ３、ＳＰ４、ＳＰ５の数をそれぞれ１、１、１、１、２とする。また、フォーカスノードに選定された部分構造をＳＰ１とする。この場合、フォーカスノードＳＰ１に対して重ね合わせるレベル０の部分構造セットは、ＳＰ２、ＳＰ３、ＳＰ４、ＳＰ５、ＳＰ５の５つの部分構造のうち、フォーカスノードＳＰ１のスペクトル情報と統合したスペクトル情報が入力スペクトル情報と矛盾しない部分構造とする。例えば、入力スペクトル情報中の或るピークのプロトン数を１とし、フォーカスノードＳＰ１がそのピークにマッチするプロトン数１のピークを既に持っていた場合、ＳＰ２、ＳＰ３、ＳＰ４、ＳＰ５、ＳＰ５の５つの部分構造のうち、その入力ピークにマッチするピークを持つ部分構造は選定から外される。
【０１１０】
次に、フォーカスノードＳＰ１に対して重ね合わせるレベル０の部分構造セットとして、ＳＰ２、ＳＰ５、ＳＰ５の３つを含む部分構造セットが選定されたとする。また、フォーカスノードＳＰ１とその内の１つの部分構造、たとえばＳＰ５とが重ね合わされ、そして、重ね合わせに成功したとする。この場合、重ね合わせて出来た部分構造ＳＰ１＋ＳＰ５に対して重ね合わせるレベル１の部分構造セットは、レベル０の部分構造セットからＳＰ５を除いたＳＰ２、ＳＰ５のうち、部分構造ＳＰ１＋ＳＰ５と重ね合わせた場合にできる部分構造が持つスペクトル情報が入力スペクトル情報に矛盾しない部分構造のセットである。
【０１１１】
図２４および図２５に以上のような考えに基づく樹の探索方法を含めて、図２２のステップＳ５５の詳細を示す。先ず、現候補にフォーカスノードの１つを設定する（Ｓ６１）。次にレベルを示す内部変数Ｌを０に初期化し（Ｓ６２）、現候補に対して重ね合わせる部分構造のセットＰ［０］［ｎ］を選定する（Ｓ６３）。ここで、ｎは内部変数であり、選定された部分構造の数に等しい。
【０１１２】
次にＬ＝０且つｎ＝０でないことを確認後（Ｓ６４）、現候補に対してレベル０の部分構造セット中のｎ番目の部分構造Ｐ［０］［ｎ］を重ね合わせる（Ｓ６６）。図２６にステップ６６の処理例を示す。先ず、現候補と部分構造との２つを重ね合わせることができるか否かを調べる（Ｓ９１）。重ね合わせることができる場合には、結合表およびスペクトル情報を統合する。即ち、現候補の結合表と部分構造の結合表を統合することにより、重ね合わせ後の部分構造を構成する各原子とそれらの間の結合関係を示す結合表を生成し（Ｓ９２）、現候補のスペクトル情報と部分構造のスペクトル情報とを統合することにより、重ね合わせ後の部分構造のスペクトル情報を生成する（Ｓ９３）。なお、バックトラック時には、ステップＳ９２で生成された結合表から前記部分構造の結合表部分が差し引かれ、ステップＳ９３で生成されたスペクトル情報から前記部分構造のスペクトル情報が差し引かれる。
【０１１３】
次に、ｎを−１し（Ｓ６７）、ステップＳ６６の重ね合わせ処理が失敗していれば（Ｓ６８でＮＯ）、現候補とレベル０の部分構造セット中の次の部分構造を重ね合わせる。この処理は、現候補と重ね合わせることができる部分構造が見つかるか、ｎ＝０、つまりレベル０の部分構造セット中の全ての部分構造を処理し終えるまで続けられる（Ｓ６５〜Ｓ６８）。
【０１１４】
現候補に対してレベル０の部分構造セット中の或る部分構造との重ね合わせが成功した場合（Ｓ６８でＹＥＳ）、重ね合わせて出来た構造を現候補とし（Ｓ６９）、現候補が完全構造か否かを判定する（Ｓ７０）。完全構造でなければ、Ｌを＋１してレベル１とし（Ｓ７１）、現候補に対して重ね合わせることが可能なレベル１の部分構造セットＰ［１］［ｎ］を選定する（Ｓ７２）。そして、ステップＳ６４に戻り、現候補に対して前述と同様の処理を行う。また、ステップＳ６５においてｎ＝０と判定された場合、つまり現候補に対して重ね合わせる部分構造の全てを処理し終えた場合には、内部変数Ｌを−１し（Ｓ７３）、現候補から直前に重ね合わせた部分構造を差し引いて直前の現候補を復元し（Ｓ７４）、ステップＳ６４に戻る。即ち、バックトラックを行う。そして、ステップＳ６４において、Ｌ＝０且つｎ＝０と判定されたとき、図２４および図２５の処理を終える。
【０１１５】
図２５において、ステップＳ８１〜Ｓ８７は、重ね合わせて出来た構造が完全構造となった場合に実施される処理である。先ず、当該完全構造が入力スペクトルに矛盾していないかどうかを調べる。例えば、当該完全構造の総水素原子数が図１８の入力データ中のプロトン数の合計と一致するか否かを調べる。また、知識ベースからの部分構造のピーク情報が入力データとマッチすれば、その部分構造からタイプが推定できる。例えば、図２１で、スペクトル情報３０２のピークタイプ３０２２＝１からヘテロであることが確認できる。これは、結合表３０１の原子タイプ＝４であることからもヘテロに起因することがわかる。また、ピークタイプ＝０から、炭素であることが分かり、Ｈ原子数３０２４から、水素原子数がわかる。従って、当該完全構造の総水素原子数のチェックに加えて、炭素原子に結合する水素原子数毎のチェックや、ヘテロ原子に結合する水素原子数毎のチェックを実施しても良い。このステップＳ８１のチェックにおいて入力データとの矛盾が検出された完全構造は、候補構造から除外される（Ｓ８２でＮＯ）。この場合、現候補から直前に重ね合わせた部分構造を差し引いて直前の現候補を復元し（Ｓ８７）、ステップＳ６５に戻る。即ち、バックトラックを行う。
【０１１６】
ステップＳ８１のチェックにおいて入力データとの矛盾が検出されなかった完全構造に対しては、規範化を行う（Ｓ８３）。つまり、知識ベース３の構築の際に説明したのと同様に、当該完全構造中の原子の原子番号を規範化すると共に、当該完全構造に対して規範化されたＩＤ番号を付与する。そして、候補格納手段１６に当該完全構造と同じ完全構造が既に格納されているか否かを調べる（Ｓ８４）。同じ構造のものが存在するか否かのチェックは、知識ベース３の構築の際に説明したのと同様に、先ず、規範化されたＩＤ番号で候補格納手段１６を検索し、同じＩＤ番号が無ければ同じ構造のものが格納されていないと判断する。同じＩＤ番号の完全構造が格納されていれば、同じ原子番号どうしの原子を比較して同じ構造か否かを調べる。今回の完全構造と同じ構造のものが候補格納手段１６に格納されていれば、二重登録を防止するために候補格納手段１６へは出力せず、当該完全構造から直前に重ね合わせた部分構造を差し引いて直前の現候補を復元し（Ｓ８７）、ステップＳ６５に戻る。即ち、バックトラックを行う。
【０１１７】
今回の完全構造と同じ構造のものが候補格納手段１６に格納されていなければ（Ｓ８４でＮＯ）、当該完全構造がどの程度良い候補であるかを定量的に利用者に提示するために、当該完全構造に対してスコアを算出する（Ｓ８５）。スコアは、候補構造を構成している部分構造のピークの化学シフト値と、入力ＮＭＲスペクトルデータとの整合性に基づいて計算される。スコアを算出する式の一例を以下に示す。
【０１１８】
【数１】
0003725768.tif 000002
ここで、
ｉ＝１、２、…、ｍ：  ｍは部分構造に存在するピークの数
ｊ＝１、２、…、ｎ：  ｎは組み立てに用いて部分構造の数
ＮＨ：  各ピークの水素原子の数
Ａ：  知識ベース中の化学シフト値の平均値
Ｓ：  各ピークの入力された化学シフト値
Ｄｅｖ：  知識ベース中のピークの化学シフト値の半分の値
ＭＤ：  知識ベース全体でのピークの化学シフト値の範囲の半分の値の最大値Ｍｘ：  同一部分構造の数の最大値（任意に設定可能で、実施例では５０に設定）
ＮＳＳ：  知識ベース中での同一部分構造の数（５０以上の場合は５０に設定）
ＭＣＳＤ：  その候補構造についての知識ベース中の化学シフト値の平均値と入力データ中のマッチしたピークの化学シフト値との差の最大値（実施例では０．６に設定）
【０１１９】
以上のようなスコアの算出後、当該候補構造に関する情報を候補格納手段１６に格納する（Ｓ８６）。そして、当該候補構造から直前に重ね合わせた部分構造を差し引いて直前の現候補を復元し（Ｓ８７）、ステップＳ６５に戻る。即ち、バックトラックを行う。
【０１２０】
図２７に候補格納手段１６の例を示す。候補格納手段１６は磁気ディスク装置などのランダムアクセス可能な記録媒体に生成された物理的なファイルであり、その先頭の行６００には生成した候補構造の総数が設定される。この例では５個の候補構造が生成されている。生成された個々の候補構造に関する情報６０１は、補助情報６０１−１と候補構造の結合表６０１−２の２つの部分から成る。補助情報６０１−１は、スコア値を記述した行６０２、候補構造を生成するために使われた部分構造のＩＤ番号を列挙した行６０３、候補構造の大きさ（原子数）を記述した行６０４を含む。なお、当該候補構造の規範化したＩＤ番号は図示されていないが、例えば行６０２に記述される。
【０１２１】
候補構造の結合表６０１−２においては、１つの原子が１つの行で記述される。１つの行において、最初のコラムは原子番号で、第２のコラムは原子名である。第３のコラムは結合の数である。この後に、結合相手の原子番号と結合タイプのペアによる結合の表記が続く。
【０１２２】
候補格納手段１６に格納された上述のような情報は、出力手段１７によって読み出され、ディスプレイ装置やプリンタで構成される出力装置５から出力される。
【０１２３】
次に、図２６のステップＳ９１で行う部分構造どうしの重ね合わせの可能性の判定方法について説明する。
【０１２４】
２つの部分構造の重ね合わせは、水素原子のない構造の部分（つまり非基幹部分）でのみ行う。但し、１つの例外がある。疑似原子は、水素原子のある構造の部分（つまり基幹部分）に重ねることができることである。従って、正確には、２つの部分構造の重ね合わせは、非基幹部分の全ての原子とその息子原子（ここで、息子原子とは、当該非基幹部分に隣接する基幹部分中の原子であって当該非基幹部分の原子に結合している原子を意味する。従って、息子原子は原子タイプ１である）が対象となる。一方の部分構造の何れか１つの非基幹部分の全原子及びその息子原子が、他方の部分構造の何れか１つの非基幹部分の全原子およびその息子原子にマッチするとき、この２つの部分構造は重ね合わせることができる。マッチとは、原子の種類および結合の種類が同一であることを言う。具体例を図２８（ａ）、（ｂ）に示す２つの部分構造Ａ、Ｂを用いて以下説明する。なお、部分構造Ａ、Ｂの各原子に付記した数値は原子番号である。
【０１２５】
部分構造Ａ、Ｂにおいて、破線で囲んだ部分がそれぞれ非基幹部分であり、一点鎖線で囲んだ部分が非基幹部分の全ての原子とその息子原子とを含む重ね合わせ対象部分になる。部分構造Ａには１つの重ね合わせ対象部分ａがあり、部分構造Ｂには２つの重ね合わせ対象部分ｂ１、ｂ２がある。従って、重ね合わせ対象部分ａ中の全原子が、重ね合わせ対象部分ｂ１、ｂ２の何れかの全原子とマッチすれば、部分構造Ａ、Ｂは重ね合わせることができる。この例では、重ね合わせ対象部分ａ中の全原子が重ね合わせ対象部分ｂ１の全原子と以下のようにマッチしているため、図２８（ｃ）のように重ね合わせることができる。
0003725768.tif 000003
【０１２６】
図２９に図２６のステップＳ９１で行う部分構造どうしの重ね合わせ判定の処理例を示す。重ね合わせる２つの部分構造は、１つは現候補であり、１つはこの現候補に対して重ねようとする或る部分構造Ｐ［Ｌ］［ｎ］である。先ず、現候補の原子数を内部変数ＮＡＣに、部分構造の原子数を内部変数ＮＡＳに、原子番号１を内部変数Ｎｓにそれぞれ設定し、また、重ね合わせ結果を示す内部変数Ｒに重ね合わせ失敗を意味するＮＯを初期設定する（Ｓ１０１）。
【０１２７】
次に、部分構造中から原子タイプが２（プロトンの結合した重ね合わせ可能な炭素原子）または３（疑似原子）の原子を１つ見つける（Ｓ１０２、Ｓ１０８、Ｓ１０９）。次に、この見つけた原子に重ね合わせる原子として、現候補中の原子の内から原子タイプが３（疑似原子）の原子を１つ見つける（Ｓ１０３、Ｓ１０４、Ｓ１０６、Ｓ１０７）。そして、当該２つの原子を重ね合わせのスタート点として、現候補と部分構造とを重ね合わせることができるか否かを調べる（Ｓ１０５）。重ね合わせることができた場合（Ｓ１０５でＹＥＳ）、内部変数Ｒに重ね合わせ成功を意味するＹＥＳを設定し（Ｓ１１０）、図２９の処理を終える。
【０１２８】
重ね合わせることができなかった場合には（Ｓ１０５でＮＯ）、現候補から別の１つの疑似原子を探し（Ｓ１０６、Ｓ１０７、Ｓ１０４）、存在すれば、部分構造中の前記原子と今回見つけた現候補の疑似原子を重ね合わせのスタート点として、現候補と部分構造とを重ね合わせることができるか否かを調べる処理を、重ね合わせに成功するか、現候補の全ての疑似原子を処理し終えるまで繰り返す。そして、それでも未だ重ね合わせに成功しない場合、部分構造から別の１つの疑似原子または水素原子の結合した重ね合わせ可能な炭素原子を見つけ（Ｓ１０２）、この見つけた原子と現候補中の各疑似原子とをスタート点とする重ね合わせを試行する。この処理を重ね合わせに成功するか、部分構造中の全ての疑似原子、水素原子の結合した重ね合わせ可能な炭素原子を処理し終えるまで繰り返す。重ね合わせに成功しない場合、内部変数ＲはステップＳ１０１で初期設定されたＮＯのままとなる。
【０１２９】
図２９のステップＳ１０５の処理は、ｌｅｖｅｌ  ｅｘｔｅｎｄ−ｍａｔｃｈ法を深さ方向優先戦略とバックトラックテクニックと共に使用して行われる。部分構造のスタート原子から始まって、その息子原子がチェックされ、それらの１つがうまく現候補のどれかの原子とマッチするならば、この息子の息子原子が次にチェックされる。この手順は息子の原子が見つけられない、または現候補のどの原子にも合わないときに終了する。終了した場合には、その父原子の他の息子原子を試みる。成功した重ね合わせが見つけられるまで、あるいはスタート原子のペアが重ね合わせにうまく到達できないという結論が得られるまで、このバックトラックが実行される。その処理例を図３０に示す。
【０１３０】
先ず、スタート点の原子Ｎｓ、Ｎｃを重ね合わせ対象原子Ｗｓ、Ｗｃに初期設定する（Ｓ１２１）。次に、ＷｓとＷｃとが重ね合わせ可能か否か（マッチするか否か）を調べる（Ｓ１２２）。重ね合わせ可能であり、ＷｓとＷｃに息子原子が存在すれば（Ｓ１２３、Ｓ１２４でＹＥＳ）、それらの息子原子の集合ＰＷｓ、ＰＷｃを作る（Ｓ１２５）。図２８を参照して説明したように部分構造どうしの重ね合わせは、非基幹部分の全原子とその息子原子を含む重ね合わせ対象部分ａ、ｂ１、ｂ２が対象となるため、ＷｓとＷｃに息子原子が存在するか否かの判定は、重ね合わせ対象部分内で息子原子を有するか否かで行う。そして、息子原子の集合ＰＷｓ、ＰＷｃから１つの原子を取り出して新たな重ね合わせ対象原子Ｗｓ、Ｗｃとし（Ｓ１２６）、ステップＳ１２２に戻り、前述の処理を繰り返す。
【０１３１】
ステップＳ１２２においてＷｓとＷｃとが重ね合わせることができない場合、および、ステップＳ１２４においてＷｃに息子原子が存在しなかった場合、バックトラック（トライ）を行う（Ｓ１２７）。この処理は、未だ試行していないＷｓとＷｃのペアまでバックトラックして新たな重ね合わせの可能性を試みるステップである。従って、未だ試行していないＷｓとＷｃのペアが存在しない場合（Ｓ１２８でＮＯ）、当該スタート点からの重ね合わせは失敗と判定する（Ｓ１２９）。
【０１３２】
他方、ステップＳ１２３においてＷｓに息子原子が存在しなかった場合、バックトラック（トレース）を行う（Ｓ１３０）。この処理は、部分構造中の重ね合わせ対象部分内の原子の内、未だ重ね合わせできるか否かを調べていない原子までバックトラックする処理である。従って、未だ重ね合わせできるか否かを調べていない原子が残っていない場合（Ｓ１３１でＮＯ）、当該スタート点からの重ね合わせは成功と判定する（Ｓ１３２）。
【０１３３】
図３１に、図２８の部分構造Ａの原子番号４の原子と部分構造Ｂの原子番号４の原子とをＷｓ、Ｗｃのスタート点とした際の重ね合わせ判定の流れを示す。なお、部分構造Ａ、Ｂの原子番号を区別するために原子番号の前にＡ、Ｂを付記してある。先ず、原子Ａ４と原子Ｂ４とはマッチする（Ｓ１２２でＹＥＳ）。原子Ａ４、Ｂ４には息子原子Ａ３、Ｂ３（部分構造Ａの原子番号５の原子は重ね合わせ対象部分ａの外にあるので息子原子ではない）があるので（Ｓ１２３、Ｓ１２４でＹＥＳ）、ＰＷｓ＝Ａ３、ＰＷｃ＝Ｂ３となり（Ｓ１２５、Ｓ１２６）、原子Ａ３と原子Ｂ３とのマッチが調べられる（Ｓ１２２）。判定結果はＹＥＳである。次に、原子Ａ３、Ｂ３には息子原子Ａ２、Ａ６、Ｂ２、Ｂ５があるので（Ｓ１２３、Ｓ１２４でＹＥＳ）、ＰＷｓ＝Ａ２、Ａ６、ＰＷｃ＝Ｂ２、Ｂ５となる（Ｓ１２６）。
【０１３４】
そこで、次に原子Ａ６と原子Ｂ２とのマッチングを調べたとすると（Ｓ１２２）、マッチしないため、バックトラック（トライ）を行う（Ｓ１２７）。この場合、原子Ａ６と原子Ｂ５との新ペアが残っているので（Ｓ１２８でＹＥＳ）、原子Ａ６と原子Ｂ５とのマッチングが調べられる（Ｓ１２２）。その結果はＹＥＳである。原子Ａ６には息子原子がないので（Ｓ１２３でＮＯ）、バックトラック（トレース）を行う。この場合、原子Ａ３の息子原子Ａ２を未だチェックしていないので、新ペアとして原子Ａ２と原子Ｂ２が選択され、そのマッチングが調べられる（Ｓ１２２）。結果はＹＥＳである。原子Ａ２、Ｂ２には息子原子Ａ１、Ｂ１があるので（Ｓ１２３、Ｓ１２４でＹＥＳ）、次には原子Ａ１と原子Ｂ１とのマッチングが調べられる（Ｓ１２２）。結果はＹＥＳである。原子Ａ１には息子原子が存在しないので、バックトラック（トレース）を行う（Ｓ１３０）。この場合、原子Ａ２には未チェックの息子原子はなく、その父原子の原子Ａ３にも未チェックの息子原子はない。また、その父原子はスタート原子Ａ４なので、重ね合わせ成功と判断される。
【０１３５】
次に図２２のステップＳ５３における効率的なフォーカスノードの選定方法を説明する。
【０１３６】
組み立ての森を探すコンピューティング時間は、スタートの部分構造の数（組み立ての樹の数）と、スタートの部分構造（組み立ての樹の構造）で劇的に変化する。従って、合理的コンピューティング時間内で、全ての可能な候補構造を生成するためには、スタートの部分構造の良い集合、つまり良いフォーカスノードを選定することが重要である。但し、全ての可能な候補構造が選ばれたフォーカスノードから組み立てられ、いかなる構造もミスしないことを保証する必要がある。
【０１３７】
そこで本例では、入力データ中のスペクトル情報をフォーカスノードの選定をガイドする情報として活用し、入力スペクトル情報中の任意の１つのスペクトル（ピークまたはクロスピーク）にマッチするスペクトルを持つ部分構造の集合のみをフォーカスノードとすることを基本とする。つまり、入力スペクトル情報中に異なる複数のスペクトル（ピークまたはクロスピーク）ａ、ｂ、ｃが存在する場合、スペクトルａに適合するスペクトルを有する第１の部分構造の集合、スペクトルｂに適合するスペクトルを有する第２の部分構造の集合、スペクトルｃに適合するスペクトルを有する第３の部分構造の集合に分けられるが、その何れか１つの集合のみをフォーカスノードとすれば、全ての可能な候補構造がそのフォーカスノードから組み立てられ、いかなる構造もミスしないことが保証されるからである。これにより、部分構造すべてをフォーカスノードとする場合に比べて、組み立ての森を探すコンピューティング時間を短縮することができる。
【０１３８】
また、入力スペクトル情報にクロスピークが存在しない場合は入力ピークを活用するが、クロスピークが存在する場合には入力ピークでなく、クロスピークを活用する。クロスピークの方が入力ピークより情報量が多いので、それだけ良いフォーカスノードを選定できるからである。例えば、入力スペクトル情報中にクロスピークＣＰ１、ＣＰ２と、複数の入力ピークＰ１、Ｐ２、Ｐ３とが存在する場合、クロスピークＣＰ１に適合するクロスピークを有する第１の部分構造の集合、クロスピークＣＰ２に適合するクロスピークを有する第２の部分構造の集合に分け、その何れか１つの集合のみをフォーカスノードとする。
【０１３９】
更により良いフォーカスノードを選定するために、入力スペクトル情報中の異なるスペクトル（ピークまたはクロスピーク）に対応する部分構造の集合を、コンピューティング時間の面から評価し、コンピューティング時間をより短縮し得る集合を選択するようにしても良い。
【０１４０】
以上のような考えに基づくフォーカスノードの選定処理の一例を図３２に示す。先ず、入力データにクロスピーク情報があるか否かを調べる（Ｓ１４１）。あればクロスピーク情報に基づいてフォーカスノードを選定する（Ｓ１４２〜Ｓ１４６）。なければ入力ピークに基づいてフォーカスノードを選定する（Ｓ１４７〜Ｓ１５０、Ｓ１４６）。
【０１４１】
クロスピーク情報を活用する場合、入力データ中の１つのクロスピークに注目し（Ｓ１４２）、当該クロスピークにマッチするクロスピークを持つ部分構造の集合を生成し（Ｓ１４３）、当該集合を、コンピューティング時間の面から評価したスコアを算出する（Ｓ１４４）。入力データ中に他のクロスピークがあれば（Ｓ１４５でＮＯ）、他のクロスピークに注目を移し、同様の処理を繰り返す。最後に、スコアが最小の部分構造の集合をフォーカスノードに選定する（Ｓ１４６）。
【０１４２】
入力ピークを活用する場合、入力データ中の１つの入力ピークに注目し（Ｓ１４７）、当該入力ピークにマッチする入力ピークを持つ部分構造の集合を生成し（Ｓ１４８）、当該集合を、コンピューティング時間の面から評価したスコアを算出する（Ｓ１４９）。入力データ中に他の入力ピークがあれば（Ｓ１５０でＮＯ）、他の入力ピークに注目を移し、同様の処理を繰り返す。最後に、スコアが最小の部分構造の集合をフォーカスノードに選定する（Ｓ１４６）。
【０１４３】
ステップＳ１４４、Ｓ１４９におけるスコアの算出方法としては、計算対象となる部分構造の集合をフォーカスノードとして組み立ての森を探す際のコンピューティング時間の優劣を比較できるものであれば、どのような算出方法であっても良い。以下にスコア算出式の例を示す。
【０１４４】
【数２】
0003725768.tif 000004
ここで、
ｎ：グループ分け後のフォーカスの部分構造の数
ＮＰ：マッチングが可能なパスの数（擬似原子の数）
ＮＨ：すでにマッチしたピークの水素の数を引いた残りの水素数プラス１（ゼロにしないために、プラス１）
ＴＧ：マッチしたピークのタイプのタグ値で、通常は１、そのうち一つでもヘテロがあるときは２
【０１４５】
次に、図２２のステップＳ５１で行われる、部分構造格納手段１４に格納された完全構造に対する全体構造組立手段１５の処理例を説明する。
【０１４６】
図３３は図２２のステップＳ５１の詳細な処理を示すフローチャートである。先ず、全体構造組立手段１５は、部分構造格納手段１４から完全構造になっている部分構造を全て抽出する（Ｓ１６０）。次に、１つの完全構造に注目し（Ｓ１６１）、図２５のステップＳ８１と同様に無矛盾性のチェックを行う（Ｓ１６２）。そして、矛盾があれば候補構造から除外し、矛盾がなければ、図２５のステップＳ８５と同様にスコアを算出し（Ｓ１６３、Ｓ１６４）、図２５のステップＳ８６と同様に候補格納手段１６へ出力する（Ｓ１６５）。１つの完全構造について処理し終えると、部分構造格納手段１４から抽出した次の完全構造について同様の処理を繰り返し、全ての完全構造について処理し終えると（Ｓ１６６でＹＥＳ）、図３３の処理を終了する。
【０１４７】
以上本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、全体構造組立手段１５は、部分構造推定手段１３で推定された部分構造を完全構造とそうでない構造とに分け、それぞれ別々に処理したが、完全構造のものをそうでない構造のものと一緒に処理することもできる。この場合、図２２におけるステップＳ５１、Ｓ５２は省略され、ステップＳ５３では完全構造をも含めてフォーカスノードを選定する。このとき、前述したフォーカスノード選定基準に漏れた完全構造が存在した場合、その完全構造をフォーカスノードに含ませておく。そして、図２４のステップＳ６１の直後にフォーカスノードが完全構造か否かを判定するステップを設け、完全構造であれば図２５のステップＳ８１〜Ｓ８６（但し、Ｓ８３は除く）を実行して、当該フォーカスノードに対する処理を終えるようにすれば良い。
【０１４８】
【発明の効果】
以上説明したように本発明によれば、２Ｄ−ＮＭＲスペクトルを用いた有機化合物の構造推定における組み立て工数の削減が可能となり、効率の良い構造推定が実現できる。その理由は、知識ベースには、プロトンの結合した炭素原子が１原子以上つらなる部分を基幹部分として含む部分構造がその二次元プロトンＮＭＲ情報に対応付けて蓄積されているため、未知有機化合物から測定された二次元プロトンＮＭＲ情報におけるクロスピークのつながり全体と知識ベース中の各部分構造における二次元プロトンＮＭＲ情報との照合が可能となり、未知有機化合物に含まれる可能性のある部分構造の推定段階で従来システムに比べてよりサイズの大きな部分構造を直ちに推定でき、その分、後の組み立て工数の削減が可能になるためである。
【０１４９】
有機化合物中の同じ芳香族環に属する基幹部分を持つ複数の部分構造を一つの部分構造として知識ベースに蓄積したことにより、未知有機化合物が多数の芳香族環を含む場合の部分構造の推定数を削減でき、後の完全構造の組み立てにおける組み合わせの爆発を防ぐことができる。
【０１５０】
部分構造の推定において、知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるピークについては、マッチするピークが前記入力された二次元プロトンＮＭＲ情報中に存在しない場合でもマッチしたものと判定し、また、知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるヘテロ原子に結合したプロトンにかかるクロスピークおよびジェミナルプロトンにかかるクロスピークについては、マッチするクロスピークが前記入力された二次元プロトンＮＭＲ情報中の存在しない場合でもマッチしたものと判定することにより、理論的にはピークの出現が期待されているが、実際には測定されない場合があり得るヘテロ原子に結合したプロトンやジェミナルプロトンを含む未知有機化合物の部分構造を漏れなく推定することができる。
【０１５１】
他方、部分構造の推定において、知識ベース中の部分構造の二次元プロトンＮＭＲ情報におけるクロスピークを構成するピークが、前記入力された二次元プロトンＮＭＲ情報における同じプロトン数のピークにマッチする場合、部分構造の当該ピークとクロスピークを成すピークとして、当該部分構造が持つピークのみが前記入力された二次元プロトンＮＭＲ情報に存在するか否かを検査することにより、部分構造の推定数をより一層削減することができる。
【０１５２】
部分構造の推定において、構造推定対象となる有機化合物に含まれる可能性のある部分構造毎に、当該部分構造が前記構造推定対象となる有機化合物に含まれる可能性のある個数を求めることができ、後の全体組み立てに利用することで効率の良い組み立てが可能となる。
【０１５３】
全体構造の組み立てにおいて、入力の二次元プロトンＮＭＲ情報中の各クロスピーク毎に、そのクロスピークにマッチするクロスピークを持つ部分構造の集合を生成し、その部分構造の集合の何れか１つを、全体構造を組み立てる際の出発点となる部分構造に選定することにより、推定された全ての部分構造を組み立ての出発点とする場合および入力のピークに着目して出発部分構造を選定する方法に比べて重複する完全構造の組み立て数が減り、全体構造の組み立て時間を短縮することができる。更に、生成した部分構造の集合毎に、その部分構造の集合を全体構造を組み立てる際の出発点となる部分構造に選定した際の優劣をコンピューティング時間の面から評価し、最も評価の高い部分構造の集合を、全体構造を組み立てる際の出発点となる部分構造に選定することにより、より一層の効率化が可能となる。
【０１５４】
全体構造の組み立てにおける部分構造どうしの重ね合わせに際して、一方の部分構造中の疑似原子と他方の部分構造中の疑似原子またはプロトンの結合した炭素原子とを重ね合わせのスタート点として重ね合わせを試行することにより、任意の原子対をスタート点として重ね合わせを試行する場合に比べて、重ね合わせ可能か否かを高速に判定することができる。
【０１５５】
全体構造の組み立てにおいて、組み立ての樹のノードから、より大きな部分構造を生成するために当該ノードに部分構造を重ね合わせる処理を行う前に、当該部分構造の二次元プロトンＮＭＲ情報と当該ノードの二次元プロトンＮＭＲ情報とを統合した二次元プロトンＮＭＲ情報が前記入力された二次元プロトンＮＭＲ情報に矛盾しないかどうかをチェックし、矛盾する場合には重ね合わせ処理を行わないことで、無駄な重ね合わせ処理を削減でき、処理の効率化が可能となる。
【０１５６】
全体構造の組み立てにおいて、深さ方向優先探索によって組み立ての樹を探索し、且つ、バックトラック時に直前に重ね合わせた部分構造を差し引くことにより直前のノードを動的に生成することにより、限られた容量のメモリを使って組み立ての樹の探索が行える。
【図面の簡単な説明】
【図１】本発明の一実施の形態にかかる構造推定システムのブロック図である。
【図２】知識ベース構築手段のブロック図である。
【図３】知識ベース構築手段の全体処理の一例を示すフローチャートである。
【図４】化合物データベース中の化合物ファイルの例を示す図である。
【図５】図４の化合物ファイルに対応する有機化合物の構造式を示す図である。
【図６】部分構造抽出手段の処理例を示すフローチャートである。
【図７】有機化合物の全体構造を基幹部分と非基幹部分に分割する例を示す図である。
【図８】有機化合物の全体構造から１つの部分構造を抽出する例を示す図である。
【図９】有機化合物の全体構造から別の部分構造を抽出する例を示す図である。
【図１０】有機化合物の全体構造から他の部分構造を抽出する例を示す図である。
【図１１】同じ芳香族環に属する基幹部分を持つ部分構造を１つの部分構造に統合する説明図である。
【図１２】修飾結合表の説明図である。
【図１３】修飾結合表の具体例を示す図である。
【図１４】修飾結合表の規範化処理例の説明図である。
【図１５】規範化された部分構造ＩＤ番号の説明図である。
【図１６】登録更新手段の処理例を示すフローチャートである。
【図１７】知識ベースの構成例を示す図である。
【図１８】未知の有機化合物のスペクトル情報を含む入力データの例を示す図である。
【図１９】部分構造推定手段の処理例を示すフローチャートである。
【図２０】図１９のステップＳ３３の処理例を示すフローチャートである。
【図２１】部分構造格納手段の構成例を示す図である。
【図２２】全体構造組立手段の全体処理例を示すフローチャートである。
【図２３】組み立ての樹の概念を示す図である。
【図２４】図２２のステップＳ５５の処理例の一部を示すフローチャートである。
【図２５】図２２のステップＳ５５の処理例の残りの部分を示すフローチャートである。
【図２６】図２４のステップＳ６６の処理例を示すフローチャートである。
【図２７】候補格納手段の構成例を示す図である。
【図２８】部分構造どうしの重ね合わせの説明図である。
【図２９】図２６のステップＳ９１の処理例を示すフローチャートである。
【図３０】図２９のステップＳ１０５の処理例を示すフローチャートである。
【図３１】図２８の部分構造Ａの原子番号４の原子と部分構造Ｂの原子番号４の原子とをスタート点とした際の重ね合わせ判定の流れを示す図である。
【図３２】フォーカスノードの選定処理の一例を示すフローチャートである。
【図３３】図２２のステップＳ５１の処理例を示すフローチャートである。
【図３４】２Ｄ−ＮＭＲスペクトルの一つの例であるＨ−ＨＣＯＳＹスペクトルの説明図である。
【図３５】従来の知識ベース構築方法の説明図である。
【符号の説明】
１…構造推定システム
１１…知識ベース構築手段
１２…入力手段
１３…部分構造推定手段
１４…部分構造格納手段
１５…全体構造組立手段
１６…候補格納手段
１７…出力手段
２…化合物データベース
３…知識ベース
４…入力装置
５…出力装置
【図１】
0003725768.tif 000005
【図２】
0003725768.tif 000006
【図３】
0003725768.tif 000007
【図４】
0003725768.tif 000008
【図５】
0003725768.tif 000009
【図６】
0003725768.tif 000010
【図７】
0003725768.tif 000011
【図８】
0003725768.tif 000012
【図９】
0003725768.tif 000013
【図１０】
0003725768.tif 000014
【図１１】
0003725768.tif 000015
【図１２】
0003725768.tif 000016
【図１３】
0003725768.tif 000017
【図１４】
0003725768.tif 000018
【図１５】
0003725768.tif 000019
【図１６】
0003725768.tif 000020
【図１７】
0003725768.tif 000021
【図１８】
0003725768.tif 000022
【図１９】
0003725768.tif 000023
【図２０】
0003725768.tif 000024
【図２１】
0003725768.tif 000025
【図２２】
0003725768.tif 000026
【図２３】
0003725768.tif 000027
【図２４】
0003725768.tif 000028
【図２５】
0003725768.tif 000029
【図２６】
0003725768.tif 000030
【図２７】
0003725768.tif 000031
【図２８】
0003725768.tif 000032
【図２９】
0003725768.tif 000033
【図３０】
0003725768.tif 000034
【図３１】
0003725768.tif 000035
【図３２】
0003725768.tif 000036
【図３３】
0003725768.tif 000037
【図３４】
0003725768.tif 000038
【図３５】
0003725768.tif 000039