以下に添付図面を参照して、この発明にかかる情報提供装置、情報提供プログラムおよび情報提供方法の実施の形態を詳細に説明する。
(化合物の命名法)
まず、本実施の形態において使用する化合物の命名法について説明する。ここで、化合物とは、2種類以上の元素からできている化学物質のことである。化合物は、例えば、有機化合物と無機化合物とに分類される。
有機化合物は、炭素原子を構造の基本骨格に持つ化合物の総称である。有機化合物は、分子構造の違いによって、例えば、直鎖炭化水素、芳香族炭化水素、脂環式炭化水素などに分類することができる。なお、骨格を形成する炭素以外の元素として、ケイ素や酸素があり、無機分子と呼ばれる。
また、無機化合物は、有機化合物以外の化合物であり、炭素以外の元素で構成される化合物である。ただし、炭素化合物のうち、例えば、炭素の同素体(例えば、グラファイト、ダイヤモンド)や二酸化炭素は、無機化合物に分類される。以下の説明では、化合物として有機化合物を例に挙げて説明する。
有機化合物は、例えば、炭素骨格の長さや分岐により多様な構造をとる。炭素骨格は、有機化合物において炭素同士が結合している部分である。炭素骨格の長さは、炭素の数によって表される。また、有機化合物は、窒素(N)、酸素(O)、硫黄(S)、燐(P)、ハロゲン(F、Cl、Br、I)などが炭素に結合した多様な官能基が生成される。官能基は、有機化合物のおおよその性質を決める原子団である。
ここで、有機化合物の化合物名は、例えば、IUPAC(International Union of Pure and Applied Chemistry)が定める命名法によって命名される。IUPACが定める命名法としては、例えば、置換命名法、基官能命名法、付加命名法、減去命名法、接合命名法、代置命名法などがある。
本実施の形態では、有機化合物の化合物名が、IUPACが定める置換命名法(substitute nomenclature)によって命名されている場合を想定する。置換命名法において、有機化合物の化合物名は、例えば「結合位置−接頭語−(語頭+語幹+語尾)」という形式で表現される。
また、置換命名法において、(語頭+語幹+語尾)は「母核」と呼ばれ、接頭語は「置換基」と呼ばれる。すなわち、置換命名法では、有機化合物の化合物名は、例えば、「置換基+母核」というルールのもと記述される。母核および置換基は、化合物の部分構造を表す原子団である。
置換基は、有機化合物の系統や命名に使う部分構造であり、母核と対になって使用される概念である。また、母核と置換基は、母核を「親」、置換基を「子」とする親子関係にある。結合位置は、母核の何番目の炭素に置換基が結合しているのかを表している。ただし、結合位置は省略されている場合がある。
また、置換基の中に別の置換基を持つものは「複合置換基」と呼ばれる。複合置換基には、置換基と母核とが含まれる。すなわち、有機化合物の化合物名は、子の中に別の親子関係が存在するという複数世代の親子関係を含む場合がある。有機化合物の化合物名において、複合置換基を表す文字列は、例えば、括弧やかぎ括弧で囲まれている。
本実施の形態では、各世代の親子関係を「1階層」とし、複数世代の親子関係を「階層構造」と表現する場合がある。また、最上位の階層を「第1階層」と表記し、階層が下位になるにしたがって順に「第2階層」、「第3階層」、…、「第n階層」と表記する(n:1以上の自然数)。また、第1〜第n階層のうち任意の階層を「第i階層」と表記する(i=1,2,…,n)。
第i階層には、1つの母核と、1つ以上の置換基が含まれる。ここでは、第i階層に含まれる1つ以上の置換基を「第1置換基」、「第2置換基」、…、「第m置換基」と表記する(m:1以上の自然数)。また、第1〜第m置換基のうち任意の置換基を「第j置換基」と表記する(j=1,2,…,m)。
なお、第i階層に含まれる1つ以上の置換基の番号(1,2,…,m)を、どのような順序で付けるかは任意である。例えば、各置換基の名称のアルファベット順に番号を付けてもよく、また、各置換基が結合する母核の炭素の番号が若い順に番号を付けてもよい。
ここで、有機化合物の化合物名として『2−(3−メチル−4−ヒドロキシフェニル)プロパン』を例に挙げて説明する。この化合物名において、第1階層の母核は「プロパン」、第1置換基は「3−メチル−4−ヒドロキシフェニル」、第1置換基の結合位置は「2」である。
また、第1置換基は括弧で囲まれている複合置換基である。このため、この化合物名には第2階層が存在する。具体的には、第2階層の母核は「フェニル」、第1置換基は「メチル」、第1置換基の結合位置は「3」、第2置換基は「ヒドロキシ」、第2置換基の結合位置は「4」である。第2階層を構成する複合置換基では、表記上、第1階層の母核に近い置換基が親、すなわち、第2階層の母核となり、母核に遠い置換基が子、すなわち、第2階層の置換基となる。
(情報提供方法の一実施例)
つぎに、実施の形態にかかる情報提供方法の一実施例について説明する。図1は、実施の形態にかかる情報提供方法の一実施例を示す説明図である。図1において、情報提供装置100は、化合物の構造式を生成するための情報を提供するコンピュータである。構造式とは、化合物内での原子の結合状態を図示した化学式である。
以下、構造式の生成対象となる対象化合物の化合物名として、ある有機化合物の化合物名「XXXYYYZZZ」を例に挙げて、情報提供装置100の情報提供処理例について説明する。
(1)情報提供装置100は、記憶部110を参照して、対象化合物の化合物名の中から、対象化合物の母核となる部分構造の名称を表す文字列を検出する。ここで、記憶部110は、情報提供装置100がアクセス可能な記憶装置であり、化合物の母核となる部分構造の名称を記憶している。
具体的には、例えば、置換命名法では母核を表す文字列が最後方にくることを利用して、情報提供装置100が、対象化合物の化合物名の末尾からt(t=1,2,3,…)文字の文字列と、記憶部110に記憶されている各々の名称との一致判定を行う。ここでは、対象化合物の化合物名の末尾から3文字の文字列「ZZZ」、記憶部110に記憶されている文字列「ZZZ」と一致する。このため、対象化合物の第1階層の母核を表す文字列「ZZZ」が検出されている。
(2)情報提供装置100は、対象化合物の化合物名のうち、検出した対象化合物の母核を表す文字列を除く残余の文字列の中から、対象化合物の置換基となる部分構造の名称を表す文字列を抽出する。ここでは、対象化合物の化合物名「XXXYYYZZZ」のうち、第1階層の母核を表す文字列「ZZZ」を除く残余の文字列「XXXYYY」が、第1階層の置換基を表す文字列として抽出されている。
この結果、情報提供装置100は、第1階層の母核を表す文字列「ZZZ」と、第1階層の置換基を表す文字列「XXXYYY」とを関連付ける。これにより、第1階層の母核(親)「ZZZ」と置換基(子)「XXXYYY」との親子関係が明らかになる。ここで、第1階層の置換基は、別の置換基を含む複合置換基とする。
(3)情報提供装置100は、記憶部110を参照して、複合置換基を表す文字列の中から、対象化合物の母核を表す文字列を検出する。ここでは、複合置換基を表す文字列の末尾から3文字の文字列「YYY」が、記憶部110に記憶されている文字列「YYY」と一致する。このため、対象化合物の第2階層の母核を表す文字列「YYY」が検出されている。
(4)情報提供装置100は、複合置換基を表す文字列のうち、検出した対象化合物の母核を表す文字列を除く残余の文字列の中から、対象化合物の置換基を表す文字列を抽出する。ここでは、複合置換基を表す文字列「XXXYYY」のうち、第2階層の母核を表す文字列「YYY」を除く残余の文字列「XXX」が、第2階層の置換基を表す文字列として抽出されている。
この結果、情報提供装置100は、第2階層の母核を表す文字列「YYY」と、第2階層の置換基を表す文字列「XXX」とを関連付ける。これにより、第2階層の母核(親)「YYY」と置換基(子)「XXX」との親子関係が明らかになる。また、情報提供装置100は、第2階層の母核を表す文字列「YYY」と、複合置換基であると判定された第1階層の置換基を表す文字列「XXXYYY」とを関連付ける。これにより、第1階層と第2階層との階層構造を辿ることができる。
(5)情報提供装置100は、関連付けた関連付け結果を出力する。関連付け結果によれば、第1および第2階層の母核と置換基との親子関係を特定することができる。また、第2階層の母核と、複合置換基であると判定された第1階層の置換基との関連付けにより、第1階層と第2階層との階層構造を辿ることができる。
この結果、例えば、図1中(6)に示すように、対象化合物の化合物名から、対象化合物に含まれる各々の原子団(母核、置換基)を表す文字列を区別して、原子団同士の階層構造を構築することができる。
このように、情報提供装置100によれば、対象化合物の化合物名と記憶部110に記憶されている母核名とを比較することにより、化合物名の最後方にくる母核を表す文字列を検出することができる。また、情報提供装置100によれば、化合物名のうち母核を表す文字列を除く残余の文字列の中から置換基を表す文字列を抽出することができる。
これにより、対象化合物の化合物名に含まれる母核を表す文字列と置換基を表す文字列とを区別して、第1階層の母核(親)を表す化合物と置換基(子)を表す化合物との親子関係を特定することができる。
また、情報提供装置100によれば、置換基が複合置換基の場合、複合置換基を表す文字列と記憶部110に記憶されている母核名とを比較することにより、第2階層の母核を表す文字列を検出することができる。また、情報提供装置100によれば、複合置換基を表す文字列のうち第2階層の母核を表す文字列を除く残余の文字列の中から第2階層の置換基を表す文字列を抽出することができる。
これにより、第2階層の母核(親)を表す化合物と置換基(子)を表す化合物との親子関係を特定することができる。また、情報提供装置100によれば、第2階層の母核を表す文字列と、複合置換基であると判定された第1階層の置換基を表す文字列とを関連付けることにより、第1階層と第2階層との階層構造を構築することができる。
(情報提供システム200のシステム構成例)
つぎに、実施の形態にかかる情報提供システム200のシステム構成例について説明する。図2は、情報提供システム200のシステム構成例を示す説明図である。図2において、情報提供システム200は、情報提供装置100と、複数のクライアント装置201(図面では、3台)と、を含む。
情報提供システム200において、情報提供装置100およびクライアント装置201は、有線または無線のネットワーク210を介して接続されている。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
ここで、情報提供装置100は、構造解析ルールDB(データベース)220、構造式DB230および階層構造テーブル240を有し、クライアント装置201に情報を提供するコンピュータである。なお、構造解析ルールDB220、構造式DB230および階層構造テーブル240についての詳細な説明は、図4〜図6を用いて後述する。
クライアント装置201は、情報提供システム200のユーザが使用するPC(パーソナル・コンピュータ)、ノートPCなどである。例えば、情報提供システム200において、クライアント装置201から情報提供装置100に対象化合物の化合物名を表すテキストデータが送信されると、対象化合物の構造式を生成するための情報が情報提供装置100からクライアント端末201に送信される。
(情報提供装置100のハードウェア構成例)
図3は、情報提供装置100のハードウェア構成例を示すブロック図である。図3において、情報提供装置100は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、I/F(Interface)308と、ディスプレイ309と、キーボード310と、マウス311と、を有している。また、各構成部はバス300によってそれぞれ接続されている。
ここで、CPU301は、情報提供装置100の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
I/F308は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、I/F308は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F308には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ309は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ309は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード310は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス311は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
なお、情報提供装置100は、上述した構成部のうち、例えば、光ディスクドライブ306、光ディスク307、ディスプレイ309、キーボード310、マウス311などを有していなくてもよい。また、クライアント装置201は、上述した情報提供装置100と同様のハードウェア構成により実現することができる。
(構造解析ルールDB220の記憶内容)
つぎに、構造解析ルールDB220の記憶内容について説明する。構造解析ルールDB220は、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
図4は、構造解析ルールDB220の記憶内容の一例を示す説明図である。図4において、構造解析ルールDB220は、ルールID、ルール名、ルール内容および付記のフィールドを有する。各フィールドに情報を設定することで、ルール情報(例えば、ルール情報400−1〜400−8)がレコードとして記憶されている。
ここで、ルールIDは、構造解析ルールの識別子である。構造解析ルールは、化合物の構造を解析するための決まりごとを規定したものである。ルール名は、構造解析ルールの名称である。ルール内容は、構造解析ルールの内容である。付記は、構造解析ルールのルール内容の補足である。
ルール情報400−1を例に挙げると、ルール1のルール名「有機化合物」およびルール内容「親子関係が基本である。親は母核、子は置換基となる。」が示されている。ルール情報400−1によれば、情報提供装置100は、有機化合物は親子関係が基本であり、親は母核、子は置換基となることを認識することができる。
また、ルール情報400−2を例に挙げると、ルール2のルール名「母核」、ルール内容「語頭+語幹+語尾の構成である。炭素鎖が第1階層の母核となる。後ろの炭素から番号をつける。」および付記「母核炭素鎖は構造式DBを参照」が示されている。ルール情報400−2によれば、情報提供装置100は、母核は語頭+語幹+語尾の構成であることを認識することができる。また、情報提供装置100は、炭素鎖が第1階層の母核となることを認識することができる。また、情報提供装置100は、炭素番号は後ろの炭素から順に番号をつけることを認識することができる。また、情報提供装置100は、母核炭素鎖は構造式DB230を参照して特定できることを認識することができる。
(構造式DB230の記憶内容)
つぎに、構造式DB230の記憶内容について説明する。構造式DB230は、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
図5は、構造式DB230の記憶内容の一例を示す説明図である。図5において、構造式DB230は、化合物ID、化合物の種類、環フラグ、化合物名、構造式、原子間結合なし構造式および備考のフィールドを有する。各フィールドに情報を設定することで、化合物ごとの構造式情報510−1〜510−K,520−1〜520−Pがレコードとして記憶されている。具体的には、構造式情報510−1〜510−Kは、母核を表す化合物の構造式情報である。また、構造式情報520−1〜520−Pは、置換基を表す化合物の構造式情報である。
ここで、化合物IDは、母核または置換基を表す化合物の識別子である。以下の説明では、母核B1〜BKのうち任意の母核を「母核Bk」と表記する場合がある(例えば、k=1,2,…,K)。また、置換基C1〜CPのうち任意の置換基を「置換基Cp」と表記する場合がある(例えば、p=1,2,…,P)。
化合物の種類は、母核または置換基を表す化合物の種類である。環フラグは、母核または置換基を表す化合物が環構造であるか否かを示すフラグである。環フラグは、環構造の場合「Yes」、環構造ではない場合「No」となる。化合物名は、母核または置換基を表す化合物の名称である。
構造式は、母核または置換基を表す化合物の構造式である。構造式に含まれる各々の炭素元素には、炭素番号が付されている。原子間結合なし構造式は、構造式から原子間の結合を示す価標を除外したものである。備考は、構造式に関する補足情報である。備考フィールドには、例えば、構造式を略記法で表したものなどが設定される。
構造式情報510−1を例に挙げると、母核B1を表す化合物の種類「直鎖炭化水素」、環フラグ「No」、化合物名「メタン」、構造式「CH4」および原子間結合なし構造式「CH4」が示されている。また、構造式「CH4」に含まれる炭素元素「C」には炭素番号「1」が付されている。
構造式情報520−1を例に挙げると、置換基C1を表す化合物の環フラグ「No」、化合物名「メチル」、構造式「CH3−」および原子間結合なし構造式「CH3−」が示されている。また、構造式「CH3−」に含まれる炭素元素「C」には炭素番号「1」が付されている。
なお、図5に示した構造式DB230のデータ構造では、母核B1〜BKの構造式情報510−1〜510−Kと、置換基C1〜CPの構造式情報520−1〜520−Pと、を区別して示したが、これに限らない。例えば、第2階層以降は、置換基C1〜CPも母核となり得るため、構造式DB230において、母核と置換値とを区別することなく、化合物ごとに構造式情報を管理することにしてもよい。
(階層構造テーブル240のデータ構造)
つぎに、階層構造テーブル240のデータ構造について説明する。階層構造テーブル240は、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
図6は、階層構造テーブル240のデータ構造の一例を示す説明図である。図6において、階層構造テーブル240は、階層名、母核の化合物名、母核の構造式、結合位置、第j置換基の化合物名および第j置換基の構造式のフィールドを有する。各フィールドに情報を設定することで、各階層の階層情報がレコードとして記憶される。なお、図面では、第1置換基および第2置換基のフィールドを表示している。
ここで、階層名は、第i階層の名称である。例えば、第1階層の名称は「第1」である。母核の化合物名は、第i階層の母核を表す化合物の名称である。母核の構造式は、第i階層の母核を表す化合物の構造式である。なお、構造式フィールドには、構造式とともに、構造式に含まれる各々の炭素元素に付されている炭素番号も設定される。
結合位置は、第i階層の母核の何番目の炭素に第j置換基が結合しているのかを表す情報である。第j置換基の化合物名は、第i階層の第j置換基を表す化合物の名称である。第j置換基の構造式は、第i階層の第j置換基を表す化合物の構造式である。なお、初期状態では、階層構造テーブル240内の各フィールドには不明フラグ「不明」が設定されている。不明フラグは、各フィールドに設定される情報が不明であることを示している。
(情報提供装置100の機能的構成例)
つぎに、情報提供装置100の機能的構成について説明する。図7は、情報提供装置100の機能的構成を示すブロック図である。図7において、情報提供装置100は、受付部701と、検出部702と、抽出部703と、特定部704と、関連付け部705と、修正部706と、判定部707と、設定部708と、生成部709と、出力部710と、を含む構成である。受付部701〜出力部710は制御部となる機能であり、具体的には、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F308により、その機能を実現する。また、各機能部の処理結果は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
受付部701は、構造式の生成対象となる対象化合物の化合物名を受け付ける機能を有する。具体的には、例えば、受付部701が、対象化合物の化合物名を表すテキストデータをクライアント装置201から受信することにより、対象化合物の化合物名を受け付ける。また、受付部701が、図3に示したキーボード310やマウス311を用いたユーザの操作入力により、対象化合物の化合物名を受け付けることにしてもよい。
また、受付部701が、電子文書の中から化合物名を検出することにより、対象化合物の化合物名を受け付けることにしてもよい。電子文書は、例えば、特許文献や論文などの技術文書である。電子文書は、例えば、情報提供装置100に入力されてRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
検出部702は、構造式DB230を参照して、受け付けられた対象化合物の化合物名の中から、対象化合物の母核となる部分構造の名称を表す文字列を検出する機能を有する。ここで、文字列とは、対象化合物の化合物名において連続する1以上の文字の集合である。上述したように、置換命名法において、化合物の母核を表す文字列は、化合物の化合物名の最後方に記述される。検出部702は、この置換命名法の特徴を利用して、対象化合物の化合物名の中から、対象化合物の母核を表す文字列を検出することができる。
具体的には、例えば、検出部702が、構造式DB230の中から母核Bkの化合物名を選択する。つぎに、検出部702が、選択した母核Bkの化合物名の文字数tを特定する。そして、検出部702が、対象化合物の化合物名の末尾からt文字の文字列と、母核Bkの化合物名とが一致するか否かを判断する。ここで、母核Bkの化合物名と一致する場合、検出部702が、対象化合物の化合物名の末尾からt文字の文字列を、対象化合物の母核を表す文字列として検出する。
また、例えば、検出部702が、「t=1」として、対象化合物の化合物名の末尾からt文字の文字列を検出する。そして、検出部702が、構造式DB230の中から、検出したt文字の文字列と化合物名が一致する母核Bkを検出する。ここで、母核Bkが検出された場合、検出部702が、対象化合物の化合物名の末尾からt文字の文字列を、対象化合物の母核を表す文字列として検出する。一方、母核Bkが検出されなかった場合、検出部702が、「t」をインクリメントして、対象化合物の化合物名の末尾からt文字の文字列を検出することにより処理を繰り返す。なお、「t」が、構造式DB230に登録されている母核を表す化合物の化合物名の最大文字数を超えた場合、対象化合物の母核を表す文字列は非検出となる。
抽出部703は、対象化合物の化合物名のうち、検出された対象化合物の母核を表す文字列を除く残余の文字列の中から、対象化合物の置換基となる部分構造の名称を表す文字列を抽出する機能を有する。また、抽出部703は、対象化合物の母核を表す文字列を除く残余の文字列の中から、対象化合物の置換基が結合する対象化合物の母核の結合位置を表す文字列を抽出することにしてもよい。
ここで、置換命名法において、化合物の置換基は、例えば「結合位置−置換基」という形式で記述される。そこで、まず、抽出部703が、対象化合物の母核を表す文字列を除く残余の文字列を「数字−文字列」の組に分割する。文字列については、括弧に囲まれた部分も一つの文字列とする。そして、抽出部703が、各組の文字列を先頭から順番に第1〜第m置換基の名称として抽出する。また、抽出部703が、各組の数字を先頭から順番に第1〜第m置換基の結合位置として抽出する。
また、第j置換基を表す文字列に倍数接頭辞が含まれている場合、第j置換基が結合する母核の結合位置を表す文字列は、例えば、「数字,数字−文字列」というようにハイフン(−)の前の数字がカンマ(,)で区切られた形となることがある。ここで、倍数接頭辞とは、置換基の名称の前に付いて、置換基の数を示す接頭語である。
例えば、「ジ」は、置換基が2つであることを示す倍数接頭辞である。また、「トリ」は、置換基が3つであることを示す倍数接頭辞である。この場合、抽出部703は、対象化合物の母核を表す文字列を除く残余の文字列を、例えば「数字,数字−文字列」を一組として分割する。すなわち、抽出部703が、第j置換基が結合する母核の結合位置を表す文字列として「数字,数字−」を抽出する。
また、抽出部703は、置換基を表す文字列に倍数接頭辞が含まれている場合、置換基が結合する母核の結合位置を表す文字列と、置換基を表す文字列とを展開することにしてもよい。ここで、展開とは、倍数接頭辞を用いて集約されていた複数の置換基を各々の置換基に分解することである。
具体的には、例えば、抽出部703が、置換基が結合する母核の結合位置を表す文字列に含まれる「数字,」の「,」を「−」に変換する。そして、抽出部703が、「,」が「−」に変換された変換後の文字列を「数字−」ごとに分割するとともに、分割後の「数字−」のうち2番目以降の「数字−」の先頭に「−」を追加する。
この結果、1番目の「数字−」が、1番目の置換基が結合する母核の結合位置となる。また、2番目以降の「−数字−」が、それぞれ2番目以降の置換基が結合する母核の結合位置となる。また、各置換基を表す文字列は、展開前の置換基を表す文字列から倍数接頭辞を削除した文字列となる。なお、倍数接頭辞を含む置換基を表す文字列の展開例については、図12を用いて後述する。
特定部704は、構造式DB230を参照して、検出された対象化合物の母核を表す文字列に対応する構造式を特定する機能を有する。具体的には、例えば、特定部704が、構造式DB230内の構造式情報510−1〜510−Kの中から、対象化合物の母核を表す文字列が化合物名フィールドに設定されている構造式情報510−kを特定する。そして、特定部704が、構造式情報510−kの構造式フィールドに設定されている構造式を特定する。これにより、対象化合物の母核を表す化合物の構造式を特定することができる。
また、特定部704は、構造式DB230を参照して、抽出された対象化合物の置換基を表す文字列に対応する構造式を特定することにしてもよい。具体的には、例えば、特定部704が、構造式DB230内の構造式情報520−1〜520−Pの中から、対象化合物の第j置換基を表す文字列が化合物名フィールドに設定されている構造式情報520−pを特定する。そして、特定部704が、構造式情報520−pの構造式フィールドに設定されている構造式を特定する。これにより、対象化合物の第j置換基を表す化合物の構造式を特定することができる。
関連付け部705は、検出された対象化合物の母核を表す文字列と、抽出された対象化合物の置換基を表す文字列とを関連付ける機能を有する。具体的には、例えば、関連付け部705が、対象化合物の母核を表す文字列と、第j置換基を表す文字列とを対応付けて階層構造テーブル240に登録する。これにより、階層構造テーブル240を参照することにより、対象化合物の母核を表す化合物と置換基を表す化合物との接続関係(親子関係)を特定することができる。
また、関連付け部705は、対象化合物の母核を表す文字列と、特定された対象化合物の母核の構造式とを関連付けることにしてもよい。具体的には、例えば、関連付け部705が、対象化合物の母核を表す文字列と、対象化合物の母核の構造式とを対応付けて階層構造テーブル240に登録する。これにより、階層構造テーブル240を参照することにより、対象化合物の母核を表す化合物の構造式を特定することができる。
また、関連付け部705は、対象化合物の置換基を表す文字列と、特定された対象化合物の置換基の構造式とを関連付けることにしてもよい。具体的には、例えば、関連付け部705が、対象化合物の置換基を表す文字列と、対象化合物の置換基の構造式とを対応付けて階層構造テーブル240に登録する。これにより、階層構造テーブル240を参照することにより、対象化合物の置換基を表す化合物の構造式を特定することができる。
また、関連付け部705は、対象化合物の置換基を表す文字列と、対象化合物の置換基が結合する母核の結合位置を表す文字列とを関連付けることにしてもよい。具体的には、例えば、関連付け部705が、対象化合物の置換基を表す文字列と、対象化合物の置換基が結合する母核の結合位置を表す文字列とを対応付けて階層構造テーブル240に登録する。これにより、階層構造テーブル240を参照することにより、対象化合物の第j置換基が母核の何番目の炭素に結合しているのか特定することができる。なお、階層構造テーブル240の記憶内容については、図8〜図13を用いて後述する。
修正部706は、対象化合物の置換基が結合する母核の結合位置を表す文字列に基づいて、対象化合物の母核の構造式の中から、対象化合物の母核に含まれる炭素のうち置換基が結合する炭素に結合している水素の元素数を修正する機能を有する。対象化合物は、例えば、炭素を構造の基本骨格に持つ有機化合物である。また、母核の構造式に含まれる各々の炭素には、表記上の後ろの炭素から順番に炭素番号が付されている。
ここで、対象化合物の置換基が結合する母核の結合位置を表す文字列を「N」とする。この場合、修正部706が、例えば、母核の構造式に含まれる炭素のうち、N番の炭素番号が付された炭素に結合している水素の元素数を一つ減らす、すなわち、母核の構造式の中から水素を一つ削除する。これにより、母核の構造式のうち置換基の構造式が結合する結合位置の水素を引き抜くことができる。
この場合、関連付け部705は、対象化合物の母核を表す文字列と、水素の元素記号が修正された修正後の対象化合物の母核の構造式とを関連付けることにしてもよい。具体的には、例えば、関連付け部705が、対象化合物の母核を表す文字列と、水素の元素記号が修正された修正後の対象化合物の母核の構造式とを対応付けて階層構造テーブル240に登録する。
なお、上述した説明では、水素の元素数を、母核の構造式から削除する例を述べたが、置換基の結合位置が多重(2または3)結合の場合、修正部706は、開いた結合で置換基と結合しない炭素に水素を1つ付加することにしてもよい。すなわち、修正部706は、置換基の結合位置が単結合の場合、水素を1つ引き抜く(削除)が、多重(2または3)結合の場合、開いた結合で置換基と結合しない炭素に水素を1つ付加する。
例えば、水素を引き抜く場合、修正部706は、置換基の結合位置が「CH」であったら、「H」を削除して「C」とする。また、修正部706は、置換基の結合位置が「CH2」であったら、「2−1=1」のため、「H」を削除して「CH」とする。また、修正部706は、置換基の結合位置が「CH3」であったら、「3−1=1」のため、「H」を削除して「CH2」とする。
例えば、水素を一つ付加する場合、修正部706は、置換基の結合位置が「C」であったら、「H」を追加して「CH」とする。修正部706は、置換基の結合位置が「CH」であったら、「1+1=2」のため、「H」を追加して「CH2」とする。また、修正部706は、置換基の結合位置が「CH2」であったら、「2+1=3」のため、「H」を追加して「CH3」とする。
判定部707は、対象化合物の置換基を表す文字列に基づいて、対象化合物の置換基が別の置換基を含む複合置換基か否かを判定する機能を有する。上述したように、有機化合物の化合物名において、複合置換基を表す文字列は、例えば、括弧やかぎ括弧で囲まれている。このため、判定部707が、対象化合物の置換基を表す文字列が、括弧やかぎ括弧で囲まれた文字列か否かを判定することにより、対象化合物の置換基が複合置換基か否かを判定することができる。
設定部708は、複合置換基であると判定された場合、対象化合物の置換基を表す文字列を対象化合物の化合物名に設定する機能を有する。この場合、検出部702は、構造式DB230を参照して、設定された対象化合物の化合物名の中から、対象化合物の母核となる部分構造の名称を表す文字列を検出することにしてもよい。
これにより、別の置換基を含む複合置換基を新たな構造式の生成対象となる対象化合物として、上記抽出部703、特定部704および関連付け部705等の一連の処理が再帰的に実行され、複合置換基を表す文字列を解析することができる。
ただし、第2階層以降は、検出部702は、例えば、構造式DB230の中から置換基Cpの化合物名を選択する。そして、検出部702が、選択した置換基Cpの化合物名の文字数tを特定する。つぎに、検出部702が、対象化合物の化合物名の末尾からt文字の文字列と、置換基Cpの化合物名とが一致するか否かを判断する。ここで、置換基Cpの化合物名と一致する場合、検出部702が、対象化合物の化合物名の末尾からt文字の文字列を、対象化合物の母核を表す文字列として検出する。
この場合、関連付け部705は、検出された対象化合物の母核を表す文字列と、複合置換基であると判定された置換基を表す文字列とを関連付けることにしてもよい。具体的には、例えば、関連付け部705が、第(i+1)階層の母核を表す文字列と、第i階層の複合置換基を表す文字列とを対応付けて階層構造テーブル240に登録する。これにより、階層構造テーブル240を参照することにより、第i階層の複合置換基と、第(i+1)階層の母核との対応関係を特定して、第i階層と第(i+1)階層との階層構造を構築することができる。
生成部709は、関連付けられた関連付け結果に基づいて、対象化合物の構造式を生成する機能を有する。対象化合物の構造式とは、例えば、対象化合物内での原子または原子団の結合状態を図示した化学式である。具体的には、例えば、生成部709が、階層構造テーブル240に記憶されている階層情報に基づいて、対象化合物の構造式を生成する。
より具体的には、例えば、生成部709が、階層構造テーブル240内の第i階層の母核の構造式と第j置換基の構造式とを参照することにより、第i階層における母核と第j置換基との親子関係を表す構造式を生成することができる。また、生成部709が、階層構造テーブル240内の第j置換基の結合位置を参照することにより、母核の構造式と第j置換基の構造式とを適切な結合位置で結合することができる。
また、例えば、生成部709が、階層構造テーブル240内の第i階層の母核の構造式と、第(i+1)階層の母核の構造式と第j置換基の構造式とを参照することにより、第i階層と第(i+1)階層との階層構造を表す構造式を生成することができる。なお、対象化合物の構造式の具体例については、図14および図15を用いて後述する。
出力部710は、関連付けられた関連付け結果を出力する機能を有する。出力形式としては、例えば、ディスプレイ309への表示、プリンタ(不図示)への印刷出力、I/F308による外部装置への送信がある。また、RAM303、磁気ディスク305、光ディスク307などの記憶領域に記憶することとしてもよい。
具体的には、例えば、出力部710が、階層構造テーブル240に記憶されている階層情報を、対象化合物の化合物名を表すテキストデータの送信元となるクライアント装置201に送信することにしてもよい。これにより、対象化合物の構造式を生成するための階層情報をクライアント装置201に提供することができる。
また、出力部710は、生成された対象化合物の構造式を出力することにしてもよい。具体的には、例えば、出力部710が、生成された対象化合物の構造式を表示するための画像情報を、対象化合物の化合物名を表すテキストデータの送信元となるクライアント装置201に送信することにしてもよい。この結果、クライアント装置201において、生成された対象化合物の構造式がディスプレイ(不図示)に表示される。なお、対象化合物の構造式の表示例については、図14および図15を用いて後述する。
上述した説明では、対象化合物の化合物名の中から母核を表す文字列が検出される場合について説明したが、対象化合物の母核を表す化合物の化合物名が構造式DB230に未登録のため、対象化合物の母核を表す文字列が検出されない場合がある。
この場合、抽出部703は、対象化合物の化合物名の中から、対象化合物の母核を表す文字列と置換基を表す文字列とが連結された連結文字列を抽出することにしてもよい。具体的には、例えば、まず、抽出部703が、対象化合物の化合物名を「数字−文字列」の組に分割する。そして、抽出部703が、各組の文字列を先頭から順番に第1〜第m置換の名称として抽出する。この際、抽出部703が、第m置換の名称として抽出した文字列を連結文字列として抽出する。
この場合、検出部702は、構造式DB230を参照して、抽出された連結文字列の中から、対象化合物の置換基を表す文字列を検出することにしてもよい。具体的には、例えば、検出部702が、構造式DB230の中から置換基Cpの化合物名を選択する。つぎに、検出部702が、選択した置換基Cpの化合物名の文字数sを特定する。そして、検出部702が、連結文字列の先頭からs文字の文字列と、置換基Cpの化合物名とが一致するか否かを判断する。ここで、置換基Cpの化合物名と一致する場合、検出部702が、連結文字列の先頭からs文字の文字列を、対象化合物の第m置換基を表す文字列として検出する。
また、例えば、検出部702が、「s=1」として、連結文字列の先頭からs文字の文字列を検出する。そして、検出部702が、構造式DB230の中から、検出したs文字の文字列と化合物名が一致する置換基Cpを検出する。ここで、置換基Cpが検出された場合、検出部702が、連結文字列の先頭からs文字の文字列を、対象化合物の第m置換基を表す文字列として検出する。一方、置換基Cpが検出されなかった場合、検出部702が、「s」をインクリメントして、連結文字列の先頭からs文字の文字列を検出することにより処理を繰り返す。なお、「s」が、構造式DB230に登録されている置換基を表す化合物の化合物名の最大文字数を超えた場合、第m置換基を表す文字列は非検出となる。
ここで、連結文字列のうち、検出された第m置換基を表す文字列を除く残余の文字列は、対象化合物の母核を表す文字列と推定することができる。このため、関連付け部705は、連結文字列のうち第m置換基を表す文字列を除く残余の文字列を対象化合物の母核を表す文字列として、第m置換基を表す文字列と関連付けることにしてもよい。
このように、対象化合物の母核を表す文字列が非検出となっても、第m置換基を表す化合物の化合物名が構造式DB230に登録されていれば、連結文字列から第m置換基を表す文字列を除くことで、対象化合物の母核を表す文字列を特定することができる。
(階層構造テーブル240の記憶内容の変遷例)
つぎに、図8〜図13を用いて、階層構造テーブル240の記憶内容の変遷例について説明する。図8〜図13は、階層構造テーブル240の記憶内容の変遷例を示す説明図である。ここでは、対象化合物の化合物名として「2−(3,4−ジメチルフェニル)プロパン」が受け付けられた場合を例に挙げて説明する。
図8の(8−1)において、対象化合物の化合物名「2−(3,4−ジメチルフェニル)プロパン」の末尾から4文字(t=4)の文字列と、構造式DB230内の母核B3の化合物名「プロパン」とが一致する。このため、第1階層の母核を表す末尾から4文字の文字列「プロパン」が、母核の化合物名フィールドに登録されている。なお、「プロパン」は語頭がない「語幹+語尾」の場合の例である。この結果、第1階層の階層情報800−1がレコードとして記憶されている。
図8の(8−2)において、構造式DB230の中から第1階層の母核を表す文字列「プロパン」に対応する母核B3の構造式が特定された結果、母核B3の構造式が、第1階層の母核の構造式フィールドに登録されている。この構造式に含まれる各々の炭素元素には炭素番号が付されている。なお、母核B3の環フラグが「Yes」の場合、階層構造テーブル240に登録された母核B3の構造式の前に環情報(例えば、「環」という文字)が挿入される。ここでは、母核B3の環フラグが「No」のため環情報は挿入されていない。
図9の(8−3)において、対象化合物の化合物名のうち第1階層の母核を表す文字列を除く残余の文字列が「数字−文字列」の組に分割された結果、文字列「3,4−ジメチルフェニル」が、第1階層の第1置換基の化合物名フィールドに登録されている。また、数字「2−」が、第1階層の第1置換基の結合位置フィールドに登録されている。
図9の(8−4)において、第1階層の母核の構造式に含まれる炭素のうち、第1置換基が結合する2番目の炭素に結合している水素の元素記号が1つ削除されている。なお、ここでは階層構造テーブル240に登録されている母核の構造式の中から水素の元素記号を修正する場合について説明したが、水素の元素記号が修正された修正後の構造式を、母核の構造式フィールドに登録することにしてもよい。
図10の(8−5)において、第1階層の第1置換基は、対象化合物の化合物名において第1置換基を表す文字列が括弧で囲まれた複合置換基である。また、第1置換基の化合物名「3,4−ジメチルフェニル」の末尾から4文字(t=4)の文字列と、構造式DB230内の置換基C2の化合物名「フェニル」とが一致する。このため、第2階層の母核を表す末尾から4文字の文字列「フェニル」が、母核の化合物名フィールドに登録されている。この結果、第2階層の階層情報800−2がレコードとして記憶されている。
図10の(8−6)において、構造式DB230の中から第2階層の母核を表す文字列「フェニル」に対応する置換基C2の構造式が特定された結果、置換基C2の構造式が、第2階層の母核の構造式フィールドに登録されている。この構造式に含まれる各々の炭素元素には炭素番号が付されている。また、置換基C2の環フラグが「Yes」のため、置換基C2の構造式の前に環情報「環」が挿入されている。
図11の(8−7)において、複合置換基を表す文字列のうち第2階層の母核を表す文字列を除く残余の文字列が「数字−文字列」の組に分割された結果、文字列「ジメチル」が、第2階層の第1置換基の化合物名フィールドに登録されている。また、数字「3,4−」が、第2階層の第1置換基の結合位置フィールドに登録されている。
図11の(8−8)において、第2階層の母核の構造式に含まれる炭素のうち、第1置換基が結合する3番目の炭素に結合している水素の元素記号が1つ削除されている。また、第2階層の母核の構造式に含まれる炭素のうち、第1置換基が結合する4番目の炭素に結合している水素の元素記号が1つ削除されている。
図12の(8−9)において、第2階層の第1置換基を表す文字列「ジメチル」に倍数接頭辞「ジ」が含まれているため、第1置換基の結合位置フィールドに登録されている数字「3,4−」が数字「3−4−」に変換される。そして、数字「3−4−」が数字「3−」と数字「4−」とに分割された結果、1番目の数字「3−」が、第2階層の第1置換基の結合位置フィールドに登録されている。また、2番目の数字「4−」の先頭に「−」が追加された結果、数字「−4−」が、第2階層の第2置換基の結合位置フィールドに登録されている。
図12の(8−10)において、第2階層の第1置換基を表す文字列「ジメチル」から倍数接頭辞「ジ」が削除された削除後の文字列「メチル」が、第2階層の第1置換基および第2置換基の化合物名フィールドに登録されている。
図13の(8−11)において、構造式DB230の中から第2階層の第1置換基を表す文字列「メチル」に対応する置換基C1の構造式が特定された結果、置換基C1の構造式が、第2階層の第1置換基の構造式フィールドに登録されている。同様に、置換基C1の構造式が、第2階層の第2置換基の構造式フィールドに登録されている。なお、置換基C1の環フラグは「No」のため環情報は挿入されていない。
この結果、階層情報800−1によれば、第1階層における母核「プロパン」と第1置換基「3,4−ジメチルフェニル」との親子関係を特定することができる。また、母核「プロパン」の構造式を特定することができる。また、第1置換基「3,4−ジメチルフェニル」の構造式が不明であることを特定することができる。また、第1置換基「3,4−ジメチルフェニル」が母核「プロパン」の2番目の炭素に結合していることを特定することができる。
この結果、階層情報800−2によれば、第2階層における母核「フェニル」と、第1置換基「メチル」および第2置換基「メチル」との親子関係を特定することができる。また、母核「フェニル」の構造式を特定することができるとともに、母核「フェニル」の構造式が環構造であることを特定することができる。また、第1置換基「メチル」および第2置換基「メチル」の構造式を特定することができる。また、第1置換基「メチル」が母核「フェニル」の3番目の炭素に結合しており、第2置換基「メチル」が母核「フェニル」の4番目の炭素に結合していることを特定することができる。また、階層情報800−1,800−2によれば、第1階層と第2階層との階層間のつながりを特定することができ、第1階層および第2階層の階層構造を構築することができる。
(対象化合物の構造式の表示例)
つぎに、図14および図15を用いて、対象化合物の構造式の表示例について説明する。図14および図15に示す表示例1〜表示例7は、クライアント装置201のディスプレイ(不図示)や情報提供装置100のディスプレイ309に表示される対象化合物の構造式の一例である。
図14は、対象化合物の構造式の表示例を示す説明図である。図14において、図13に示した階層構造テーブル240に記憶されている階層情報800−1,800−2に基づいて生成された対象化合物(化合物名:2−(3,4−ジメチルフェニル)プロパン)の構造式の表示例1〜5が示されている。
表示例1において、構造式1410は、対象化合物の構造式であり、構造式1411〜1414から構成されている。構造式1411は、第1階層の母核を表す「プロパン」の構造式である。構造式1412は、第2階層の母核を表す「フェニル」の構造式である。構造式1413は、第2階層の第1置換基を表す「メチル」の構造式である。構造式1414は、第2階層の第2置換基を表す「メチル」の構造式である。
構造式1410によれば、対象化合物の基礎となる第1階層の母核を表す構造式1411を基点として、上から下に向かって構造式1412〜1414が表示されるため、ユーザが、対象化合物の構造の成り立ちを理解し易くなる。また、各構造式1411〜1414に含まれる官能基を区別し易くなり、対象化合物の特性を把握し易くなる。
また、構造式1410によれば、構造式1411の2番目の炭素に構造式1412が結合されていることを認識することができる。また、構造式1412の3番目の炭素に構造式1413が結合されていることを認識することができる。また、構造式1412の4番目の炭素に構造式1414が結合されていることを認識することができる。また、構造式1412の前に挿入されている環情報「環」から、構造式1412が環構造であることを認識することができる。
表示例2において、構造式1420は、対象化合物の構造式であり、表示例1に示した構造式1410を反転表示したものである。
表示例3において、構造式1420は、対象化合物の構造式であり、構造式1431〜1434から構成されている。構造式1431は、第1階層の母核を表す「プロパン」の構造式であり、炭素間の結合を表す価標が省略されたものである。構造式1432は、第2階層の母核を表す「フェニル」の構造式であり、炭素間の結合を表す価標が省略されたものである。構造式1433は、第2階層の第1置換基を表す「メチル」の構造式である。構造式1434は、第2階層の第2置換基を表す「メチル」の構造式である。
構造式1430によれば、対象化合物の基礎となる第1階層の母核を表す構造式1431を基点として、上から下に向かって構造式1432〜1434が表示されるため、ユーザが、対象化合物の構造の成り立ちを理解し易くなる。
表示例4において、構造式1440は、対象化合物の構造式であり、構造式1441〜1444から構成されている。構造式1441は、第1階層の母核を表す「プロパン」の構造式である。構造式1442は、第2階層の母核を表す「フェニル」の構造式である。構造式1443は、第2階層の第1置換基を表す「メチル」の構造式である。構造式1444は、第2階層の第2置換基を表す「メチル」の構造式である。
構造式1440によれば、同一階層で親子関係を構築する母核と置換基とをそれぞれ表す構造式が同一円内に表示されるため、ユーザが各階層の親子関係を把握し易くなる。例えば、第2階層で親子関係を構築する母核「フェニル」、第1置換基「メチル」および第2置換基「メチル」をそれぞれ表す構造式1442〜1444が同一円内に表示されるため、第2階層の親子関係を把握し易くなる。
表示例5において、構造式1450は、対象化合物の構造式であり、構造式1451〜1454から構成されている。構造式1451は、第1階層の母核を表す「プロパン」の構造式であり、炭素間の結合を表す価標が省略されたものである。構造式1452は、第2階層の母核を表す「フェニル」の構造式であり、炭素間の結合を表す価標が省略されたものである。構造式1453は、第2階層の第1置換基を表す「メチル」の構造式である。構造式1454は、第2階層の第2置換基を表す「メチル」の構造式である。
構造式1450によれば、同一階層で親子関係を構築する母核と置換基とをそれぞれ表す構造式が同一円内に表示されるため、ユーザが各階層の親子関係を把握し易くなる。なお、構造式が不明な母核や置換基については、ブラックボックス化して表示されることにしてもよい。例えば、母核の構造式の代わりに、構造式が不明な母核を表す化合物の化合物名が示されたボックスが表示されることにしてもよい。
化合物名が不明な母核や置換基についてもブラックボックス化して表示することにより、対象化合物の全体の構造から化合物名が不明な母核や置換基を推定できた場合などに、対象化合物の化合物名に含まれる母核や置換基を表す化合物名の誤記を判別し易くなる。
図15は、複数の対象化合物の構造式の表示例を示す説明図である。図15において、表示例6は、第1〜第4の対象化合物の各々の構造式1511〜1514を示す表示例である。表示例6において、第2〜第4の対象化合物の構造式1512〜1514のうち、第1の対象化合物の構造式1511との差分を表す構造式1515〜1518が強調表示されている。表示例6によれば、第1の対象化合物の構造式1511との差分を表す構造式1515〜1518が強調表示されているため、ユーザが、第1の対象化合物と、第2〜第4の対象化合物との構造の違いを把握し易くなる。
また、表示例7は、第1の対象化合物の構造式1511、および第1の対象化合物の構造式1511と第2〜第4の対象化合物の構造式1512〜1514(表示例6参照)との差分を表す構造式1515〜1518を示す表示例である。表示例7によれば、構造式1511との差分を表す構造式1515〜1518のみが表示されているため、ユーザが、第1の対象化合物と、第2〜第4の対象化合物との構造の違いを把握し易くなる。
なお、図示は省略するが、構造式が不明な部分をブラックボックス化してハイライト表示したり、対象化合物間において同一または差分となる部分を同心円から切り出して表示することにしてもよい。
(情報提供装置100の情報提供処理手順)
つぎに、情報提供装置100の情報提供処理手順について説明する。図16は、情報提供装置100の情報提供処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、CPU301により、構造式の生成対象となる対象化合物の化合物名を受け付けたか否かを判断する(ステップS1601)。
ここで、CPU301により、対象化合物の化合物名を受け付けるのを待つ(ステップS1601:No)。そして、CPU301により、対象化合物の化合物名を受け付けた場合(ステップS1601:Yes)、CPU301により、構造解析ルールDB220を読み込む(ステップS1602)。
つぎに、CPU301により、構造式登録処理を実行する(ステップS1603)。つぎに、CPU301により、対象化合物の構造式を生成する(ステップS1604)。そして、CPU301により、階層構造テーブル240の記憶内容と対象化合物の構造式とを出力して(ステップS1605)、本フローチャートによる一連の処理を終了する。
これにより、対象化合物の構造の成り立ちを把握するための情報を出力することができる。
つぎに、図16に示したステップS1603の構造式登録処理の具体的な処理手順について説明する。以下の説明において、第i階層の「i」は、初期状態では「i=1」とする。
図17は、構造式登録処理の具体的処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、CPU301により、第i階層の母核構造式登録処理を実行する(ステップS1701)。
つぎに、CPU301により、第i階層の第j置換基の「j」を「j=1」として(ステップS1702)、第1〜第m置換基の中から第j置換基を選択する(ステップS1703)。そして、CPU301により、第j置換基が複合置換基か否かを判定する(ステップS1704)。
ここで、第j置換基が複合置換基ではない場合(ステップS1704:No)、CPU301により、置換基構造式登録処理を実行する(ステップS1705)。そして、CPU301により、第j置換基の「j」をインクリメントして(ステップS1706)、「j」が「m」より大きくなったか否かを判断する(ステップS1707)。
ここで、「j」が「m」以下の場合(ステップS1707:No)、ステップS1703に戻る。一方、「j」が「m」より大きくなった場合(ステップS1707:Yes)、構造式登録処理を終了し、構造式登録処理を呼び出したステップへ戻る。第1階層の構造式登録処理が終わった場合には、図16に示したステップS1604に移行する。
また、ステップS1704において、第j置換基が複合置換基の場合(ステップS1704:Yes)、CPU301により、第(i+1)階層の対象化合物の化合物名として、第j置換基の化合物名を設定する(ステップS1708)。そして、CPU301により、第(i+1)階層の構造式登録処理を実行して(ステップS1709)、ステップS1706に移行する。
これにより、第j置換基が複合置換基の場合、第j置換基の化合物名を第(i+1)階層の対象化合物の化合物名として構造式登録処理を再帰的に実行することができる。
つぎに、図17に示したステップS1701の母核構造式登録処理の具体的な処理手順について説明する。
図18および図19は、母核構造式登録処理の具体的処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、CPU301により、母核Bkの「k」を「k=1」とする(ステップS1801)。
つぎに、CPU301により、構造式DB230の中から母核Bkの化合物名を選択する(ステップS1802)。そして、CPU301により、母核Bkの化合物名の文字数tを特定する(ステップS1803)。
つぎに、CPU301により、対象化合物の化合物名の末尾からt文字の文字列と、母核Bkの化合物名とが一致するか否かを判断する(ステップS1804)。ここで、母核Bkの化合物名と一致する場合(ステップS1804:Yes)、CPU301により、第i階層の母核の化合物名として母核Bkの化合物名を階層構造テーブル240に登録する(ステップS1805)。
つぎに、CPU301により、構造式DB230に母核Bkの構造式と炭素番号とがあるか否かを判断する(ステップS1806)。ここで、母核Bkの構造式と炭素番号とがない場合(ステップS1806:No)、ステップS1808に移行する。
一方、構造式DB230に母核Bkの構造式と炭素番号とがある場合(ステップS1806:Yes)、CPU301により、第i階層の母核の構造式と炭素番号として、母核Bkの構造式と炭素番号とを階層構造テーブル240に登録する(ステップS1807)。
つぎに、CPU301により、対象化合物の化合物名のうち第i階層の母核の化合物名を除く残余の文字列を「数字−文字列」の組に分割する(ステップS1808)。そして、CPU301により、各組の文字列を先頭から順番に第1〜第m置換基の化合物名として階層構造テーブル240に登録する(ステップS1809)。
つぎに、CPU301により、各組の数字を先頭から順番に第1〜第m置換基の結合位置として階層構造テーブル240に登録する(ステップS1810)。そして、CPU301により、母核の構造式から各置換基の結合位置の水素の元素記号を一つ修正して(ステップS1811)、図17に示したステップS1702に移行する。
また、ステップS1804において、母核Bkの化合物名と不一致の場合(ステップS1804:No)、CPU301により、母核Bkの「k」をインクリメントして(ステップS1812)、「k」が「K」より大きくなったか否かを判断する(ステップS1813)。
ここで、「k」が「K」以下の場合(ステップS1813:No)、ステップS1802に戻る。一方、「k」が「K」より大きくなった場合(ステップS1813:Yes)、図19に示すステップS1901に移行する。
図19のフローチャートにおいて、まず、CPU301により、対象化合物の化合物名を「数字−文字列」の組に分割する(ステップS1901)。そして、CPU301により、各組の文字列を先頭から順番に第1〜第m置換基の化合物名として階層構造テーブル240に登録する(ステップS1902)。
つぎに、CPU301により、各組の数字を先頭から順番に第1〜第m置換基の結合位置として階層構造テーブル240に登録する(ステップS1903)。そして、CPU301により、置換基Cpの「p」を「p=1」として(ステップS1904)、構造式DB230の中から置換基Cpの化合物名を選択する(ステップS1905)。
つぎに、CPU301により、置換基Cpの化合物名の文字数sを特定する(ステップS1906)。そして、CPU301により、第m置換基の化合物名の先頭からs文字の文字列と、置換基Cpの化合物名とが一致するか否かを判断する(ステップS1907)。
ここで、置換基Cpの化合物名と一致する場合(ステップS1907:Yes)、CPU301により、第i階層の母核の化合物名として、第m置換基の化合物名のうち先頭からs文字を除く残余の文字列を階層構造テーブル240に登録する(ステップS1908)。
そして、CPU301により、階層構造テーブル240内の第m置換基の化合物名のうち先頭からs文字を、第m置換基の化合物名として(ステップS1909)、図17に示したステップS1702に移行する。
また、ステップS1907において、置換基Cpの化合物名と不一致の場合(ステップS1907:No)、CPU301により、置換基Cpの「p」をインクリメントして(ステップS1910)、「p」が「P」より大きくなったか否かを判断する(ステップS1911)。
ここで、「p」が「P」以下の場合(ステップS1911:No)、ステップS1905に戻る。一方、「p」が「P」より大きくなった場合(ステップS1911:Yes)、図17に示したステップS1702に移行する。
これにより、第i階層の母核の化合物名、構造式および炭素番号と、第1〜第m置換基の化合物名および配置位置とを階層構造テーブル240に登録することができる。なお、第(i+1)階層において、対象化合物の化合物名の末尾からt文字との一致判定を行う対象となる化合物は、例えば、構造式DB230内の置換基Cpの化合物名となる。
つぎに、図17に示したステップS1705の置換基構造式登録処理の具体的な処理手順について説明する。
図20は、置換基構造式登録処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、CPU301により、第j置換基の化合物名に倍数接頭辞があるか否かを判断する(ステップS2001)。ここで、倍数接頭辞がない場合(ステップS2001:No)、ステップS2005に移行する。
一方、倍数接頭辞がある場合(ステップS2001:Yes)、CPU301により、第j置換基の結合位置を表す文字列を変換して変換後の文字列を分割する(ステップS2002)。つぎに、CPU301により、各置換基の結合位置を表す文字列を階層構造テーブル240に登録する(ステップS2003)。
そして、CPU301により、第j置換基の化合物名から倍数接頭辞を削除した文字列を、各置換基の化合物名として階層構造テーブル240に登録する(ステップS2004)。つぎに、CPU301により、置換基Cpの「p」を「p=1」として(ステップS2005)、構造式DB230の中から置換基Cpの化合物名を選択する(ステップS2006)。
そして、CPU301により、置換基の化合物名と置換基Cpの化合物名とが一致するか否かを判断する(ステップS2007)。なお、ここでの置換基は、第j置換基、または、ステップS2004において化合物名が登録された置換基である。
ここで、置換基Cpの化合物名と一致する場合(ステップS2007:Yes)、CPU301により、構造式DB230に置換基Cpの構造式があるか否かを判断する(ステップS2008)。ここで、置換基Cpの構造式がない場合(ステップS2008:No)、図17に示したステップS1706に移行する。
一方、置換基Cpの構造式がある場合(ステップS2008:Yes)、CPU301により、置換基の構造式として、置換基Cpの構造式を階層構造テーブル240に登録して(ステップS2009)、図17に示したステップS1706に移行する。
また、ステップS2007において、置換基Cpの化合物名と不一致の場合(ステップS2007:No)、CPU301により、置換基Cpの「p」をインクリメントして(ステップS2010)、「p」が「P」より大きくなったか否かを判断する(ステップS2011)。
ここで、「p」が「P」以下の場合(ステップS2011:No)、ステップS2006に戻る。一方、「p」が「P」より大きくなった場合(ステップS2011:Yes)、図17に示したステップS1706に移行する。
これにより、第j置換基の構造式を階層構造テーブル240に登録することができる。また、第j置換の化合物名に倍数接頭辞が含まれる場合、第j置換の配置位置を分割して、第j置換基の化合物名を、倍数接頭辞を含まない化合物名に変換することができる。
以上説明したように、実施の形態にかかる情報提供装置100によれば、構造式DB230を参照して、対象化合物の化合物名の中から、第i階層の母核を表す文字列を検出することができる。また、情報提供装置100によれば、対象化合物の化合物名のうち、母核を表す文字列を除く残余の文字列の中から、第i階層の第1〜第m置換基の各々を表す文字列を抽出することができる。また、情報提供装置100によれば、第i階層の母核を表す文字列と第1〜第m置換基の各々を表す文字列とを関連付けて階層構造テーブル240に登録することができる。
これにより、対象化合物の化合物名に含まれる、対象化合物の母核を表す文字列と対象化合物の置換基を表す文字列とを区別して、対象化合物の母核を表す化合物と置換基を表す化合物との接続関係を特定することができる。
また、情報提供装置100によれば、構造式DB230を参照して、母核を表す文字列に対応する構造式を特定して、母核を表す文字列と母核の構造式とを関連付けて階層構造テーブル240に登録することができる。これにより、対象化合物の第i階層の母核を表す化合物の構造式を特定することができる。
また、情報提供装置100によれば、構造式DB230を参照して、対象化合物の第j置換基を表す文字列に対応する構造式を特定して、第j置換基を表す文字列と第j置換基の構造式とを関連付けて階層構造テーブル240に登録することができる。これにより、対象化合物の第i階層の第j置換基を表す化合物の構造式を特定することができる。
また、情報提供装置100によれば、対象化合物の化合物名のうち母核を表す文字列を除く残余の文字列の中から、第j置換基が結合する母核の結合位置を表す文字列を抽出することができる。また、情報提供装置100によれば、第j置換基を表す文字列と、第j置換基が結合する母核の結合位置とを関連付けて階層構造テーブル240に登録することができる。これにより、第j置換基が母核の何番目の炭素に結合しているのかを特定することができる。
また、情報提供装置100によれば、母核の構造式の中から第j置換基が結合する炭素に結合している水素の元素数を修正することができる。これにより、母核の構造式のうち第j置換基の構造式が結合する結合位置が単結合の場合、水素を引き抜くことができ、多重(2または3)結合の場合、開いた結合で置換基と結合しない方の炭素に水素を付加することができる。
また、情報提供装置100によれば、第j置換基が別の置換基を含む複合置換基か否かを判定し、第j置換基が複合置換基の場合、第j置換基を表す文字列を、対象化合物の化合物名に設定することができる。また、情報提供装置100によれば、構造式DB230を参照して、新たに設定された対象化合物の化合物名の中から、第(i+1)階層の母核を表す文字列を検出することができる。
これにより、別の置換基を含む複合置換基を新たな構造式の生成対象となる対象化合物として、上記抽出部703、特定部704および関連付け部705等の一連の処理が再帰的に実行され、複合置換基を表す文字列を解析することができる。
また、情報提供装置100によれば、第(i+1)階層の母核を表す文字列と、第i階層の複合置換基であると判定された第j置換の文字列とを関連付けて階層構造テーブル240に登録することができる。これにより、第i階層の複合置換基と、第(i+1)階層の母核との対応関係を特定して、第i階層と第(i+1)階層との階層構造を構築することができる。
また、情報提供装置100によれば、母核を表す文字列が検出されなかった場合、対象化合物の化合物名の中から、母核を表す文字列と第m置換基を表す文字列とが連結された連結文字列を抽出することができる。また、情報提供装置100によれば、構造式DB230を参照して、連結文字列の中から第m置換基を表す文字列を検出することにより、連結文字列のうち第m置換基を表す文字列を除く残余の文字列を、母核を表す文字列として特定することができる。
これらのことから、実施の形態にかかる情報提供装置、情報提供プログラムおよび情報提供方法によれば、化合物の化合物名から、化合物の構造の成り立ちを理解し易くすることができる。また、化合物に含まれる原子団同士の結合を表す価標を用いた構造式により、化合物を表現することができる。また、化合物に含まれる各々の原子団の構造式から官能基を区別し易くなり、化合物の特性を把握し易くすることができる。また、構造式DB230等のデータベースに登録されていない未知の化合物についても、既知の化合物の部分構造から未知の化合物の構造式を構築することができる。
なお、本実施の形態で説明した情報提供方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報提供プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報提供プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)化合物の母核となる部分構造の名称を記憶する記憶部を参照して、構造式の生成対象となる対象化合物の化合物名の中から、前記対象化合物の母核となる部分構造の名称を表す文字列を検出する検出部と、
前記対象化合物の化合物名のうち前記検出部によって検出された前記対象化合物の母核を表す文字列を除く残余の文字列の中から、前記対象化合物の置換基となる部分構造の名称を表す文字列を抽出する抽出部と、
前記対象化合物の母核を表す文字列と、前記抽出部によって抽出された前記対象化合物の置換基を表す文字列とを関連付ける関連付け部と、
前記関連付け部によって関連付けられた関連付け結果を出力する出力部と、
を有することを特徴とする情報提供装置。
(付記2)前記対象化合物の置換基を表す文字列に基づいて、前記対象化合物の置換基が別の置換基を含む複合置換基か否かを判定する判定部と、
前記判定部によって前記複合置換基であると判定された場合、前記対象化合物の置換基を表す文字列を前記対象化合物の化合物名に設定する設定部と、をさらに有し、
前記検出部は、
前記記憶部を参照して、前記設定部によって設定された前記対象化合物の化合物名の中から前記対象化合物の母核となる部分構造の名称を表す文字列を検出することを特徴とする付記1に記載の情報提供装置。
(付記3)前記関連付け部は、
さらに、前記検出部によって検出された前記対象化合物の母核を表す文字列と、前記複合置換基であると判定された置換基を表す文字列とを関連付けることを特徴とする付記2に記載の情報提供装置。
(付記4)前記記憶部に、化合物の母核となる部分構造の名称と前記母核の構造式とが対応付けて記憶されている場合、前記記憶部を参照して前記検出部によって検出された前記対象化合物の母核を表す文字列に対応する構造式を特定する特定部をさらに有し、
前記関連付け部は、
さらに、前記対象化合物の母核を表す文字列と、前記特定部によって特定された前記対象化合物の母核の構造式と、を関連付けることを特徴とする付記1〜3のいずれか一つに記載の情報提供装置。
(付記5)前記特定部は、
前記記憶部に、化合物の置換基となる部分構造の名称と前記置換基の構造式とが対応付けて記憶されている場合、前記記憶部を参照して前記抽出部によって抽出された前記対象化合物の置換基を表す文字列に対応する構造式を特定し、
前記関連付け部は、
さらに、前記対象化合物の置換基を表す文字列と、前記特定部によって特定された前記対象化合物の置換基の構造式と、を関連付けることを特徴とする付記4に記載の情報提供装置。
(付記6)前記抽出部は、
さらに、前記残余の文字列の中から、前記対象化合物の置換基が結合する前記対象化合物の母核の結合位置を表す文字列を抽出し、
前記関連付け部は、
さらに、前記対象化合物の置換基を表す文字列と、前記結合位置を表す文字列と、を関連付けることを特徴とする付記5に記載の情報提供装置。
(付記7)前記対象化合物は、炭素を構造の基本骨格に持つ化合物であり、
前記結合位置を表す文字列に基づいて、前記対象化合物の母核の構造式の中から、前記対象化合物の母核に含まれる炭素のうち前記対象化合物の置換基が結合する炭素に結合している水素の元素数を修正する修正部をさらに有し、
前記関連付け部は、
さらに、前記対象化合物の母核を表す文字列と、前記修正部によって前記水素の元素数が修正された修正後の前記対象化合物の母核の構造式と、を関連付けることを特徴とする付記6に記載の情報提供装置。
(付記8)前記記憶部には、化合物の置換基となる部分構造の名称が記憶されており、
前記抽出部は、
前記検出部によって前記対象化合物の母核を表す文字列が検出されなかった場合、前記対象化合物の化合物名の中から、前記対象化合物の母核を表す文字列と前記対象化合物の置換基を表す文字列とが連結された連結文字列を抽出し、
前記検出部は、
前記記憶部を参照して、前記抽出部によって抽出された前記連結文字列の中から、前記対象化合物の置換基を表す文字列を検出し、
前記関連付け部は、
前記連結文字列のうち前記検出部によって検出された前記対象化合物の置換基を表す文字列を除く残余の文字列を前記対象化合物の母核を表す文字列として、前記対象化合物の置換基を表す文字列と関連付けることを特徴とする付記1〜7のいずれか一つに記載の情報提供装置。
(付記9)前記対象化合物の化合物名は、置換命名法により命名された化合物名であることを特徴とする付記1〜8のいずれか一つに記載の情報提供装置。
(付記10)コンピュータに、
化合物の母核となる部分構造の名称を記憶する記憶部を参照して、構造式の生成対象となる対象化合物の化合物名の中から、前記対象化合物の母核となる部分構造の名称を表す文字列を検出し、
前記対象化合物の化合物名のうち、検出した前記対象化合物の母核を表す文字列を除く残余の文字列の中から、前記対象化合物の置換基となる部分構造の名称を表す文字列を抽出し、
前記対象化合物の母核を表す文字列と、抽出した前記対象化合物の置換基を表す文字列とを関連付け、
関連付けた関連付け結果を出力する、
処理を実行させることを特徴とする情報提供プログラム。
(付記11)コンピュータが、
化合物の母核となる部分構造の名称を記憶する記憶部を参照して、構造式の生成対象となる対象化合物の化合物名の中から、前記対象化合物の母核となる部分構造の名称を表す文字列を検出し、
前記対象化合物の化合物名のうち、検出した前記対象化合物の母核を表す文字列を除く残余の文字列の中から、前記対象化合物の置換基となる部分構造の名称を表す文字列を抽出し、
前記対象化合物の母核を表す文字列と、抽出した前記対象化合物の置換基を表す文字列とを関連付け、
関連付けた関連付け結果を出力する、
処理を実行することを特徴とする情報提供方法。