(57)【要約】【課題】分子の付加や変形についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行する。【解決手段】分子設計支援装置４００が、移動部４３０と、干渉判定部４４０とを備えた。移動部４３０は、次のような２つの原子群のうちの一方の原子群を他方の原子群に対して相対的に移動させるものである。２つの原子群とは、分子構造データで表した、互いの結合を予定した２つの分子からなる２つの原子群のことである。また、２つの原子群には、分子構造データで表した１つの分子を２つに分けたときの２つの部分からなる２つの原子群も含まれる。干渉判定部４４０は、移動部４３０による一方の原子群の移動後の双方の原子群それぞれを取り巻く、上記仮想三次元空間内における２つの分子被覆空間どうしの結合箇所以外の箇所での干渉の存在を判定するものである。【選択図】        図６
2010238120.tif 000002
【特許請求の範囲】
【請求項１】
分子を構成する構成原子および該構成原子どうしを結合する結合軸を仮想三次元空間上の座標で定義した分子構造データで表した、互いの結合を予定した２つの分子からなる２つの原子群、又は、該分子構造データで表した１つの分子を２つに分けたときの２つの部分からなる２つの原子群のうちの一方の原子群を他方の原子群に対して相対的に移動させる分子移動部と、
前記分子移動部による一方の原子群の移動後の双方の原子群それぞれを取り巻く、前記仮想三次元空間内における２つの被覆空間を表わす２つの被覆空間データを生成する被覆空間生成部と、
前記被覆空間生成部で生成した２つの被覆空間どうしの、前記２つの原子群の結合箇所を除く箇所での干渉の存在を判定する干渉判定部とを有することを特徴とする分子設計支援装置。
【請求項２】
前記被覆空間生成部が、前記仮想三次元空間内に生成した格子点を頂点とし構成原子１つずつを取り巻く単位被覆空間であって、結合軸で結合された２つの構成原子それぞれを取り巻く２つの単位被覆空間が互いに接する単位被覆空間の集合であって、前記原子群を構成する複数の構成原子をそれぞれ取り巻く複数の単位被覆空間の集合を、該原子群を取り巻く被覆空間として生成するものであり、
前記干渉判定部は、前記２つの被覆空間どうしの、前記２つの原子群の結合箇所を除く箇所での干渉の存在を、該２つの被覆空間に共通の格子点を検出することで判定するものであることを特徴とする請求項１記載の分子設計支援装置。
【請求項３】
前記干渉判定部は、前記２つの被覆空間どうしの、前記２つの原子群の結合箇所を除く箇所での干渉の存在を、該２つの被覆空間に共通であって、かつ該２つの被覆空間双方の表面に位置する格子点を検出することで判定するものであることを特徴とする請求項２記載の分子設計支援装置。
【請求項４】
前記干渉判定部は、前記２つの被覆空間どうしの、前記２つの原子群の結合箇所を除く箇所での干渉の存在を、該２つの被覆空間に共通であって、かつ該２つの被覆空間の間で互いに向き合った表面に位置する表面上で共通する格子点を検出することで判定するものであることを特徴とする請求項２記載の分子設計支援装置。
【請求項５】
前記分子移動部が、前記２つの原子群のうち、構成原子の数が相対的に少ない原子群を移動させるものであることを特徴とする請求項１から４のうちいずれか１項記載の分子設計支援装置。
【請求項６】
コンピュータ内で実行され、該コンピュータ上に、
分子を構成する構成原子および該構成原子どうしを結合する結合軸を仮想三次元空間上の座標で定義した分子構造データで表した、互いの結合を予定した２つの分子からなる２つの原子群、又は、該分子構造データで表した１つの分子を２つに分けたときの２つの部分からなる２つの原子群のうちの一方の原子群を他方の原子群に対して相対的に移動させる分子移動部と、
前記分子移動部による一方の原子群の移動後の双方の原子群それぞれを取り巻く、前記仮想三次元空間内における２つの被覆空間を表わす２つの被覆空間データを生成する被覆空間生成部と、
前記被覆空間生成部で生成した２つの被覆空間どうしの、前記２つの原子群の結合箇所を除く箇所での干渉の存在を判定する干渉判定部とを構築することを特徴とする分子設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ある分子に対する他の分子の付加や、分子の一部の変形をデータ上で実行する分子設計支援装置と、コンピュータをそのような分子設計支援装置として動作させる分子設計支援プログラムに関する。
【背景技術】
【０００２】
近年、化学産業や製薬産業では、シミュレーションによって、分極率等の物性が向上した新規の分子を模索するといった作業が良く行われている。このような作業には、分子構造を表わす分子構造データを構築し、その分子構造データを使って分子軌道計算や分子動力学計算等の理論化学計算を実行する分子設計支援装置が使われる（例えば、特許文献１及び特許文献２参照。）。
【０００３】
このような分子設計支援装置によれば、例えば、ある分子に対する他の分子の付加や、分子の一部の変形についてのシミュレーションを、分子構造データに基づいてモニタに表示された分子の画像を見ながら行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１７４１０９号公報
【特許文献２】特開２０００−２２９９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ある分子に対する他の分子の付加についてのシミュレーションは、一方の分子の構成原子と、他方の分子の構成原子とをデータ上で互いに結合させることで行われる。ところが、このような付加の際に、２つの分子どうしの接近により、意図した構成原子どうしの結合以外に、他の意図しない構成原子どうしの結合が生じてしまうことがある。
【０００６】
また、分子の一部の変形についてのシミュレーションは、その分子を、変形の際に動かす移動対象の分子部分と、その分子部分以外の固定対象の分子部分とにデータ上で分け、両者間の結合状態を維持したまま移動対象の分子部分を動かすことで行われる。ところが、このような移動の際にも、移動対象の分子部分と固定対象の分子部分とが接近して、両者間の元々の結合状態での構成原子どうしの結合以外に、他の意図しない構成原子どうしの結合が生じてしまうことがある。
【０００７】
分子設計支援装置では、このような分子の付加や変形についてのシミュレーションは、上述したようにモニタに分子の画像を表示させて行われる。そのため、処理対象の分子が、原子数の少ない小規模の分子であれば、意図しない結合の発生をユーザが目視で発見して修正することができることもある。しかしながら、化学産業や製薬産業で扱われる分子は、非常に多くの原子で構成された大規模の分子であることが多い。このような大規模の分子を使った付加や変形の際に上記のような意図しない構成原子どうしの結合が生じると、そのような結合を目視で確認したり修正したりすることはほぼ不可能である。
【０００８】
本件は上記事情に鑑み、次のような分子設計支援装置と分子設計支援プログラムとを提供することを目的とするものである。分子設計支援装置は、分子の付加や変形についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができる装置である。また、分子設計支援プログラムは、コンピュータをそのような分子設計支援装置として動作させるプログラムである。
【課題を解決するための手段】
【０００９】
上記目的を達成する分子設計支援装置の基本形態は、分子移動部と、被覆空間生成部と、干渉判定部とを有する。
【００１０】
分子移動部は、次のような２つの原子群のうちの一方の原子群を他方の原子群に対して相対的に移動させるものである。分子移動部は、分子を構成する構成原子およびその構成原子どうしを結合する結合軸を仮想三次元空間上の座標で定義した分子構造データで表した、互いの結合を予定した２つの分子からなる２つの原子群のうちの一方の原子群を上記のように移動させる。あるいは、この分子移動部は、上記分子構造データで表した１つの分子を２つに分けたときの２つの部分からなる２つの原子群のうちの一方の原子群を上記のように移動させる。
【００１１】
被覆空間生成部は、上記分子移動部による一方の原子群の移動後の双方の原子群それぞれを取り巻く、上記仮想三次元空間内における２つの被覆空間を表わす２つの被覆空間データを生成するものである。
【００１２】
干渉判定部は、上記被覆空間生成部で生成した２つの被覆空間どうしの、上記２つの原子群の結合箇所を除く箇所での干渉の存在を判定するものである。
【００１３】
また、上記目的を達成する分子設計支援プログラムの基本形態は、コンピュータ内で実行され、そのコンピュータ上に、上記分子移動部と上記被覆空間生成部と上記干渉判定部とを構築するものである。
【発明の効果】
【００１４】
本件によれば、分子の付加や変形についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができる。
【図面の簡単な説明】
【００１５】
【図１】分子の付加についてのシミュレーションの際のモニタ画像の一例を示す図である。
【図２】意図しない構成原子どうしの結合について説明する説明図である。
【図３】基本形態について上述した分子設計支援装置の具体的な一実施形態として動作するコンピュータを示す図である。
【図４】図３に示すコンピュータのハードウェア構成図である。
【図５】分子設計支援プログラムが記憶されたＣＤ−ＲＯＭを示す概念図である。
【図６】基本形態について説明した分子設計支援装置の具体的な実施形態を示すブロック図である。
【図７】図３の分子構造データのうち、分子データ、原子データ、結合軸データ、およびイベントデータについて詳細に示す図である。
【図８】蟻酸の分子を示す模式図である。
【図９】図８に示す蟻酸の分子について生成される初期の分子構造データを模式的に示す図である。
【図１０】初期データ生成処理を示すフローチャートである。
【図１１】図１０の初期データ生成処理で設定される格子空間を示す模式図である。
【図１２】原子被覆空間の一例を模式的に示す図である。
【図１３】分子被覆空間の一例を模式的に示す図である。
【図１４】図１０のステップＳ１０９で生成される法線ベクトルの一例を示す図である。
【図１５】分子の付加処理におけるステップＳ２０１からステップＳ２０９までの処理の流れを示すフローチャートである。
【図１６】分子の付加処理におけるステップＳ２１０からステップＳ２１４までの処理の流れを示すフローチャートである。
【図１７】図１５のステップＳ２０２およびステップＳ２０３の処理の一例を概念的に示す図である。
【図１８】図１５のステップＳ２０５で実行される平行移動の一例を示す図である。
【図１９】図１８の例での付加によって得られた新たな分子の一例を示す図である。
【図２０】分子の一部を回転する回転処理を概念的に示す図である。
【図２１】図３のモニタ１２１上でのマウスポインタの動きを示す図である。
【図２２】回転移動の際に生じる意図しない結合の一例を模式的に示す図である。
【図２３】図２２の例での回転対象側の分子被覆空間において、回転方向前方で、固定対象側の分子被覆空間の表面と対向する表面と、固定対象側の分子被覆空間におけるその表面とを示す図である。
【図２４】分子の一部を回転する回転処理の流れを示すフローチャートである。
【図２５】回転対象と固定対象との２つの分子部分の一例を示す図である。
【図２６】図２５の例での回転処理によって得られた新たな分子の一例を示す図である。
【図２７】蟻酸の分子についての三次元分子座標データを示す図である。
【図２８】図２７の三次元分子座標データを使った、図１０の初期データ生成処理によって生成された初期の分子構造データを示す図である。
【図２９】図２８の法線ベクトル情報ｎと原子被覆空間データｍの具体的な数値を示す図である。
【図３０】分子の付加処理の実施例を模式的に示す図である。
【図３１】図２８および図２９に示した初期の分子構造データＤ２００を使い、図１５から図１９に示した分子の付加処理を実行したときの経緯を示すフローチャートにおけるステップＳ４０１からステップＳ４０７までの流れを示す図である。
【図３２】図２８および図２９に示した初期の分子構造データＤ２００を使い、図１５から図１９に示した分子の付加処理を実行したときの経緯を示すフローチャートにおけるステップＳ４０８からステップＳ４１１までの処理の流れを示す図である。
【図３３】分子の回転処理の実施例を模式的に示す図である。
【図３４】図２８および図２９に示した初期の分子構造データＤ２００を使い、図２４に示した回転処理を実行したときの経緯を示すフローチャートにおけるステップＳ５０１からステップＳ５０７までの流れを示す図である。
【図３５】図２８および図２９に示した初期の分子構造データＤ２００を使い、図２４に示した回転処理を実行したときの経緯を示すフローチャートにおけるステップＳ５０８からステップＳ５１４までの処理の流れを示す図である。
【発明を実施するための形態】
【００１６】
以下、上記に基本形態について説明した分子設計支援装置および分子設計支援プログラムの具体的な実施形態について、図面を参照して説明する。
【００１７】
以下、本実施形態の分子設計支援装置および分子設計支援プログラムの説明に先立って、まず、分子の付加や変形についてのシミュレーションの際に問題となる、意図しない構成原子どうしの結合について説明する。尚、以下では、分子の付加についてのシミュレーションを例に挙げて、この問題について説明する。
【００１８】
図１は、分子の付加についてのシミュレーションの際のモニタ画像の一例を示す図である。
【００１９】
この図１には、２つの分子５０１，５０２が、構成原子を表す球体の複数の連なりで分子を表現するスペースフィル形式でモニタに表示された様子が示されている。尚、この図１の例では、２つの分子５０１，５０２の画像に加えて、シミュレーションが行われる仮想三次元空間の座標軸と、各分子が占める大まかな空間を示す円柱および直方体もモニタに表示されている。
【００２０】
図１の例は、直方体で囲まれた分子５０２を、円柱で囲まれたもう一つの分子５０１に付加するという例である。
【００２１】
このような付加についてのシミュレーションでは、一方の分子の構成原子のうちの１つと、他方の分子の構成原子のうちの１つとを、ユーザが操作によって指定し、それら２つの構成原子どうしを結合させるという処理が行われる。
【００２２】
このような分子の付加についてのシミュレーションでは、次のように、ユーザが指定した構成原子以外の意図しない構成原子どうしの結合という問題が起こりがちである。
【００２３】
図２は、意図しない構成原子どうしの結合について説明する説明図である。
【００２４】
この図２には、分子が、２つの構成原子を繋ぐ結合軸の連なりで分子を表現するハーフベクタ形式で記載されている。
【００２５】
まず、図２のパート（Ａ）には、図中左側の第１分子５０３に図中右側の第２分子５０４が、問題なく付加されて、新たな分子５０５が構築される様子が示されている。このパート（Ａ）の例では、第１分子５０３における図中右端の結合軸の右末端原子５０３＿１と、第２分子５０４における図中左端の結合軸の左末端原子５０４＿１とが結合されている。
【００２６】
これに対し、図２のパート（Ｂ）には、図中左側の第３分子５０６への図中右側の第４分子５０７の付加において、意図しない構成原子どうしの結合が生じている様子が示されている。このパート（Ｂ）の例では、第３分子５０６における図中左上の環から延びる枝の右端の結合軸の右末端原子５０６＿１と、第４分子５０７における図中左端の結合軸の左末端原子５０７＿１とが結合されている。そして、このパート（Ｂ）の例では、この結合の際に、第３分子５０６における図中右端の環の左上頂点の原子５０６＿２と、第４分子５０７における図中右下の結合軸の下側末端原子５０７＿２とが結合してしまっている。
【００２７】
ここで、この図２に例として示した程度の規模の分子であれば、上記のような意図しない構成原子どうしの結合が生じても、そのような結合を例えば分子の画像等が表示されたモニタ上で目視確認して修正することができることもある。しかし、処理対象の分子が、例えば図１に例として示したような規模の大きな分子の場合には、意図しない構成原子どうしの結合を目視確認して修正することはほぼ不可能である。
【００２８】
そこで、基本形態について上述した分子設計支援装置の具体的な一実施形態には、このような意図しない構成原子どうしの結合の有無を自動的に判定する機能が設けられている。
【００２９】
図３は、基本形態について上述した分子設計支援装置の具体的な一実施形態として動作するコンピュータを示す図である。また、図４は、図３に示すコンピュータのハードウェア構成図である。
【００３０】
このコンピュータ１００は、本体部１１０、画像表示装置１２０、キーボード１３０、およびマウス１４０を備えている。
【００３１】
本体部１１０は、後述するＣＰＵ１１１やハードディスク装置（ＨＤＤ）１１３等を内蔵し各種処理を実行する装置である。また、この本体部１１０は、ＣＤ−ＲＯＭ２００が装填されるＣＤ−ＲＯＭ装填口１１０Ａを有している。画像表示装置１２０は、本体部１１０からの指示によりモニタ１２１に画像表示を行う装置である。キーボード１３０は、このコンピュータ１００にユーザの指示や文字情報を入力するためのものである。マウス１４０は、モニタ１２１上の任意の位置を指定することによりその位置に応じた指示をこのコンピュータ１００に入力するものである。
【００３２】
本体部１１０の内部には、図４に示すように、ＣＰＵ１１１、主メモリ１１２、ＨＤＤ１１３、ＣＤ−ＲＯＭドライブ１１４、およびＩ／Ｏインタフェース１１５が内蔵されている。
【００３３】
ＣＰＵ１１１は、各種プログラムを実行するものである。主メモリ１１２は、ＨＤＤ１１３に格納されたプログラムが読み出されてＣＰＵ１１１での実行のために展開されるメモリである。ＨＤＤ１１３は、各種プログラムやデータが保存されるメモリである。ＣＤ−ＲＯＭドライブ１１４は、ＣＤ−ＲＯＭ装填口１１０Ａから装填されたＣＤ−ＲＯＭ２００にアクセスするものである。Ｉ／Ｏインタフェース１１５は、このコンピュータ１００が外部機器との間でデータのやりとりを行うためのインタフェースである。これらの各種要素、図３にも示す画像表示装置１２０、キーボード１３０、およびマウス１４０は、バス１１６を介して相互に接続されている。
【００３４】
以上に説明したコンピュータ１００に、後述の分子設計支援プログラムがインストールされると、このコンピュータ１００が分子設計支援装置として動作する。
【００３５】
そして、本実施形態では、図３に示すように、分子設計支援装置として動作しているコンピュータ１００に、分子の構成原子の元素記号並びに位置座標を定義した三次元分子座標データＤ１００が、ユーザの操作によって入力される。すると、その入力された三次元分子座標データＤ１００に基づいて、コンピュータ１００内で、構成原子の元素記号並びに位置座標および構成原子を結合する結合軸の方向を表わす座標を定義した分子構造データＤ２００が生成される。この分子構造データＤ２００が、上述の基本形態にいう分子構造データの一例に相当する。また、この分子構造データＤ２００で表される分子が、上述の基本形態にいう原子群の一例に相当する。
【００３６】
この分子構造データＤ２００は、後述の、ＧＵＩ用データＤ２１０、分子データＤ２２０、原子データＤ２３０、結合軸データＤ２４０、およびイベントデータＤ２５０を有している。そして、コンピュータ１００では、その生成された分子構造データＤ２００を使って、モニタ１２１への分子の画像の表示や、上記の分子の付加や変形等といった処理が実行される。
【００３７】
以下、このコンピュータ１００を分子設計支援装置として動作させる分子設計支援プログラムについて説明する。
【００３８】
本実施形態では、この分子設計支援プログラムの、コンピュータ１００へのインストールはＣＤ−ＲＯＭ２００を介して行われる。
【００３９】
図５は、分子設計支援プログラムが記憶されたＣＤ−ＲＯＭを示す概念図である。
【００４０】
このＣＤ−ＲＯＭ２００に記憶され、コンピュータ１００を分子設計支援装置として動作させる分子設計支援プログラム３００が、基本形態について上述した分子設計支援プログラムの具体的な一実施形態に相当する。この分子設計支援プログラム３００は、分子データ入手部３１０と、初期データ生成部３２０と、移動部３３０と、干渉判定部３４０と、新分子構造データ生成部３５０と、表示部３６０とを有する。この分子設計支援プログラム３００の各要素の詳細については後述する。
【００４１】
図６は、基本形態について説明した分子設計支援装置の具体的な実施形態を示すブロック図である。
【００４２】
この図６に示す分子設計支援装置４００は、図５の分子設計支援プログラム３００が図３のコンピュータ１００にインストールされて実行されることによって構成されるものである。この分子設計支援装置４００は、分子データ入手部４１０と、初期データ生成部４２０と、移動部４３０と、干渉判定部４４０と、新分子構造データ生成部４５０と、表示部４６０とを有する。
【００４３】
図５の分子設計支援プログラム３００が、図３のコンピュータ１００にインストールされると、その分子設計支援プログラム３００の各要素が、分子設計支援装置４００の各要素を構築する。即ち、分子設計支援プログラム３００の分子データ入手部３１０が、分子設計支援装置４００の分子データ入手部４１０を構築する。また、分子設計支援プログラム３００の初期データ生成部３２０が、分子設計支援装置４００の初期データ生成部４２０を構築する。また、分子設計支援プログラム３００の移動部３３０が、分子設計支援装置４００の移動部４３０を構築する。また、分子設計支援プログラム３００の干渉判定部３４０が、分子設計支援装置４００の干渉判定部４４０を構築する。また、分子設計支援プログラム３００の新分子構造データ生成部３５０が、分子設計支援装置４００の新分子構造データ生成部４５０を構築する。また、分子設計支援プログラム３００の表示部３６０が、分子設計支援装置４００の表示部４６０を構築する。
【００４４】
ここで、これら分子設計支援装置４００の各要素は、コンピュータのハードウェアとそのコンピュータで実行されるＯＳやアプリケーションプログラムとの組合せで構成されている。これに対し、図５の分子設計支援プログラム３００の各要素は、アプリケーションプログラムのみによって構成されている。
【００４５】
この分子設計支援装置４００における移動部４３０は、その基本形態における分子移動部と被覆空間生成部とを兼ねた一例に相当する。また、分子設計支援装置４００における干渉判定部４４０は、その基本形態における干渉判定部の一例に相当する。
【００４６】
次に、図６の分子設計支援装置４００の各要素の詳細について、この分子設計支援装置４００で実行される各種処理の流れに沿って説明する。また、この分子設計支援装置４００の各要素を説明することによって、図５に示す分子設計支援プログラム３００の各要素も併せて説明する。
【００４７】
まず、分子データ入手部４１０では、ユーザ操作によって、上記の三次元分子座標データＤ１００が入力される。すると、初期データ生成部４２０において、その入力された三次元分子座標データＤ１００に基づいて図３に示す分子構造データＤ２００が生成される。
【００４８】
ここで、本実施形態では、図３の三次元分子座標データＤ１００の入力が、複数の分子について行われることがある。このため、各分子には、基本的には、三次元分子座標データＤ１００の入力順に識別番号が割り振られる。また、この分子の識別番号は、後述する分子の付加処理等の際に適宜に変更されることもある。分子構造データＤ２００中では、その分子構造データＤ２００に対応する分子は、「Ｍ［識別番号］」という記号で表現される。
【００４９】
また、本実施形態では、三次元分子座標データＤ１００中で、構成原子の種類と位置座標との組が、この三次元分子座標データＤ１００が作られたときの入力順に並んで記載されている。初期データ生成部４２０で初期の分子構造データＤ２００が生成される際には、各構成原子に、この三次元分子座標データＤ１００での記載順に応じた識別番号が割り振られる。そして、分子構造データＤ２００中では、各構成原子が、「Ａ［識別番号］」という記号で表現される。
【００５０】
さらに、本実施形態では、初期の分子構造データＤ２００が生成される際には、三次元分子座標データＤ１００が定義している各構成原子の位置座標に基づいて原子間距離が計算される。そして、計算された原子間距離と、各構成原子の種類に応じたファンデアワールス半径との比較から、構成原子間における結合軸の有無が決定される。また、このように存在が決定された各結合軸に、両端の構成原子の識別番号の和が小さいものから順に識別番号が割り振られる。そして、分子構造データＤ２００中では、各結合軸が、「Ｂ［識別番号］」という記号で表現される。
【００５１】
以下、この分子構造データＤ２００の詳細について説明する。
【００５２】
図７は、図３の分子構造データのうち、分子データ、原子データ、結合軸データ、およびイベントデータについて詳細に示す図である。
【００５３】
ここで、図３の分子構造データＤ２００のうち、この図７で不図示のＧＵＩ用データＤ２１０は、この分子構造データＤ２００に対応する分子の画像をモニタ１２１に表示する際の表示形式等を示すデータである。本実施形態では、この表示形式として、上述のスペースフィル形式、ハーフベクタ形式、および、構成原子と結合軸との連なりで分子を表現するボールアンドスティック形式のうちのいずれかをユーザが操作によって指定できるようになっている。さらに、各表示形式に関連して、原子や結合軸の色、大きさ、背景の色等についてもユーザが操作によって指定できるようになっている。ＧＵＩ用データＤ２１０には、ユーザが選択した表示形式が設定される。尚、このＧＵＩ用データＤ２１０は、任意のグラフィック表示ソフトウェアによって設定される公知のものである。そこで、ここでは、このＧＵＩ用データＤ２１０については、図示とこれ以上の詳細な説明を割愛する。
【００５４】
まず、図７の分子データＤ２２０について説明する。
【００５５】
この分子データＤ２２０は、原子データアドレス情報Ａ、結合軸データアドレス情報Ｂ、総原子数情報ｎａ、総結合軸数情報ｎｂ、操作イベント数情報ｎｅ、分子被覆空間データｓ、および操作フラグＦを有している。
【００５６】
本実施形態では、後述の原子データＤ２３０は、分子構造データＤ２００に対応した分子の各構成原子に一対一に対応して生成される。そして、生成された各原子データは、ＨＤＤ１１３内の各原子データに割り振られた領域に格納される。分子データＤ２２０の原子データアドレス情報Ａは、各構成原子の原子データが格納される領域のアドレスの、全構成原子分の集合を示す情報である。本実施形態では、この原子データアドレス情報Ａは、分子構造データＤ２００中で「Ｍ［識別番号］→Ａ」という記号で表現される。
【００５７】
また、本実施形態では、後述の結合軸データＤ２４０は、分子構造データＤ２００に対応した分子における各結合軸に一対一に対応して生成される。そして、生成された各結合軸データは、ＨＤＤ１１３内の各結合軸データに割り振られた領域に格納される。分子データＤ２２０の結合軸データアドレス情報Ｂは、各結合軸の結合軸データが格納される領域のアドレスの、全結合軸分の集合を示す情報である。この結合軸データアドレス情報Ｂは、分子構造データＤ２００中で「Ｍ［識別番号］→Ｂ」という記号で表現される。
【００５８】
分子データＤ２２０の総原子数情報ｎａは、分子構造データＤ２００に対応した分子における構成原子の総数を示す情報である。この総原子数情報ｎａは、分子構造データＤ２００中で「Ｍ［識別番号］→ｎａ」という記号で表現される。
【００５９】
分子データＤ２２０の総結合軸数情報ｎｂは、分子構造データＤ２００に対応した分子における結合軸の総数を示す情報である。この総結合軸数情報ｎｂは、分子構造データＤ２００中で「Ｍ［識別番号］→ｎｂ」という記号で表現される。
【００６０】
分子データＤ２２０の操作イベント数情報ｎｅは、分子構造データＤ２００に対応した分子に対して実行された、例えば他の分子の付加や変形等の操作の数を示す情報である。この操作イベント数情報ｎｅは、分子構造データＤ２００中で「Ｍ［識別番号］→ｎｅ」という記号で表現される。
【００６１】
ここで、本実施形態では、図３の三次元分子座標データＤ１００が定義している各構成原子の位置座標およびファンデアワールス半径とに基づいて、その三次元分子座標データＤ１００に対応する分子を取り巻く分子被覆空間が生成される。この分子被覆空間は、ある分子への、分子外からの結合が可能な空間である。分子データＤ２２０の分子被覆空間データｓは、分子構造データＤ２００に対応した分子について生成された分子被覆空間の位置と形状を定義したデータである。この分子被覆空間および分子被覆空間データｓについては後で詳細に説明する。この分子被覆空間データｓは、分子構造データＤ２００中で「Ｍ［識別番号］→ｓ」という記号で表現される。上記の分子被覆空間が、上記の基本形態における被覆空間の一例に相当する。また、分子被覆空間データｓが、この基本形態における被覆空間データの一例に相当する。
【００６２】
分子データＤ２２０の操作フラグＦは、分子構造データＤ２００に対応した分子が、上記の付加や変形等の操作の対象となっていること等を示すフラグである。この操作フラグＦは、分子構造データＤ２００中で「Ｍ［識別番号］→Ｆ」という記号で表現される。
【００６３】
次に、図７の原子データＤ２３０について説明する。
【００６４】
この原子データＤ２３０は、原子識別番号情報ａ、原子番号情報Ｎ、総結合軸数情報ｎｂ、結合軸識別番号情報ｂ、原子位置座標情報ｃ、法線ベクトル情報ｎ、原子被覆空間データｍ、および操作フラグＦを有している。
【００６５】
原子データＤ２３０の原子識別番号情報ａは、この原子データＤ２３０に対応する構成原子に上記のように割り振られた識別番号を示す情報である。この原子識別番号情報ａは、分子構造データＤ２００中で「Ａ［識別番号］→ａ」という記号で表現される。
【００６６】
原子データＤ２３０の原子番号情報Ｎは、この原子データＤ２３０に対応する構成原子の原子番号を示す情報である。この原子番号情報Ｎは、分子構造データＤ２００中で「Ａ［識別番号］→Ｎ」という記号で表現される。
【００６７】
原子データＤ２３０の総結合軸数情報ｎｂは、上記のように存在が決定された結合軸のうち、この原子データＤ２３０に対応する構成原子に繋がっている結合軸の総数を示す情報である。この総結合軸数情報ｎｂは、分子構造データＤ２００中で「Ａ［識別番号］→ｎｂ」という記号で表現される。
【００６８】
原子データＤ２３０の結合軸識別番号情報ｂは、この原子データＤ２３０に対応する構成原子に繋がっている結合軸の識別番号を示す情報である。また、この構成原子に繋がっている結合軸が複数存在する場合には、原子データＤ２３０の結合軸識別番号情報ｂは、それら複数の結合軸分の識別番号の集合を示すこととなる。この結合軸識別番号情報ｂは、分子構造データＤ２００中で「Ａ［識別番号］→ｂ」という記号で表現される。
【００６９】
原子データＤ２３０の原子位置座標情報ｃは、この原子データＤ２３０に対応する構成原子について図３の三次元分子座標データＤ１００で定義されている位置座標を示す情報である。この原子位置座標情報ｃは、分子構造データＤ２００中で「Ａ［識別番号］→ｃ」という記号で表現される。
【００７０】
また、本実施形態では、各構成原子について原子データ２３０が生成される際には、各構成原子から、この分子構造データＤ２００に対応した分子を取り巻く上記の分子被覆空間の表面に対する法線方向に延びる法線ベクトルが求められる。原子データＤ２３０の法線ベクトル情報ｎは、この原子データＤ２３０に対応する構成原子について求められた法線ベクトルを、その構成原子の位置座標を原点としたときの、その原点に対する法線ベクトル末端の座標で定義する情報である。また、この構成原子について複数の法線ベクトルが求められた場合には、原子データＤ２３０の法線ベクトル情報ｎは、上記の座標の全法線ベクトル分の集合を示すこととなる。この法線ベクトルおよび法線ベクトル情報ｎについては後で詳細に説明する。この法線ベクトル情報ｎは、分子構造データＤ２００中で「Ａ［識別番号］→ｎ」という記号で表現される。
【００７１】
また、本実施形態では、この分子構造データＤ２００に対応した分子を取り巻く上記の分子被覆空間が生成される際には、まず、その分子の各構成原子を取り巻く原子被覆空間が生成される。この原子被覆空間は、各構成原子の位置座標およびファンデアワールス半径とに基づいて生成される、ある構成原子に対する、他の原子の結合が可能な空間である。本実施形態では、分子被覆空間は、各構成原子の原子被覆空間の集合空間となっている。原子データＤ２３０の原子被覆空間データｍは、この原子データＤ２３０に対応する構成原子について生成された原子被覆空間の位置と形状を定義したデータである。この原子被覆空間および原子被覆空間データｍについては後で詳細に説明する。この原子被覆空間データｍは、分子構造データＤ２００中で「Ａ［識別番号］→ｍ」という記号で表現される。
【００７２】
原子データＤ２３０の操作フラグＦは、この原子データＤ２３０に対応する構成原子が、何らかの操作の対象となっていること等を示すフラグである。この操作フラグＦは、分子構造データＤ２００中で「Ａ［識別番号］→Ｆ」という記号で表現される。
【００７３】
次に、図７の結合軸データＤ２４０について説明する。
【００７４】
この結合軸データＤ２４０は、結合軸識別番号情報ｂ、原子識別番号情報ａ、結合軸ベクトル情報ｖ、および操作フラグＦを有している。
【００７５】
結合軸データＤ２４０の結合軸識別番号情報ｂは、この結合軸データＤ２４０に対応する結合軸の識別番号を示す情報である。この結合軸識別番号情報ｂは、分子構造データＤ２００中で「Ｂ［識別番号］→ｂ」という記号で表現される。
【００７６】
結合軸データＤ２４０の原子識別番号情報ａは、この結合軸データＤ２４０に対応する結合軸の両端の構成原子それぞれの識別番号を示す情報である。この原子識別番号情報ａは、分子構造データＤ２００中で「Ｂ［識別番号］→ａ」という記号で表現される。
【００７７】
ここで、本実施形態では、各結合軸について、その結合軸の両端の構成原子のうち、識別番号が小さい構成原子から識別番号が大きい構成原子に向かう結合軸ベクトルが決定される。結合軸データＤ２４０の結合軸ベクトル情報ｖは、この結合軸データＤ２４０に対応する結合軸の結合軸ベクトルを次のように定義した情報である。結合軸ベクトル情報ｖは、結合軸ベクトルを、識別番号が小さい構成原子の位置座標を原点の座標としたときの、その原点に対する、識別番号が大きい構成原子の位置座標で定義している。この結合軸ベクトル情報ｖは、分子構造データＤ２００中で「Ｂ［識別番号］→ｖ」という記号で表現される。
【００７８】
結合軸データＤ２４０の操作フラグＦは、この結合軸データＤ２４０に対応する結合軸が、何らかの操作の対象となっていること等を示すフラグである。この操作フラグＦは、分子構造データＤ２００中で「Ｂ［識別番号］→Ｆ」という記号で表現される。
【００７９】
次に、図７のイベントデータＤ２５０について説明する。
【００８０】
このイベントデータＤ２５０は、ベクトル情報ｖ、行列情報Ｒ、および操作フラグＦを有している。
【００８１】
ここで、本実施形態では、このイベントデータＤ２５０は、この分子構造データＤ２００に対応する分子に対する操作イベント毎に生成される。そして、分子構造データＤ２００中では、各操作イベントが、「Ｅ［ｎｅ＿ｍａｘ−操作回数］」という記号で表現される。本実施形態では、ある分子に対して実行できる操作の回数に上限が設けられている。上記の「ｎｅ＿ｍａｘ」は、この操作回数の上限値である。初期の分子構造データＤ２００では、操作回数が「０」となっている。
【００８２】
イベントデータＤ２５０のベクトル情報ｖは、移動操作における移動方向と移動距離とを表わすベクトルを、移動の始点を原点としたときの、その原点に対する移動の終点の位置座標で定義した情報である。このベクトル情報ｖは、分子構造データＤ２００中で「Ｅ［ｎｅ＿ｍａｘ−操作回数］→ｖ」という記号で表現される。
【００８３】
イベントデータＤ２５０の行列情報Ｒは、回転操作における操作前の位置座標から操作後の位置座標への座標変換を定義した三次元変換行列を示す情報である。この行列情報Ｒは、分子構造データＤ２００中で「Ｅ［ｎｅ＿ｍａｘ−操作回数］→Ｒ」という記号で表現される。
【００８４】
イベントデータＤ２５０の操作フラグＦは、分子の付加、あるいは一部の回転による分子の変形等といった操作の種類等を示すフラグである。この操作フラグＦは、分子構造データＤ２００中で「Ｅ［ｎｅ＿ｍａｘ−操作回数］→Ｆ」という記号で表現される。
【００８５】
以下、図３の三次元分子座標データＤ１００に基づいて、図６の初期データ生成部４２０で生成される初期の分子構造データＤ２００について、具体例を挙げて説明する。
【００８６】
ここでは、分子の具体例として蟻酸（分子式はＨＣＯＯＨ）の分子を例にとって説明する。
【００８７】
図８は、蟻酸の分子を示す模式図である。
【００８８】
この図８には、蟻酸の分子が、ボールアンドスティック形式で示されている。
【００８９】
この図８の例では、図３の三次元分子座標データＤ１００における位置座標の記載順がＣ原子、図中左側のＯ原子、図中右側のＯ原子、図中上側のＨ原子、図中下側のＨ原子の順となっている。そのため、各構成原子には、この記際順に［１］〜［５］までの識別番号が割り振られている。また、この各構成原子の識別番号に応じて、上述したように、各結合軸には、両端の構成原子の識別番号の和が小さいものから順に［１］から［４］までの識別番号が割り振られている。そして、この図８の例では、分子構造データＤ２００中で、各構成原子が、Ａ［１］からＡ［５］までの５つの記号で表される。また、各結合軸が、Ｂ［１］からＢ［４］までの４つの記号で表される。さらに、ここでの例では、この図８に示す蟻酸の分子６０１に［１］という識別番号が割り振られている。そして、分子構造データＤ２００中では、この蟻酸の分子６０１がＭ［１］という記号で表現されることとなる。
【００９０】
この図８に示す蟻酸の分子６０１について、図６の初期データ生成部４２０では、次のような初期の分子構造データＤ２００が生成される。
【００９１】
図９は、図８に示す蟻酸の分子について生成される初期の分子構造データを模式的に示す図である。
【００９２】
この図９の分子構造データＤ２００では、分子データＤ２２０や原子データＤ２３０等のデータ部分に属する各種の情報が、図８の蟻酸の分子６０１の構造に応じて設定されている。
【００９３】
分子データＤ２２０の原子データアドレス情報Ａ（Ｍ［１］→Ａ）には、上記の５つの構成原子分のアドレスの集合「｛Ａ１，…，Ａ５｝」が設定されている。また、分子データＤ２２０の結合軸データアドレス情報Ｂ（Ｍ［１］→Ｂ）には、上記の４つの結合軸分のアドレスの集合「｛Ｂ１，…，Ｂ４｝」が設定されている。また、分子データＤ２２０の総原子数情報ｎａ（Ｍ［１］→ｎａ）には「５」が設定され、分子データＤ２２０の総結合軸数情報ｎｂ（Ｍ［１］→ｎｂ）には「４」が設定されている。また、分子データＤ２２０の操作イベント数情報ｎｅ（Ｍ［１］→ｎｅ）には、この図９の分子構造データＤ２００が初期のデータであることから「０」が設定されている。また、分子データＤ２２０の分子被覆空間データｓ（Ｍ［１］→ｓ）には、詳細については後述するように、蟻酸の分子６０１を取り巻く分子被覆空間の位置と形状を定義する複数の座標が設定されている。分子データＤ２２０の操作フラグＦ（Ｍ［１］→Ｆ）には、この図９の分子構造データＤ２００が初期のデータであることから、未操作を示す「Ｎｕｌｌ」が設定されている。
【００９４】
また、原子データＤ２３０については、図８の蟻酸の分子６０１の各構成分子毎に、合計５つの原子データＤ２３０が生成されている。
【００９５】
例えば、Ｃ原子（Ａ［１］）については、次のような原子データＤ２３０が生成されている。この原子データＤ２３０の原子識別番号情報ａには「１」が設定され、原子番号情報Ｎには「６」が設定されている。また、図８から分かるようにＣ原子（Ａ［１］）には３本の結合軸（Ｂ［１］〜Ｂ［３］）が繋がっている。そのため、この原子データＤ２３０の総結合軸数情報ｎｂ（Ａ［１］→ｎｂ）には「３」が設定され、結合軸識別番号情報ｂ（Ａ［１］→ｂ）にはそれら３本の結合軸の識別番号の集合である「｛１，２，３｝」が設定されている。また、この原子データＤ２３０の原子位置座標情報ｃ（Ａ［１］→ｃ）には、Ｃ原子（Ａ［１］）の位置座標が設定されている。また、この原子データＤ２３０の法線ベクトル情報ｎ（Ａ［１］→ｎ）には、詳細については後述する法線ベクトルを定義する座標が設定されている。また、この原子データＤ２３０の原子被覆空間データｍ（Ａ［１］→ｍ）には、詳細については後述する原子被覆空間の位置と形状を定義したデータが設定されている。そして、この原子データＤ２３０の操作フラグＦ（Ａ［１］→Ｆ）には、未操作を示す「Ｎｕｌｌ」が設定されている。
【００９６】
また、結合軸データＤ２４０については、図８の蟻酸の分子６０１の各結合軸毎に、合計４つの結合軸データＤ２４０が生成されている。
【００９７】
例えば、Ｃ原子（Ａ［１］）と図中右側のＯ原子（Ａ［２］）とを結合する結合軸（Ｂ［１］）については、次のような結合軸データＤ２４０が生成されている。この結合軸データＤ２４０の結合軸識別番号情報ｂ（Ｂ［１］→ｂ）には「１」が設定されている。そして、この結合軸データＤ２４０の原子識別番号情報ａには、上記の結合軸（Ｂ［１］）の両端の構成原子の識別番号の集合である「｛１，２｝」が設定されている。また、この結合軸データＤ２４０の結合軸ベクトル情報ｖ（Ｂ［１］→ｖ）には、上記の結合軸（Ｂ［１］）を定義した座標が設定されている。そして、この結合軸データＤ２４０の操作フラグＦ（Ｂ［１］→Ｆ）には、未操作を示す「Ｎｕｌｌ」が設定されている。
【００９８】
また、イベントデータＤ２５０については、各情報に次のような初期値が設定されている。
【００９９】
イベントデータＤ２５０のベクトル情報ｖ（Ｅ［ｎｅ＿ｍａｘ］→ｖ）には、未移動に相当するベクトルを定義する座標が設定されている。また、イベントデータＤ２５０の行列情報Ｒ（Ｅ［ｎｅ＿ｍａｘ］→Ｒ）には、未回転に相当する三次元の単位行列が設定されている。そして、イベントデータＤ２５０の操作フラグＦには、未操作を示す「Ｎｕｌｌ」が設定されている。
【０１００】
次に、図６の初期データ生成部４２０において、初期の分子構造データＤ２００を生成する、初期データ生成処理について説明する。
【０１０１】
尚、以下では、ＧＵＩ用データＤ２１０の生成については、上述したように任意のグラフィック表示ソフトウェアを使った公知であるので図示と説明を割愛する。
【０１０２】
図１０は、初期データ生成処理を示すフローチャートである。
【０１０３】
この図１０のフローチャートが示す初期データ生成処理は、図６の分子設計支援装置４００にユーザの操作によって三次元分子座標データＤ１００が入力されるとスタートする。以下、この三次元分子座標データＤ１００として、図８の蟻酸（ＨＣＯＯＨ）の分子についての三次元分子座標データが入力された場合を適宜に例に挙げながら、初期データ生成処理を説明する。
【０１０４】
処理がスタートすると、まず、図３や図４のＨＤＤ１１３内に、上記の分子データＤ２２０、各構成原子の原子データＤ２３０、およびイベントデータＤ２５０が格納されるメモリ領域が確保される（ステップＳ１０１）。そして、分子データＤ２２０の原子データアドレス情報Ａに、原子データＤ２３０のメモリ領域のアドレスが設定される。ここで、結合軸データＤ２４０のメモリ領域については、後述するように各構成原子間での結合軸の有無が判明した段階で確保され、その際に、結合軸データアドレス情報Ｂの設定も行われる。ここで、本実施形態では、このメモリ領域の確保は、入力された三次元分子座標データＤ１００に対応する分子のサイズに応じた動的アロケートによって行われる。また、イベントデータＤ２５０のメモリ領域については、上記の上限の操作数（ｎｅ＿ｍａｘ）分のイベントデータＤ２５０が十分に格納できるだけのメモリ領域が予め確保される。
【０１０５】
尚、本実施形態では、イベントデータのメモリ領域を確保する方法として、上記のように上限の操作数分のメモリ領域を確保する方法が採用されているが、イベントデータのメモリ領域を確保する方法はこの方法に限るものではない。イベントデータのメモリ領域を確保する方法は、例えば、操作数について上記のような上限を設けず、操作数が増えるに従って適宜に動的アロケートによってメモリ領域を確保するという方法であっても良い。
【０１０６】
次に、各データの操作フラグＦ、分子データＤ２２０の操作イベント数情報ｎｅ、イベントデータＤ２５０の各情報等について初期値が設定される（ステップＳ１０２）。ただし、結合軸データＤ２４０の操作フラグＦについては、後述するように結合軸の有無が判定して各結合軸についてのメモリ領域の確保が終了した段階で初期値の設定が行われる。さらに、このステップＳ１０２では、分子に対する各種処理が実行されるデータ上の空間である次の格子空間が設定される。
【０１０７】
図１１は、図１０の初期データ生成処理で設定される格子空間を示す模式図である。
【０１０８】
この図１１には、上記のステップＳ１０２で設定される格子空間６０２と、図８にも示した蟻酸の分子６０１が示されている。この図１１に示す格子空間６０２が、上述の基本形態にいう仮想三次元空間の一例に相当する。
【０１０９】
本実施形態では、この格子空間６０２の格子間隔Ｌを最小単位として、後述するように原子被覆空間や分子被覆空間が生成される。尚、この図１１には、この格子間隔Ｌの半分の間隔で格子線が描かれている。
【０１１０】
上記の原子被覆空間や分子被覆空間は、各構成原子のファンデアワールス半径に応じた大きさとなる。このため、上記のステップＳ１０２では、格子間隔Ｌが、各構成原子のファンデアワールス半径に基づいて適宜に算出される。ここで、本実施形態では、図６に示す分子設計支援装置４００は、不図示のメモリ内に、主要な原子の元素記号と、その原子の原子番号及びファンデアワールス半径とが対応付けられたテーブルを有している。上記のステップＳ１０２では、このテーブルの参照によって、上記の三次元分子座標データＤ１００に元素記号が記載されている各構成原子のファンデアワールス半径が入手される。そして、その入手されたファンデアワールス半径に基づいて格子間隔Ｌが算出される。
【０１１１】
図１０のステップＳ１０２に続いて、上記の三次元分子座標データＤ１００に基づいて、各構成原子の原子データＤ２３０における原子位置座標情報ｃおよび原子番号情報Ｎの設定が行われる（ステップＳ１０３）。原子位置座標情報ｃには、三次元分子座標データＤ１００に記載されている各構成原子の位置座標を、ステップＳ１０２で設定された上記の格子空間上での位置座標に変換したものが設定される。また、原子番号情報Ｎには、三次元分子座標データＤ１００に記載されている各構成原子の元素記号を使った上記のテーブルの参照で得られる原子番号が設定される。
【０１１２】
次に、三次元分子座標データＤ１００に基づいて、分子データＤ２２０の総原子数情報ｎａ、および各構成原子の原子データＤ２３０における原子識別番号情報ａの設定が行われる（ステップＳ１０４）。分子データＤ２２０の総原子数情報ｎａには、三次元分子座標データＤ１００における、元素記号と位置座標との組の総記載数が設定される。また、原子データＤ２３０における原子識別番号情報ａには、三次元分子座標データＤ１００における、各構成原子に対応した上記の組の記載順が設定される。
【０１１３】
続いて、各構成原子間における原子間距離の算出と、その構成原子間における結合軸の有無の判定が行われる（ステップＳ１０５）。原子間距離の算出は、三次元分子座標データＤ１００に記載されている各構成原子の位置座標を使って行われる。結合軸の有無の判定は、計算された原子間距離と、各構成原子の種類に応じたファンデアワールス半径との比較に基づいて行われる。そして、このステップＳ１０５において、各結合軸の結合軸データＤ２４０のメモリ領域が確保される。そして、分子データＤ２２０の結合軸データアドレス情報Ｂに、結合軸データＤ２４０のメモリ領域のアドレスが設定される。また、結合軸データＤ２４０のメモリ領域の確保の後に、結合軸データＤ２４０の操作フラグＦに初期値が設定される。
【０１１４】
次に、ステップＳ１０５での判定結果に基づいて、分子データＤ２２０の総結合軸数情報ｎｂ、および、存在が確認された各結合軸の結合軸データＤ２４０における結合軸識別番号情報ｂと結合軸ベクトル情報ｖとの設定が行われる（ステップＳ１０６）。分子データＤ２２０の総結合軸数情報ｎｂには、存在が確認された結合軸の総数が設定される。また、上述したように、本実施形態では、存在が確認された各結合軸には、両端の構成原子の識別番号の和が小さいものから順に識別番号が割り振られる。各結合軸データＤ２４０の結合軸識別番号情報ｂには、そのように割り振られた識別番号が設定される。また、上述したように、本実施形態では、存在が確認された各結合軸には、各結合軸の両端の構成原子のうち、識別番号が小さい構成原子から識別番号が大きい構成原子に向かう結合軸ベクトルが決定される。そして、各結合軸データＤ２４０の結合軸ベクトル情報ｖには、その結合軸ベクトルを、次のように定義した座標が設定される。この結合軸ベクトルを定義する座標とは、上述したように、識別番号が小さい構成原子の位置座標を原点の座標としたときの、その原点に対する、識別番号が大きい構成原子の位置座標である。
【０１１５】
ステップＳ１０６に続いて、各構成原子の原子データＤ２３０における結合軸識別番号情報ｂと総結合軸数情報ｎｂ、および、各結合軸の結合軸データＤ２４０における原子識別番号情報ａの設定が行われる（ステップＳ１０７）。原子データＤ２３０の結合軸識別番号情報ｂには、各構成原子に繋がる結合軸の識別番号の集合が設定され、総結合軸数情報ｎｂには、各構成原子に繋がる結合軸の総数が設定される。また、結合軸データＤ２４０の原子識別番号情報ａには、各結合軸の両端の構成原子の識別番号の集合が設定される。
【０１１６】
次に、各構成原子を取り巻く原子被覆空間が生成され、その生成された原子被覆空間に応じた、各構成原子の原子データＤ２３０における原子被覆空間データｍの設定が行われる（ステップＳ１０８）。原子被覆空間は、各構成原子の位置座標およびファンデアワールス半径とに基づいて生成される、ある構成原子に対する、他の構成原子の結合が可能な空間である。そして、上述したように、この原子被覆空間の生成は、ステップＳ１０２で設定された格子空間の格子間隔Ｌを最小単位として行われる。
【０１１７】
図１２は、原子被覆空間の一例を模式的に示す図である。
【０１１８】
この図１２には、上記の蟻酸の分子６０１における５個の構成原子それぞれの原子被覆空間６０３＿１，…，６０３＿５が示されている。
【０１１９】
この原子被覆空間の生成では、まず、対象の分子の各構成原子が、例えば図１１に示すように、上記の原子位置座標情報ｃが示す各構成原子の位置座標に基づいて格子空間６０２内に配置される。そして、各構成原子の位置座標を中心としファンデアワールス半径を有する球体を覆う空間が、格子間隔Ｌを一辺とし、格子空間６０２での格子点を８個の頂点とした単位立方体を組み合わせることで生成される。この各構成原子について生成される空間が、原子被覆空間である。
【０１２０】
尚、本実施形態では、原子被覆空間の一例として立方体単体の空間あるいは立方体の組合せからなる空間が採用されているが、原子被覆空間はこれらに限るものではない。原子被覆空間は、四面体や直方体や八面体等の任意の多面体単体の空間あるいはそのような多面体の組合せからなる空間であっても良い。
【０１２１】
図１２の例では、５個の構成原子のうち、右端に位置する識別番号が「５」の構成原子を除いて、各原子被覆空間が１個の単位立方体で構成されている。識別番号が「５」の構成原子については、この構成原子についての上記の球体が、Ｘ軸方向（図１１参照）に並ぶ２個の単位立方体の境界に位置しているために、原子被覆空間６０３＿５がそれら２個の単位立方体で構成されている。
【０１２２】
図１０のステップＳ１０８では、各構成原子の原子被覆空間がこのように生成されると、原子データＤ２３０における原子被覆空間データｍが次のように設定される。図１２から分かるように各原子被覆空間の上記の格子空間６０２上での位置と形状は、その原子被覆空間を構成する単位立方体の頂点をなす格子点の集合で定義することができる。本実施形態では、これを利用し、上記の原子被覆空間データｍに、原子被覆空間に属する格子点の、格子空間６０２上での座標の集合が設定される。
【０１２３】
ステップＳ１０８で、このように原子被覆空間データｍの設定が終了すると、今度は、分子データＤ２２０における分子被覆空間データｓの設定が行われる（ステップＳ１０９）。
【０１２４】
上述したように、分子被覆空間は、ある分子への、分子外からの結合が可能な空間である。そして、本実施形態では、この分子被覆空間が、上記のように各構成原子について生成された原子被覆空間の集合空間となっている。つまり、本実施形態では、各構成分子について原子被覆空間を上記のように生成することで、それらの集合空間としての分子被覆空間が生成される。
【０１２５】
図１３は、分子被覆空間の一例を模式的に示す図である。
【０１２６】
この図１３には、上記の蟻酸の分子６０１を取り巻く分子被覆空間６０４が示されている。そして、この図１３の分子被覆空間６０４は、図１２に示す５個の原子被覆空間６０３＿１，…，６０３＿５の集合空間となっている。
【０１２７】
図１０のステップＳ１０９では、このような原子被覆空間の集合空間としての分子被覆空間に対応する分子被覆空間データｓが次のように設定される。図１３から分かるように、分子被覆空間の、格子空間６０２上での位置と形状は、この分子被覆空間を構成する単位立方体の頂点をなす格子点の集合で定義することができる。ここで、本実施形態では、分子被覆空間の位置と形状が、その分子被覆空間に属する格子点のうち、分子被覆空間の表面に存在する格子点の集合で定義される。そして、上記の分子被覆空間データｓに、その分子被覆空間の表面に存在する格子点の、格子空間６０２上での座標の集合が設定される。本実施形態では、このように分子被覆空間を定義する格子点として、表面に存在する格子点のみを採用することで、分子被覆空間データｓの規模が抑制されている。ただし、図１３の例では、分子被覆空間６０４に属する全ての格子点が、分子被覆空間６０４の表面に存在しているので、この例では、分子被覆空間データｓに、全ての格子点の座標の集合が設定されることとなる。
【０１２８】
以上に説明した図１０のステップＳ１０９に続いて、次のような法線ベクトルの生成と、原子データＤ２３０の法線ベクトル情報ｎの設定とが行われる（ステップＳ１１０）。
【０１２９】
図１４は、図１０のステップＳ１０９で生成される法線ベクトルの一例を示す図である。
【０１３０】
この図１４には、蟻酸の分子６０１の各構成原子について生成された法線ベクトル６０５が示されている。
【０１３１】
図１０のステップＳ１０９では、まず、上記の分子被覆空間の前後左右上下それぞれの最外表面を延ばした６つの延長面からなる、その分子被覆空間を包括した包括空間が形成される。図１４には、蟻酸の分子６０１を取り巻く分子被覆空間６０４を包括した包括空間６０６が二点鎖線で示されている。
【０１３２】
続いて、ステップＳ１０９では、構成原子の中から、上記の包括空間の表面に属した表面を１面以上有する原子被覆空間に対応した構成原子が選び出される。図１４の例では、全ての構成原子の原子被覆空間が、上記の包括空間の表面に属した面を１面以上有しているので、それら全ての構成原子が選択される。
【０１３３】
そして、ステップＳ１０９では、構成原子の位置座標を発し、上記の包括空間の表面に属した表面に対する法線方向に延びる単位ベクトルである法線ベクトルが、各構成原子について生成される。図１４の例では、例えば、識別番号［１］の構成原子（Ａ［１］）について、構成原子の位置座標から、Ｚ軸方向（図１１参照）に延びる法線ベクトル６０５と、Ｙ軸方向に延びる法線ベクトル６０５との２つの法線ベクトル６０５が生成されている。また、識別番号［２］の構成原子（Ａ［２］）については、構成原子の位置座標から、Ｚ軸の負の方向とＸ軸の負の方向とＹ軸方向との３方向それぞれに延びる３つの法線ベクトル６０５が生成されている。
【０１３４】
本実施形態では、各構成原子についてこのように生成された法線ベクトルが、構成原子の位置座標を原点としたときの、その原点に対する末端の座標で定義される。図１０のステップＳ１０９では、各原子データＤ２３０の法線ベクトル情報ｎに、その原子データＤ２３０に対応する構成原子の法線ベクトルそれぞれを定義した座標の集合が設定される。
【０１３５】
また、本実施形態では、各構成原子について求められた法線ベクトルには、所定ルールに基づいて識別番号が割り振られる。例えば、図１４の例では、識別番号［１］の構成原子（Ａ［１］）の２本の法線ベクトルのうち、図中上方を向いた法線ベクトルに「１」の識別番号が割り振られ、図中手前を向いた法線ベクトルに「２」の識別番号が割り振られている。そして、上記の法線ベクトル情報ｎでは、各法線ベクトルを定義した座標が、この識別番号順に並べられて記述される。
【０１３６】
以上に説明したステップＳ１０９で法線ベクトル情報ｎの設定が終了すると、この初期の分子構造データＤ２００が完成する。
【０１３７】
図６の初期データ生成部４２０においてこのように初期の分子構造データＤ２００が生成されると、表示部４６０が、その生成された分子構造データＤ２００に基づいて、その分子構造データＤ２００に対応した分子の画像を、図３のモニタ１２１に表示する（ステップＳ１１１）。
【０１３８】
このとき、表示部４６０は、上述のスペースフィル形式、ハーフベクタ形式、およびボールアンドスティック形式のうち、分子構造データＤ２００のＧＵＩ用データＤ２１０（図３参照）に設定されている表示形式で分子の画像を表示する。
【０１３９】
この表示部４６０による分子の画像の表示をもって、図１０のフローチャートが示す初期データ生成処理が終了する。
【０１４０】
次に、図６の移動部４３０、干渉判定部４４０、および新分子構造データ生成部４５０で実行される、ある分子に他の分子を付加する処理（分子の付加処理）について説明する。
【０１４１】
図１５は、分子の付加処理におけるステップＳ２０１からステップＳ２０９までの処理の流れを示すフローチャートである。また、図１６は、分子の付加処理におけるステップＳ２１０からステップＳ２１４までの処理の流れを示すフローチャートである。
【０１４２】
これら２つの図のフローチャートが示す分子の付加処理は、処理対象の２つの分子について上記の分子構造データＤ２００の生成が終了し、さらに、不図示の操作画面において、ユーザが分子の付加処理の実行を指示するとスタートする。
【０１４３】
分子の付加処理がスタートすると、まず、被付加分子と、付加分子との２つの分子がユーザ操作を受けて指定される（ステップＳ２０１）。すると、各分子のイベントデータＤ２５０の操作フラグＦに、付加処理を示す「Ａｄｄ」ビットが立てられる。これら２つの分子の指定は、不図示の操作画面上に表示される処理候補の分子の一覧の中から、ユーザが、各分子を選択することで行われる。本実施形態では、これら選択された２つの分子それぞれの画像が、モニタ１２１に表示される。そして、この選択が行われると、被付加分子の現時点での分子構造データＤ２００における分子の識別番号が「１」に設定され直される。また、付加分子の現時点での分子構造データＤ２００における分子の識別番号が「２」に設定され直される。このように指定された被付加分子および付加分子が、上述の基本形態にいう「２つの原子群」の一例に相当する。
【０１４４】
次に、被付加分子と付加分子とのそれぞれについて、結合に係わる構成原子（被結合原子と結合原子）として、ユーザによるモニタ１２１上での操作を受けて、各分子の構成分子の中から所望の構成原子が各々１個選択される（ステップＳ２０２）。すると、選択された結合原子および被結合原子それぞれの原子データＤ２３０の操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられる。
【０１４５】
続いて、結合原子における最小の識別番号「１」に対応した法線ベクトル（結合法線ベクトル）を、次のように回転させる回転行列が算出される（ステップＳ２０３）。即ち、このステップＳ２０３では、この結合法線ベクトルを、被結合原子における最小の識別番号「１」に対応した法線ベクトル（被結合法線ベクトル）の逆向きに回転させる回転行列が算出される。
【０１４６】
図１７は、図１５のステップＳ２０２およびステップＳ２０３の処理の一例を概念的に示す図である。
【０１４７】
この図１７には、図８にも示す蟻酸の分子を例に挙げて、図１５のステップＳ２０２およびステップＳ２０３の処理が示されている。この図１７の例は、２つの蟻酸の分子のうちの一方に、他方の蟻酸の分子を付加するという例である。
【０１４８】
この図１７の例では、２つの蟻酸の分子のうちの第１の蟻酸の分子６０１＿１が識別番号「１」の被付加分子Ｍ［１］であり、第２の蟻酸の分子６０１＿２が識別番号「２」の付加分子Ｍ［２］である。そして、この図１７の例では、第１の蟻酸の分子６０１＿１の識別番号「５」の構成原子Ａ［５］が被結合原子となっている。また、第２の蟻酸の分子６０１＿２の識別番号「１」の構成原子Ａ［１］が結合原子となっている。ここで、第１の蟻酸の分子６０１＿２で選択された構成原子Ａ［５］における最小の識別番号「１」に対応した法線ベクトルは、図１４からも分かるように図中右方を向いた法線ベクトルである。このため、この図１７の例では、この図中右方を向いた法線ベクトルが、被結合法線ベクトル６０５＿１となる。また、第２の蟻酸の分子６０１＿１で選択された構成原子Ａ［１］における最小の識別番号「１」に対応した法線ベクトルは、図１４から分かるように図中上方を向いた法線ベクトルである。そこで、この図中上方を向いた法線ベクトルが結合法線ベクトル６０５＿２となる。
【０１４９】
この図１７の例では、図１５のステップＳ２０３で、結合法線ベクトル６０５＿２を、被結合法線ベクトル６０５＿１の逆向きに回転させる回転処理を定義する回転行列が算出される。そして、図１５のステップＳ２０３では、付加分子のイベントデータＤ２５０の行列情報Ｒに、この算出された回転行列を示す情報が設定される。
【０１５０】
このように回転行列が算出されると、このステップＳ２０３の処理および次のステップＳ２０４において、付加分子に、その回転行列を使って、この回転行列が定義する回転処理が施される。
【０１５１】
まず、ステップＳ２０３において、付加分子の各結合軸の結合軸データＤ２４０の結合軸ベクトル情報ｖが示す、各結合軸ベクトルを定義した座標に、上記の回転行列を作用させる行列演算が実行される。この演算により、付加分子における全ての結合軸ベクトルが回転される。そして、付加分子の全ての結合軸ベクトル情報ｖが、回転後の結合軸ベクトルを示す情報に変換される。
【０１５２】
また、このときには、付加分子の各構成原子の原子データＤ２３０の法線ベクトル情報ｎが示す、各法線ベクトルを定義した座標に、上記の回転行列を作用させる行列演算が実行されることで、全ての法線ベクトルについての回転処理も実行される。その結果、付加分子の全ての法線ベクトル情報ｎも、回転後の法線ベクトルを示す情報に変換される。
【０１５３】
ここで、ある分子の１つの構成原子の位置座標から出発して各結合軸ベクトルに従って結合軸を辿れば、その分子の他の全ての構成原子の位置座標を得ることができる。つまり、このステップＳ２０３で得られた、回転後の結合軸ベクトル情報ｖを用いれば、回転後の付加分子の各構成原子の位置座標を得ることができる。
【０１５４】
ステップＳ２０３に続くステップＳ２０４では、上記の結合原子の位置座標から出発して、回転後の結合軸ベクトル情報ｖが定義する回転後の結合軸ベクトルに従って結合軸を辿ることで、回転後の付加分子の各構成原子の位置座標が求められる。ステップＳ２０４では、付加分子の各構成原子の原子データＤ２３０における原子位置座標情報ｃが、上記のように求められた回転後の位置座標を示す情報に変換される。
【０１５５】
さらに、このステップＳ２０４では、それら回転後の位置座標に基づいて、回転後の付加分子の各構成原子を取り巻く原子被覆空間が生成される。そして、付加分子の各構成原子の原子データＤ２３０における原子被覆空間データｍが、その回転後に生成された原子被覆空間の位置と形状を定義したデータに変換される。
【０１５６】
以上のように付加分子に対する回転処理が終了すると、次に、回転後の付加分子を、被付加分子に向かって次のように平行移動する処理が実行される（ステップＳ２０５）。
【０１５７】
図１８は、図１５のステップＳ２０５で実行される平行移動の一例を示す図である。
【０１５８】
この図１８には、図１７の例での付加処理において、図１５のステップＳ２０５で実行される平行移動の様子が示されている。
【０１５９】
この平行移動は、回転後の上記の結合原子の原子被覆空間を、上記の被結合原子の原子被覆空間に接触させる平行移動である。
【０１６０】
図１８の例では、回転後の第２の蟻酸の分子６０１＿２の結合原子Ａ［１］の原子被覆空間６０３＿１を、第１の蟻酸の分子６０１＿１の被結合原子Ａ［５］の原子被覆空間６０３＿５に接触させるように、第２の蟻酸の分子６０１＿２が動かされる。この接触は、結合原子Ａ［１］の原子被覆空間６０３＿１の次の４格子点６０７を、被結合原子Ａ［５］の原子被覆空間６０３＿５の次の４格子点６０７と合致させることで行われる。結合原子Ａ［１］側の４格子点６０７は、結合原子Ａ［１］の原子被覆空間６０３＿１において、結合法線ベクトルｎ［１］が向かう１面の４隅の頂点である。また、被結合原子Ａ［５］側の４格子点６０７は、被結合原子Ａ［５］の原子被覆空間６０３＿５において、被結合法線ベクトルｎ［１］が向かう１面の４隅の頂点である。
【０１６１】
図１５のステップＳ２０５では、まず、この平行移動における移動方向と移動距離とを表わすベクトルを、移動の始点を原点としたときの、その原点に対する移動の終点の位置座標で定義したベクトル情報ｖが求められる。そして、そのベクトル情報ｖが、付加分子のイベントデータＤ２５０のベクトル情報ｖに設定される。
【０１６２】
ステップＳ２０５では、次に、上記の回転後の付加分子の各構成原子の原子データＤ２３０の原子位置座標情報ｃが示す位置座標に、上記のように設定されたベクトル情報ｖが示すベクトルを作用させることで、付加分子の平行移動が実行される。付加分子の各構成原子の原子データＤ２３０の原子位置座標情報ｃは、その移動後の位置座標を示す情報に変換される。また、回転後の付加分子の各構成原子について生成された原子被覆空間についても、上記のベクトル情報ｖを使った平行移動が実行される。そして、付加分子の各構成原子の原子データＤ２３０の原子被覆空間データｍが、その移動後の原子被覆空間を定義する情報に変換される。
【０１６３】
このステップＳ２０５の処理が終了すると、上記のように変換された付加分子の各構成原子の原子データＤ２３０の原子被覆空間データｍに基づいて、付加分子の分子データＤ２２０の分子被覆空間データｓが再設定される（ステップＳ２０６）。
【０１６４】
以上のステップＳ２０１からステップＳ２０６までの処理は、図６の移動部４３０によって実行される。ステップＳ２０６に続いて、この図６の干渉判定部４４０において、以下のような判定処理が実行される（ステップＳ２０７）。
【０１６５】
まず、再設定後の付加分子の分子被覆空間の全格子点の中に、上記の平行移動によって被結合原子の原子被覆空間の４格子点と共通の４格子点以外に、被付加分子の分子被覆空間の格子点と共通のものがあるか否かが判定される。上記の４格子点以外に、被付加分子の分子被覆空間の格子点と共通のものがあった場合、付加分子を、上記の結合法線ベクトルを軸として９０度回転する回転処理が実行される。この回転処理は、上記のステップＳ２０３の処理と同様に、回転行列の算出と、その回転行列による結合軸ベクトルの回転と、回転後の結合軸ベクトルを用いた各構成原子の位置座標の算出によって行われる。そして、回転後の各構成原子の位置座標に基づいて、回転後の付加分子の分子被覆空間データｓが再設定された後、上記の判定が再度実行される。ステップＳ２０７では、このような判定と付加分子の回転とが、上記の４格子点以外に、被付加分子の分子被覆空間の格子点と共通のものが無いと判定されるまで、３回、即ち回転角度で２７０度を上限として繰返し実行される。
【０１６６】
このステップＳ２０７での判定は、次のような意味を持っている。
【０１６７】
付加分子の分子被覆空間の全格子点の中に、上記の４格子点以外に、被付加分子の分子被覆空間の格子点と共通のものが有るということは、被結合原子と結合原子との結合以外に、意図しない構成原子どうしの結合が生じていることを意味している。そして、ステップＳ２０７では、結合法線ベクトルを回転軸とした、０度、９０度、１８０度、２７０度という４つの回転角度それぞれに応じた付加分子の姿勢の中に、意図しない結合が生じない姿勢があるか否かが判定される。以下、この意図しない結合が生じない姿勢に対応した回転角度を非交差角と呼ぶ。即ち、ステップＳ２０７では、この非交差角が存在しているか否かが判定される。
【０１６８】
そして、この非交差角が存在しているということは、分子被覆空間どうしの意図しない干渉を回避して、即ち、付加分子と被付加分子との意図しない結合を回避して上記のような付加が行えることを意味している。一方で、非交差角が存在していないということは、このような付加では、分子被覆空間どうしの意図しない干渉、即ち、付加分子と被付加分子との意図しない結合が必ず生じてしまうことを意味している。このような場合には、付加分子を被付加分子に問題なく付加することが不可能となる。
【０１６９】
そして、非交差角が存在していないと判定された場合（ステップＳ２０７におけるＮｏ判定）、図６の干渉判定部４４０は、さらに、次の判定処理を実行する（ステップＳ２０８）。
【０１７０】
このステップＳ２０８では、付加分子の結合原子に上記の結合法線ベクトル以外に他の法線ベクトルが無いか否か、および、被付加分子の被結合原子に被結合法線ベクトル以外に他の法線ベクトルが無いか否かが判定される。例えば、図１８の例では、付加分子である第２の蟻酸の分子６０１＿２の結合原子Ａ［１］は、結合法線ベクトルｎ［１］以外にも、図１４に示すように１本の法線ベクトルｎ［２］を有している。また、被付加分子である第１の蟻酸の分子６０１＿１の結合原子Ａ［５］は、被結合法線ベクトルｎ［１］以外に、図１４に示すように２本の法線ベクトルｎ［２］，ｎ［３］を有している。
【０１７１】
ステップＳ２０８において、図１８の例のように他の法線ベクトルが有ると判定された場合（ステップＳ２０８におけるＮｏ判定）、図６の干渉判定部４４０は、次のような処理を行う（ステップＳ２０９）。この場合、干渉判定部４４０は、結合法線ベクトルや被結合法線ベクトルを、上記のような他の法線ベクトルに更新する。そして、更新後、干渉判定部４４０は、移動部４３０に対して、ステップＳ２０３からステップＳ２０６までの処理を再度実行するように指示する。そして、ステップＳ２０６に続いて、干渉判定部４４０自身も、ステップＳ２０７およびステップＳ２０８の処理を再度実行する。このようなステップＳ２０３以降の処理の再実行により、上記の更新後の法線ベクトルを用いた付加分子の回転、平行移動、および、非交差角の有無の判定が実行される。
【０１７２】
図１８の例では、第２の蟻酸の分子６０１＿２は、識別番号［１］の法線ベクトルを結合法線ベクトルとした回転角度が０度の姿勢で、第１の蟻酸の分子６０１＿１に、意図しない結合が生じることなく付加することができる。つまり、この図１８の例では、第２の蟻酸の分子６０１＿２における識別番号［１］の法線ベクトルについて、非交差角として０度が得られることとなる。
【０１７３】
以上に説明した、ステップＳ２０３からステップＳ２０９までの処理は、ステップＳ２０７の処理とステップＳ２０８の処理とのいずれか一方でＹｅｓ判定が得られるまで繰り返される。
【０１７４】
ステップＳ２０７でＹｅｓ判定が得られた場合、結合原子の法線ベクトルと被結合原子の法線ベクトルとの組み合わせの中に、上記のように非交差角が存在して付加分子の付加が問題なく行えるものがあったことを意味している。そして、その場合には、その非交差角に応じた姿勢の付加分子が、被付加分子に付加されてなる新たな分子についての分子構造データＤ２００が、図６の新分子構造データ生成部４５０によって生成される。ここで、本実施形態では、この新たな分子の分子構造データＤ２００の生成は、被付加分子の分子構造データＤ２００への、上記の非交差角に応じた姿勢の付加分子の分子構造データＤ２００に含まれる各種情報の追加等によって行われる。
【０１７５】
まず、図１６のステップＳ２１０で、非交差角に応じた姿勢の付加分子における各構成原子の原子位置座標情報ｃが、被付加分子の各構成原子の原子データＤ２３０に追加される。このとき、付加分子の各構成原子には、新たな分子の分子構造データＤ２００での識別番号として、被付加分子の各構成原子の識別番号に続く識別番号が割り振られる。また、本実施形態では、この新たな識別番号の割振り順は、付加分子での元の識別番号の順となっている。
【０１７６】
図１９は、図１８の例での付加によって得られた新たな分子の一例を示す図である。
【０１７７】
この図１９に示すように、付加後の新たな分子６０８では、元の付加分子の各構成原子に、元の被付加分子の構成原子の最後の識別番号「５」に続いて、「６」以降の識別番号が割り振られている。また、この「６」以降の識別番号は、元の付加分子での識別番号の順に割り振られている。
【０１７８】
ステップＳ２１０に続いて、新たな分子の分子構造データＤ２００の分子データＤ２２０、原子データＤ２３０、および結合軸データＤ２４０における各種情報の再設定が、図６の新分子構造データ生成部４５０によって実行される（ステップＳ２１１）。ここで、この新たな分子では、元の付加分子での結合軸と被付加分子での結合軸に加えて、結合原子と被結合原子とを結合する新たな結合軸が追加されることとなる。このため、ステップＳ２１１では、この新たな結合軸の追加も含めて、上記の各種情報の再設定が行われる。また、このステップＳ２１１では、全ての操作フラグＦ、イベントデータＤ２５０のベクトル情報ｖ、行列情報Ｒの初期化も実行される。
【０１７９】
また、ステップＳ２１１に続いて、新たな分子の各構成原子についての原子被覆空間データｍおよび分子被覆空間データｓの再設定が実行されて、新たな分子の分子構造データＤ２００が完成する（ステップＳ２１２）。
【０１８０】
そして、このように完成した新たな分子の分子構造データＤ２００に基づいて、図６の表示部４６０が、その新たな分子の画像を、図３のモニタ１２１に表示する（ステップＳ２１３）。図１５のステップＳ２０７で、非交差角が存在していると判定された場合（ステップＳ２０７におけるＹｅｓ判定）には、このステップＳ２１３での表示を経て、分子の付加処理が終了する。
【０１８１】
一方、図１５のステップＳ２０８で他の法線ベクトルが無いと判定された場合（ステップＳ２０８におけるＹｅｓ判定）には、図６の干渉判定部４４０は、今回の付加処理では、意図しない結合を回避して分子の付加を行うことは不可能であると判断する。そして、この場合には、図６の表示部４６０が、その旨をユーザに通知するメッセージを表示して、この分子の付加処理が終了する（ステップＳ２１４）。
【０１８２】
以上、図１５から図１９を参照して説明した分子の付加処理によれば、上記のような意図しない結合が生じない場合にのみ、上記の新たな分子についての分子構造データＤ２００の生成が実行される。つまり、図６に示す本実施形態の分子設計支援装置４００によれば、分子の付加についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができる。
【０１８３】
次に、図６の移動部４３０、干渉判定部４４０、および新分子構造データ生成部４５０で実行される、分子の一部を回転する回転処理について説明する。
【０１８４】
本実施形態では、この回転処理は、１つの分子を、回転対象の分子部分と、その分子部分以外の固定対象の分子部分とにデータ上で分け、両者間の結合状態を維持したまま回転対象の分子部分を回転させることで行われる。
【０１８５】
図２０は、分子の一部を回転する回転処理を概念的に示す図である。
【０１８６】
この図２０には、棒状の分子部分６０９＿１と円板状の分子部分６０９＿２とで構成される分子６０９が示されている。この図２０の例では、棒状の分子部分６０９＿１が、回転対象の分子部分に指定されている。そして、この棒状の分子部分６０９＿１と円板状の分子部分６０９＿２との境界に位置する１つの原子６０９＿３を中心として、棒状の分子部分６０９＿１が３次元的に回転移動される。
【０１８７】
この３次元的な回転移動は、図２０に示すように、Ｚ軸からの回転角度ｄ１と、Ｘ軸からの回転角度ｄ２とで定義される。ここで、本実施形態では、ユーザによる回転量の指定は、図３のモニタ１２１上で、回転対象の分子部分をドラッグしたマウスポインタの動きによって指示される。
【０１８８】
図２１は、図３のモニタ１２１上でのマウスポインタの動きを示す図である。
【０１８９】
この図２１に示されているように、モニタ１２１上でのマウスポインタ６１０の動きは、モニタ１２１上の２次元の座標空間におけるｘ軸に沿った変位量ｄｘと、ｙ軸に沿った変位量ｄｙとで表現される。尚、この図２１に示すｘ軸およびｙ軸は、モニタ１２１上の２次元の座標空間での座標軸である。これに対し、図２０に示すＸ軸、Ｙ軸、およびＺ軸は、図１１にも示した、分子に対する各種処理が実行される格子空間での座標軸である。
【０１９０】
本実施形態では、この図２１に示すマウスポインタ６１０の２つの変位量に基づいて、図２０に示す２つの回転角度が算出される。そして、その算出された角度分だけ、回転対象の分子部分が、固定対象の分子部分との境界の原子を中心に、３次元的に回転移動される。
【０１９１】
そして、この回転移動の際に、回転対象の分子部分と固定対象の分子部分との間に、例えば、以下に一例を示すような意図しない結合が生じていないか否かの確認が行われる。
【０１９２】
図２２は、回転移動の際に生じる意図しない結合の一例を模式的に示す図である。
【０１９３】
この図２２には、棒状の分子部分６０９＿１の側が凹面となった分子部分６０９＿２’を、図２１の円板状の分子部分６０９＿２に替えて有した分子６０９’が示されている。この図２２の例でも、棒状の分子部分６０９＿１が回転対象の分子部分となっている。このとき、この図２２の矢印Ｒが示すように、凹面の縁よりも底側に向かって棒状の分子部分６０９＿１を回転してしまうと、２つの分子構造が重なる部分ができてしまい、意図しない結合が生じてしまう。そして、処理対象の分子の規模が大きい場合には、このような意図しない結合の発生を目視で確認することがほぼ不可能となってしまう。
【０１９４】
そこで、本実施形態では、分子の一部を回転する回転処理においても、上述の付加処理と同様に、原子被覆空間や分子被覆空間を使って意図しない結合が自動的に確認される。
【０１９５】
ここで、このような回転処理における意図しない結合の確認は、次のように行うことができる。即ち、回転後の回転対象の分子部分を取り巻く分子被覆空間に属する格子点の中に、固定対象の分子部分を取り巻く分子被覆空間に属する格子点と共通のものが、２つの分子部分の元々の結合によるものを除いて有るか否かの判定によって上記の確認を行うことができる。このとき、本実施形態では、回転対象側の分子被覆空間に属する格子点の中では、回転方向前方で、固定対象側の分子被覆空間の表面と対向する表面に属する格子点のみが上記の判定に供される。本実施形態では、このように判定に供する格子点を限定することで処理の効率化が図られている。
【０１９６】
尚、本実施形態では、このように判定に供する格子点を限定する処理が、上記の回転処理において採用されているが、この格子点を限定する処理の採用は回転処理に限るものではない。例えば、判定に供する格子点を限定する処理は、上記の付加処理に採用されても良い。
【０１９７】
図２３は、図２２の例での回転対象側の分子被覆空間において、回転方向前方で、固定対象側の分子被覆空間の表面と対向する表面と、固定対象側の分子被覆空間におけるその表面とを示す図である。
【０１９８】
この図２３のパート（Ａ）には、図２２の例で回転対象となっている棒状の分子部分６０９＿１を取り巻く分子被覆空間６１１における、図２２中の矢印Ｒが示す回転方向前方で、固定対象側の分子被覆空間の表面と対向する表面が示されている。そして、このパート（Ａ）では、この表面に属する格子点６１２と、回転の中心となる１つの原子６０９＿３が示されている。
【０１９９】
また、図２３のパート（Ｂ）には、図２２の例で固定対象となっている、凹面を有する分子部分６０９＿２’を取り巻く分子被覆空間６１３において、上記の棒状の分子部分６０９＿１が対向する表面が示されている。このパート（Ｂ）にも、この面に属する格子点６１４と、回転の中心となる１つの原子６０９＿３が示されている。
【０２００】
本実施形態では、上述したように、回転対象側の分子被覆空間において、回転方向前方で、固定対象側の分子被覆空間の表面と対向する、図２３のパート（Ａ）に示すような表面に属する格子点のみが上記の判定に供される。これにより、処理の効率化が図られている。
【０２０１】
そして、そのように供された格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものが生じない範囲内で回転処理が実行される。これにより、分子の一部の回転についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することが可能となっている。
【０２０２】
本実施形態における回転処理は、概略、このような処理となっている。
【０２０３】
以下、図６の移動部４３０、干渉判定部４４０、および新分子構造データ生成部４５０で実行される、この回転処理の詳細について説明する。
【０２０４】
図２４は、分子の一部を回転する回転処理の流れを示すフローチャートである。
【０２０５】
この図２４のフローチャートが示す回転処理は、処理対象の１つの分子について上記の分子構造データＤ２００の生成が終了し、さらに、不図示の操作画面において、ユーザが回転処理の実行を指示するとスタートする。
【０２０６】
回転処理がスタートすると、まず、処理対象の１つの分子がユーザ操作を受けて指定される（ステップＳ３０１）。すると、その分子のイベントデータＤ２５０の操作フラグＦに、回転処理を示す「Ｒｏｔａｔｅ」ビットが立てられる。この１つの分子の指定は、不図示の操作画面上に表示される処理候補の分子の一覧の中から、ユーザが、分子を選択することで行われる。本実施形態では、選択された分子の画像が、モニタ１２１に表示される。そして、この選択が行われると、この分子の現時点での分子構造データＤ２００における分子の識別番号が「１」に設定され直される。
【０２０７】
さらに、このステップＳ３０１では、回転の中心となる構成原子に隣接する１つの構成原子（回転ポイント原子）がユーザ操作を受けて１個選択される。すると、選択された回転ポイント原子の原子データＤ２３０の操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられる。
【０２０８】
続いて、このステップＳ３０１では、処理対象の分子が、回転ポイント原子を境に、次のように、回転対象と固定対象との２つの分子部分に分けられる。
【０２０９】
図２５は、回転対象と固定対象との２つの分子部分の一例を示す図である。
【０２１０】
この図２５には、図８にも示す蟻酸の分子を例に挙げた回転処理の様子が示されている。図２５のパート（Ａ）には、処理前の蟻酸の分子６０１が示されている。そして、図２５のパート（Ｂ）には、処理後の蟻酸の分子６０１’が示されている。
【０２１１】
以下、この図２５を参照しながら、処理対象の分子を、回転ポイント原子を境に、回転対象と固定対象との２つの分子部分に分ける分割処理について説明する。
【０２１２】
この図２５の例では、識別番号「３」の構成原子Ａ［３］が、回転ポイント原子として選択されている。
【０２１３】
本実施形態では、この分割処理において、それぞれ回転ポイント原子を含む２つの原子グループが作られる。図２５の例では、まず、識別番号「３」の構成原子Ａ［３］と識別番号「５」の構成原子Ａ［５］とからなる第１グループが作られる。さらに、識別番号「３」の構成原子Ａ［３］と識別番号「１」の構成原子Ａ［１］と識別番号「２」の構成原子Ａ［２］と識別番号「４」の構成原子Ａ［４］とからなる第２グループが作られる。
【０２１４】
次に、この分割処理では、このように作られた２つの原子グループの間で、グループに属する構成原子の数が互いに比較される。そして、構成原子の数が相対的に少ない原子グループが、回転対象の分子部分に決定される。そして、この回転対象の分子部分以外の他の部分が、固定対象の分子部分に決定される。本実施形態では、このように構成原子の数が相対的に少ない分子部分を回転対象とすることでも処理の効率化が図られている。このように決定される回転対象の分子部分および固定対象の分子部分も、上述の基本形態にいう「２つの原子群」の一例に相当している。
【０２１５】
尚、本実施形態では、２つの分子のうち構成原子の数が相対的に少ない分子を移動対象とする処理が、上記のように回転処理において採用されている。上述の付加処理では、移動対象の分子である付加分子は、ユーザ操作によって指定される。しかしながら、構成原子の数が相対的に少ない分子を移動対象とする処理の採用は回転処理に限るものではなく、例えば、そのような処理が付加処理に採用されても良い。この場合、ユーザ操作では、処理対象の２つの分子の指定のみが行われ、それら２つの分子のうち、構成原子の数が相対的に少ない分子が付加分子に決定されることとなる。
【０２１６】
図２５の例では、上記の第１グループの方が構成原子の数が相対的に少ないので、この第１グループが、回転対象の分子部分６１５に決定される。そして、上記の第２グループから回転ポイント原子を除いた残りの部分が、固定対象の分子部分６１６に決定される。
【０２１７】
そして、この図２５の例では、回転対象の分子部分６１５が、回転ポイント原子である識別番号「３」の構成原子Ａ［３］に隣接する識別番号「１」の構成原子Ａ［１］を回転中心として回転処理が実行される。
【０２１８】
図２４のステップＳ３０１では、このような分子の分割が終了すると、回転対象の分子部分の各構成原子の原子データＤ２３０における操作フラグＦに、回転対象であることを示す「Ｒｏｔａｔｅ」ビットが立てられる。また、回転対象の分子部分の各結合軸の結合軸データＤ２４０における操作フラグＦにも、この「Ｒｏｔａｔｅ」ビットが立てられる。さらに、このステップＳ３０１では、固定対象の分子部分に属し、回転ポイント原子に隣接して回転中心となる構成原子の原子データＤ２３０における操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられる。
【０２１９】
ステップＳ３０１でこのような一連の処理が実行されると、次に、元の分子の分子被覆空間データｓが、元の分子被覆空間から回転対象の分子部分の各構成原子の原子被覆空間を除いた空間を定義した情報に変換される（ステップＳ３０２）。この変換後の分子被覆空間データｓが表わす空間は、上記の固定対象の分子部分を取り巻く分子被覆空間となる。
【０２２０】
ここで、上述したように分子被覆空間データｓは、分子被覆空間の表面に属する格子点の座標の集合であり、原子被覆空間データｍは、原子被覆空間の表面に属する格子点の座標の集合である。このため、ステップＳ３０２の処理は、元の分子の分子被覆空間データｓが示す格子点の座標の中から、回転対象の分子部分の各構成原子の原子被覆空間データｍが示す格子点の座標を除くという処理になる。
【０２２１】
このとき、固定対象側にある回転中心の原子の原子被覆空間と、回転対象側にある回転ポイント原子の原子被覆空間との間には、これら２つの構成原子の結合により互いに共通する格子点が存在している。例えば、図２５の回転中心の原子（Ａ［１］）の原子被覆空間と回転ポイント原子（Ａ［３］）の原子被覆空間との間には、図１３に示すように、互いに共通する２つの格子点が存在している。
【０２２２】
このため、分子被覆空間データｓが示す格子点の座標の中から、回転対象側の格子点の座標を単純に除くと、上記のように元々共通の格子点も除かれてしまい、固定対象側の分子被覆空間を示す分子被覆空間データｓが不完全なものとなってしまう。
【０２２３】
そこで、ステップＳ３０２では、格子点の座標の単純な除去の後で、元々共通の格子点の座標が補完される。これにより、完全な状態での、固定対象側の分子被覆空間を示す分子被覆空間データｓが求められる。
【０２２４】
次に、ユーザによる、モニタ１２１上でのマウスポインタ６１０の今回の回転処理に係る移動操作を受けて、以下に説明するように、回転対象の分子部分の各結合軸の回転が行われる（ステップＳ３０３）。
【０２２５】
このステップＳ３０３では、まず、図２１を参照して説明したように、この時点でのマウスポインタ６１０の変位量から、この時点での図２０の回転角度が算出される。そして、その回転角度が示す回転処理を定義する回転行列が算出される。次に、このステップＳ３０３では、回転対象の各結合軸の結合軸ベクトルに、その算出された回転行列が作用される。これにより、回転後の各結合軸についての結合軸ベクトルが求められる。
【０２２６】
さらに、このステップＳ３０３では、上記の回転ポイント原子と上記の回転中心の原子とを繋ぐ結合軸の、結合軸ベクトルにおける回転前後での差分ベクトルが求められる。この差分ベクトルは、回転ポイント原子の回転方向を表している。このステップＳ３０３では、この差分ベクトルを示す情報が、回転ポイント原子の原子データＤ２３０の法線ベクトル情報ｎに設定される。
【０２２７】
ステップＳ３０３において以上の処理が実行されると、次に、上記の回転後の各結合軸についての結合軸ベクトルを使って、回転対象の分子部分の各構成原子について、回転後の位置座標が求められる（ステップＳ３０４）。このステップＳ３０４では、これらの各構成原子の原子データＤ２３０における原子位置座標情報ｃが、上記のように求められた回転後の位置座標を示す情報に変換される。
【０２２８】
さらに、このステップＳ３０４では、それら回転後の位置座標に基づいて、回転後の各構成原子を取り巻く原子被覆空間が生成される。この回転後の各構成原子を取り巻く原子被覆空間の生成は、回転対象の分子部分についての、回転後の分子被覆空間の生成を意味する。
【０２２９】
ここで、回転ポイント原子の原子被覆空間と固定対象の分子部分の分子被覆空間との間では、上述したように、回転ポイント原子と回転中心の原子との元々の結合により、一部の格子点が互いに共通の。このとき、両者間に、このような格子点以外に互いに共通した格子点が存在しているとすると、それは、回転対象の分子部分と固定対象側の分子との間に意図しない結合が発生していることを意味する。そこで、本実施形態では、回転対象側の回転後の各原子被覆空間と固定対象側の分子被覆空間との間に、元々共通の格子点以外に互いに共通した格子点が存在しているか否かが判定される。
【０２３０】
このとき、本実施形態では、この判定を、回転対象側の各原子被覆空間に属する格子点の全てについて行うのではなく、次のような一部の格子点についてのみ行うことで、処理の効率化が図られている。本実施形態では、この判定に供される格子点として、回転対象側の各原子被覆空間において、回転ポイント原子の回転方向前方側の表面に属する格子点が採用される。
【０２３１】
上記のステップＳ３０３では、回転ポイント原子の回転方向を表わす情報として、上記の差分ベクトルが、回転ポイント原子の原子データＤ２３０の法線ベクトル情報ｎに設定されている。そこで、本実施形態では、回転対象側の各原子被覆空間に属する格子点の中から、各原子被覆空間において回転ポイント原子の法線ベクトル情報ｎが表わすベクトルが向かう表面に属する格子点が抽出される。
【０２３２】
上記のステップＳ３０４では、回転対象側の各原子被覆空間の生成の後、その生成後の各原子被覆空間について、上記のような格子点の抽出が実行される。そして、そのように抽出された格子点の座標が、各原子被覆空間を定義する原子被覆空間データｍに設定される。
【０２３３】
以上に説明したステップＳ３０１からステップＳ３０４までの処理は、図６の移動部４３０によって実行される。
【０２３４】
次に、回転対象側の各原子被覆空間から上記のように抽出され原子被覆空間データｍに座標が設定された格子点について上記のような判定が、図６の干渉判定部４４０によって行われる（ステップＳ３０５）。即ち、このステップＳ３０５では、上記のように抽出された格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものが、元々共通のもの以外に存在しているか否かが判定される。
【０２３５】
このステップＳ３０５では、まず、ステップＳ３０４で回転対象側の各原子被覆空間データｍに座標が設定された格子点から、固定対象側にある上記の回転中心の原子の原子被覆空間の格子点と共通のものが除かれる。これにより、元々共通の格子点が判定対象から除外される。そして、このステップＳ３０５では、その除外後の回転対象側の格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものがあるか否かが判定される。この判定により、回転後に、回転対象の分子部分と固定対象の分子部分との間に意図しない構成原子どうしの結合が生じているか否かが確認される。
【０２３６】
そして、そのような格子点がないと判定された場合（ステップＳ３０５におけるＮｏ判定）には、さらに、モニタ１２１上でのマウスポインタ６１０の移動が止まっているか否かが判定される（ステップＳ３０６）。つまり、このステップＳ３０６では、ユーザによる回転指示が終わって、マウスポインタ６１０がユーザの所望する位置まで動かされたか否かが判定される。このステップＳ３０６の処理は、図６の移動部４３０によって実行される。
【０２３７】
マウスポインタ６１０が未だ動いていると判定された場合（ステップＳ３０６におけるＮｏ判定）、処理がステップＳ３０３まで戻り、図６の移動部４３０によって、そのステップＳ３０３からステップＳ３０５までの処理が繰り返される。
【０２３８】
この図２４のフローチャートでは、これらの処理は、上記のステップＳ３０５とステップＳ３０６とのいずれかでＹｅｓ判定が得られるまで繰り返される。つまり、回転対象の分子部分と固定対象の分子部分との間に意図しない結合が生じるか、ユーザによる回転指示が終わるまで、回転処理が実行される。
【０２３９】
上記の２種類の判定のいずれかでＹｅｓ判定が得られると、回転後の回転対象の分子部分と固定対象の分子部分とからなる、回転処理後の分子に対応した新たな分子構造データＤ２００が生成される（ステップＳ３０７）。このステップＳ３０７の処理は、図６の新分子構造データ生成部４５０によって実行される。
【０２４０】
ここで、上記のステップＳ３０５でのＹｅｓ判定を経てこのステップＳ３０７に至った場合、回転対象の分子部分の各構成原子の位置座標として、１回前におけるステップＳ３０４で設定された原子位置座標情報ｃが示す位置座標が採用される。これは、ステップＳ３０５でのＹｅｓ判定を経たということが、最後で意図しない構成原子どうしの結合が生じていること意味しているためである。そのため、この場合には、意図しない結合が生じる１回前で設定された原子位置座標情報ｃが示す位置座標が採用される。
【０２４１】
一方、ステップＳ３０６でのＹｅｓ判定を経てこのステップＳ３０７に至った場合には、回転対象の分子部分の各構成原子の位置座標として、最後におけるステップＳ３０４で設定された原子位置座標情報ｃが示す位置座標が採用される。これは、ステップＳ３０６でのＹｅｓ判定を経たということが、意図しない構成原子どうしの結合が生じることなく最後まで回転処理が行われたことを意味しているためである。そのため、この場合には、その最後に設定された原子位置座標情報ｃが示す位置座標が採用される。
【０２４２】
図２６は、図２５の例での回転処理によって得られた新たな分子の一例を示す図である。
【０２４３】
この図２６に示すように、図２４の回転処理によれば、回転後の回転対象の分子部分６１５と、固定対象の分子部分６１６との間で意図しない結合が回避された新たな分子６０１’が得られる。
【０２４４】
そして、図２４の回転処理では、このような新たな分子の分子構造データＤ２００に基づいて、図６の表示部４６０が、その新たな分子の画像を、図３のモニタ１２１に表示する（ステップＳ３０８）。図２４の回転処理は、この表示部４６０による表示を経て終了する。
【０２４５】
以上、図２４から図２６を参照して説明した回転処理によれば、上記のような意図しない結合が生じない範囲で、回転対象の分子部分についての回転が実行される。つまり、図６に示す本実施形態の分子設計支援装置４００によれば、分子の回転処理についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができる。
【０２４６】
ここで、以上に説明した本実施形態の分子設計支援装置４００では、付加処理における分子の分子被覆空間、あるいは回転処理における分子部分の分子被覆空間が、構成原子の原子被覆空間の集合となっている。そして、それらの分子被覆空間に対応する分子被覆空間データｓは、各原子被覆空間の頂点に相当する上記の格子点の座標の集合によって分子被覆空間の位置と形状を定義したデータとなっている。そして、図６の干渉判定部４４０は、上記の分子や分子部分の意図しない結合に相当する分子被覆空間の干渉を、２つの分子被覆空間の間で互いに共通する意図しない格子点を見つけることで認識する。このような処理により、本実施形態の分子設計支援装置４００では、上記の分子や分子部分の意図しない結合の有無が容易に判定されることとなっている。
【０２４７】
このことは、上述の基本形態に対し、以下のような応用形態が好適であることを意味している。この応用形態では、上記被覆空間生成部が、次のような単位被覆空間の集合を、上記原子群を取り巻く被覆空間として生成するものとなっている。まず、単位被覆空間は、上記仮想三次元空間内に生成した格子点を頂点とし構成原子１つずつを取り巻くものである。そして、単位被覆空間の集合は、結合軸で結合された２つの構成原子それぞれを取り巻く２つの単位被覆空間が互いに接する単位被覆空間の集合であって、上記原子群を構成する複数の構成原子をそれぞれ取り巻く複数の単位被覆空間の集合となっている。そして、この応用形態では、上記干渉判定部は、上記２つの被覆空間どうしの、上記２つの原子群の結合箇所を除く箇所での干渉の存在を、その２つの被覆空間に共通の格子点を検出することで判定するものとなっている。
【０２４８】
本実施形態における移動部４３０は、この応用形態における被覆空間生成部を兼ねた一例にも相当している。また、本実施形態における干渉判定部４４０は、この応用形態における干渉判定部の一例にも相当している。また、本実施形態における原子被覆空間が、この応用形態における単位被覆空間の一例に相当する。
【０２４９】
また、本実施形態では、上記の分子被覆空間データｓにおいて、分子被覆空間の位置と形状が、その分子被覆空間に属する格子点のうち、分子被覆空間の表面に存在する格子点の集合で定義される。そして、図６の干渉判定部４４０は、上記の分子や分子部分の意図しない結合に相当する分子被覆空間の干渉を、２つの分子被覆空間それぞれの表面上で共通する格子点を検出することで判定する。本実施形態では、このように分子被覆空間の表面に存在する格子点のみを上記の判定に持ちいることで処理が効率化されている。
【０２５０】
このことは、上記単位被覆空間の集合を上記被覆空間として生成する上述の応用形態に対し、以下のような応用形態がさらに好適であることを意味している。このさらに好適な応用形態では、上記干渉判定部は、上記２つの被覆空間どうしの、上記２つの原子群の結合箇所を除く箇所での干渉の存在を、次のような格子点を検出することで判定するものとなっている。即ち、この干渉判定部は、上記２つの被覆空間に共通であって、かつその２つの被覆空間双方の表面に位置する格子点を検出する。
【０２５１】
本実施形態における干渉判定部４４０は、この応用形態における干渉判定部の一例にも相当している。
【０２５２】
また、本実施形態では、上記の回転処理において分子被覆空間の干渉についての判定に供する格子点が次のように限定されている。即ち、本実施形態では、回転対象側の分子被覆空間と固定対象側の分子被覆空間との間で互いに向き合った表面上の格子点のみが上記の判定に供される。本実施形態では、このように判定に供する格子点を限定することで処理の効率化が図られている。
【０２５３】
このことは、上記の基本形態に対し、次のような応用形態が好適であることを意味している。この応用形態では、上記干渉判定部は、上記２つの被覆空間どうしの、上記２つの原子群の結合箇所を除く箇所での干渉の存在を、次のような格子点を検出することで判定するものとなっている。即ち、この干渉判定部は、上記２つの被覆空間に共通であって、かつその２つの被覆空間の間で互いに向き合った表面に位置する表面上で共通する格子点を検出する。
【０２５４】
本実施形態における干渉判定部４４０は、この応用形態における干渉判定部の一例にも相当している。
【０２５５】
また、本実施形態では、上記の回転処理において構成原子の数が相対的に少ない分子部分が回転対象に決定される。本実施形態では、このような決定によって処理の効率化が図られている。
【０２５６】
このことは、上記の基本形態に対し、上記分子移動部が、上記２つの原子群のうち、構成原子の数が相対的に少ない原子群を移動させるものであるという応用形態が好適であることを意味している。
【０２５７】
本実施形態の移動部４３０は、この応用形態における分子移動部を兼ねた一例にも相当している。
【０２５８】
また、図６に示す本実施形態の分子設計支援装置４００は、分子構造データＤ２００に基づいて分子の画像をモニタ１２１に表示する表示部４６０を有している。この表示部４６０による表示により、ユーザは分子構造を目視確認することができる。
【０２５９】
このことは、上記の基本形態に対し、前記分子構造データによって表わされる分子の画像を表示する表示部をさらに備えた応用形態が好適であることを意味している。
【０２６０】
本実施形態の表示部４６０は、この応用形態における表示部の一例に相当する。
【０２６１】
また、本実施形態では、付加処理や回転処理の後の新たな分子を示す分子構造データＤ２００が新分子構造データ生成部４５０で生成される。そして、上記の表示部４６０は、この新分子構造データ生成部４５０で生成された分子構造データＤ２００に基づいた新たな分子の画像の表示も実行する。これにより、ユーザは、処理の前後それぞれにおける分子構造を目視確認することができる。
【０２６２】
次に、以上に説明した実施形態の説明と若干重複するが、本件の実施例について説明する。以下説明する実施例では、初期の分子構造データと、図１５および図１６に示す分子の付加処理と、図２４に示す回転処理とのそれぞれを具体的な分子に適用して技術的効果を確認した。
【０２６３】
尚、以下の実施例では、具体的な分子として、上記の実施形態の説明で一例として用いた蟻酸の分子が使われている。
【０２６４】
まず、これらの実施例で共通に使われる蟻酸の分子についての三次元分子座標データＤ１００について説明する。
【０２６５】
図２７は、蟻酸の分子についての三次元分子座標データを示す図である。
【０２６６】
この図２７のパート（Ａ）には、蟻酸の分子についての三次元分子座標データＤ１００が示されている。また、図２７のパート（Ｂ）には、この三次元分子座標データＤ１００を使って生成される初期の分子構造データＤ２００が示す蟻酸の分子６０１が示されている。
【０２６７】
図２７のパート（Ａ）に示す三次元分子座標データＤ１００では、蟻酸の各構成原子の元素記号並びに位置座標が、Ｃ原子、２つのＯ原子、２つのＨ原子の順で記載されている。尚、ここでの実施例では、各構成原子の位置座標が、付加処理等が実行される格子空間上での位置座標で記載されている。
【０２６８】
そして、図２７のパート（Ｂ）に示す各構成原子には、上記の三次元分子座標データＤ１００での記載順に応じた識別番号が割り振られている。
【０２６９】
図２８は、図２７の三次元分子座標データを使った、図１０の初期データ生成処理によって生成された初期の分子構造データを示す図である。尚、この図２８でも、上述の実施形態での初期の分子構造データと同様に、ＧＵＩ用データについては図示が割愛されている。
【０２７０】
まず、分子データＤ２２０には、操作フラグＦ、総原子数情報ｎａ、総結合軸数情報ｎｂ、操作イベント数情報ｎｅ、原子データアドレス情報Ａ、結合軸データアドレス情報Ｂ、分子被覆空間データｓの順で具体的な数値等が記載されている。ここで、原子データアドレス情報Ａの内容を示す「Ａ［１：５］」は、識別番号が「１」から「５」までの各構成原子の原子データアドレスを示している。同様に、結合軸データアドレス情報Ｂの内容を示す「Ｂ［１：４］」は、識別番号が「１」から「４」までの各結合軸の結合軸データアドレスを示している。
【０２７１】
また、分子被覆空間データｓの内容を示す「３１」は、次のような事柄を示している。
【０２７２】
上記の蟻酸の分子６０１の分子被覆空間の表面上には、図１３に示すように３１個の格子点が存在している。このため、この分子被覆空間は、これら３１個の格子点の位置座標の集合で定義することができる。分子被覆空間データｓの内容を示す「３１」は、分子被覆空間を定義するこれら３１個の格子点の位置座標の集合を示している。
【０２７３】
また、原子データＤ２３０は、三次元分子座標データＤ１００に記載の各構成原子毎に、合計５つ生成されている。そして、各原子データＤ２３０には、操作フラグＦ、原子識別番号情報ａ、原子番号情報Ｎ、総結合軸数情報ｎｂ、結合軸識別番号情報ｂ、原子位置座標情報ｃ、法線ベクトル情報ｎ、原子被覆空間データｍの順で具体的な数値等が記載されている。
【０２７４】
尚、上述したように、この実施例では、図２７の三次元分子座標データＤ１００において、既に、各構成原子の位置座標が、上記の格子空間上の座標で記載されている。このため、図２８の原子データＤ２３０では、図２７の三次元分子座標データＤ１００中の各構成原子の位置座標がそのまま原子位置座標情報ｃとして採用されている。また、この図２８では、法線ベクトル情報ｎと原子被覆空間データｍについては、記号のみが示されている。これらの情報の詳細については後述する。
【０２７５】
また、結合軸データＤ２４０は、図２７に記載の各結合軸毎に、合計４つ生成されている。そして、各結合軸データＤ２４０には、操作フラグＦ、結合軸識別番号情報ｂ、原子識別番号情報ａ、結合軸ベクトル情報ｖの順で具体的な数値等が記載されている。
【０２７６】
さらに、イベントデータＤ２５０には、操作フラグＦ、ベクトル情報ｖ、行列情報Ｒの順で具体的な数値等が記載されている。
【０２７７】
このイベントデータＤ２５０における各情報と、上記の各データにおける操作フラグＦには、図２８の初期の分子構造データＤ２００では、上述したように、各々「Ｎｕｌｌ」や単位行列等の初期値が設定されている。
【０２７８】
図２９は、図２８の法線ベクトル情報ｎと原子被覆空間データｍの具体的な数値を示す図である。
【０２７９】
ここで、原子被覆空間データｍは、上述したように、原子被覆空間に属する格子点の、格子空間６０２上での座標の集合である。これに対し、この図２９では、各原子被覆空間の、上記の格子空間上でのＸ軸範囲、Ｙ軸範囲、Ｚ軸範囲が記載されている。これにより、図２９では記載の簡略化が図られている。尚、実際の原子被覆空間データｍは、これらの範囲内に属する格子点の座標の集合となる。例えば、識別番号「１」の構成原子（Ａ［１］）の原子被覆空間データｍは、（０，０，０）、（０，１，０）、…、（１，１，１）という８個の座標の集合となる。また、識別番号「５」の構成原子（Ａ［５］）の原子被覆空間データｍは、上記のＸ軸範囲が長く、（２，０，−１）、（２，１，−１）、…、（４，１，０）という１２個の座標の集合となる。
【０２８０】
また、この図２８には、各構成原子の原子データＤ２３０における法線ベクトル情報ｎの具体的な値が示されている。例えば、識別番号「１」の構成原子（Ａ［１］）の法線ベクトル情報ｎは、（０，０，１）、（０，１，０）という２個の座標の集合となる。また、この法線ベクトル情報ｎに含まれる（０，０，１）という座標は、識別番号「１」の構成原子（Ａ［１］）の位置座標（０．２，０．５，０．５）を原点としたときの、この原点を発する１つの法線ベクトルの末端座標を示している。
【０２８１】
ここでの実施例では、図２８および図２９に示した初期の分子構造データＤ２００を使って、分子の付加処理と回転処理とを実行した。
【０２８２】
まず、分子の付加処理の実施例について説明する。
【０２８３】
図３０は、分子の付加処理の実施例を模式的に示す図である。
【０２８４】
以下の実施例は、上記の初期の分子構造データＤ２００を使い、図１５から図１９に示した分子の付加処理を実行した例である。
【０２８５】
この図３０に示す付加処理は、図２８および図２９に示した初期の分子構造データＤ２００が示す第１の蟻酸の分子６０１＿１に、全く同じ分子構造データＤ２００が示す第２の蟻酸の分子６０１＿２を付加する処理である。そして、第１の蟻酸の分子６０１＿１が識別番号「１」の被付加分子Ｍ［１］であり、第２の蟻酸の分子６０１＿２が識別番号「２」の付加分子Ｍ［２］である。また、第１の蟻酸の分子６０１＿１の識別番号「５」のＨ原子Ａ［５］が被結合原子となっている。そして、第２の蟻酸の分子６０１＿２の識別番号「１」のＣ原子Ａ［１］が、このＨ原子Ａ［５］に結合される結合原子となっている。
【０２８６】
図３１は、図２８および図２９に示した初期の分子構造データＤ２００を使い、図１５から図１９に示した分子の付加処理を実行したときの経緯を示すフローチャートにおけるステップＳ４０１からステップＳ４０７までの流れを示す図である。また、図３２は、そのフローチャートにおけるステップＳ４０８からステップＳ４１１までの処理の流れを示す図である。
【０２８７】
まず、不図示の操作画面において付加処理の実行が指示された。そして、その操作画面において被付加分子Ｍ［１］と、付加分子Ｍ［２］との２つの分子がユーザ操作を受けて指定された（ステップＳ４０１）。この指定を受けて、各分子のイベントデータＤ２５０の操作フラグＦに、付加処理を示す「Ａｄｄ」ビットが立てられた。この図３１のステップＳ４０１が、上記の図１５のステップＳ２０１に相当する。
【０２８８】
次に、被付加分子Ｍ［１］における被結合原子（Ａ［５］）と、付加分子Ｍ［２］における結合原子（Ａ［１］）とが選択された（ステップＳ４０２）。そして、選択された各構成原子それぞれの原子データＤ２３０の操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられた。この図３２のステップＳ４０２が、上記の図１５のステップＳ２０２に相当する。
【０２８９】
続いて、結合原子（Ａ［１］）における結合法線ベクトル（ｎ［１］）を、被結合原子（Ａ［５］）における被結合法線ベクトル（ｎ［１］）の逆向きに回転させる回転行列が算出された（ステップＳ４０３）。算出された回転行列は、付加分子Ｍ［２］のイベントデータＤ２５０の行列情報Ｒに設定された。
【０２９０】
そして、付加分子Ｍ［２］の各結合軸ベクトル情報ｖが示す座標に、上記の回転行列を作用させる行列演算が実行された（ステップＳ４０４）。この演算により、付加分子Ｍ［２］の各結合軸ベクトル情報ｖは、行列演算後の座標値に変換された。この演算は、付加分子Ｍ［２］における各結合軸ベクトルの回転を意味している。
【０２９１】
また、ステップＳ４０４では、付加分子Ｍ［２］の各法線ベクトル情報ｎが示す座標に上記の回転行列を作用させる行列演算も実行された。この演算により、付加分子Ｍ［２］の各法線ベクトル情報ｎも、行列演算後の座標値に変換された。この演算は、付加分子Ｍ［２］における各法線ベクトルの回転を意味している。
【０２９２】
この図３１のステップＳ４０３とステップＳ４０４とを合せた処理が、上記の図１５のステップＳ２０３に相当する。
【０２９３】
次に、付加分子Ｍ［１］の結合原子（Ａ［１］）の位置座標から出発して、回転後の結合軸ベクトルに従って結合軸を辿ることで、回転後の付加分子の各構成原子の位置座標が求められた（ステップＳ４０５）。例えば、識別番号［２］の構成原子（Ａ［２］）の位置座標は、結合原子（Ａ［１］）の位置座標から、識別番号［１］の結合軸（Ｂ［１］）の回転後の結合軸ベクトルを辿った先の座標となる。ステップＳ４０４では、このような処理が、識別番号［２］から［５］までの各構成原子について行われた。
【０２９４】
さらに、これら回転後の位置座標に基づいて、以下の処理が実行された（ステップＳ４０６）
まず、ステップＳ４０６では、回転後の付加分子Ｍ［２］の各構成原子を取り巻く原子被覆空間が生成された。そして、付加分子Ｍ［２］の各構成原子の原子被覆空間データｍが、その回転後に生成された原子被覆空間の位置と形状を定義したデータに変換された。
【０２９５】
この図３１のステップＳ４０５と、ステップＳ４０６で原子被覆空間データｍが設定される処理とを合せた処理が、上記の図１５のステップＳ２０４に相当する。
【０２９６】
次に、回転後の付加分子Ｍ［２］の結合原子Ａ［１］の原子被覆空間における次の４格子点を、被付加分子Ｍ［１］の被結合原子Ａ［５］の原子被覆空間における次の４格子点と合致させる平行移動が、付加分子Ｍ［２］について実行された。結合原子Ａ［１］側の４格子点は、結合原子Ａ［１］の原子被覆空間において、結合法線ベクトルｎ［１］が向かう１面の４隅の頂点である。また、被結合原子Ａ［５］側の４格子点は、被結合原子Ａ［５］の原子被覆空間において、被結合法線ベクトルｎ［１］が向かう１面の４隅の頂点である。
【０２９７】
ステップＳ４０６では、このような平行移動が次のような一連の処理によって行われた。
【０２９８】
ステップＳ４０６では、まず、この平行移動における移動方向と移動距離とを表わすベクトルを、移動の始点を原点としたときの、その原点に対する移動の終点の位置座標で定義したベクトル情報ｖが求められた。そして、そのベクトル情報ｖが、付加分子Ｍ［２］のイベントデータＤ２５０のベクトル情報ｖに設定された。次に、回転後の付加分子Ｍ［２］の各原子位置座標情報ｃが示す位置座標に、上記のように設定されたベクトル情報ｖが示すベクトルを作用させることで、付加分子［２］の平行移動が実行された。
【０２９９】
さらに、回転後の付加分子Ｍ［２］の各構成原子について生成された原子被覆空間についても、上記のベクトル情報ｖを使った平行移動が実行された（ステップＳ４０７）。付加分子Ｍ［２］の各構成原子の原子データＤ２３０の原子被覆空間データｍは、その移動後の原子被覆空間を定義する情報に変換された。そして、ステップＳ４０７では、その変換された原子被覆空間データｍに基づいて、付加分子Ｍ［２］の分子被覆空間データｓが再設定された。
【０３００】
この図３１のステップＳ４０６と、ステップＳ４０７で原子被覆空間データｍが設定される処理とを合せた処理が、上記の図１５のステップＳ２０５に相当する。また、ステップＳ４０７で付加分子Ｍ［２］の分子被覆空間データｓが再設定される処理が、図１５のステップＳ２０６に相当する。
【０３０１】
次に、付加分子Ｍ［２］の分子被覆空間の全格子点の中に、被結合原子（Ａ［５］）の原子被覆空間の４格子点と共通の４格子点以外に、被付加分子Ｍ［１］の分子被覆空間の格子点と共通のものがあるか否かが判定された（ステップＳ４０８）。
【０３０２】
上述したように、図１５のステップＳ２０７からステップＳ２０９では、このような判定が、法線ベクトルを適宜に替えて、その法線ベクトルを軸として付加分子を回転させながら、上記のような共通が無いと判定されるまで繰返し実行される。
【０３０３】
そして、図３０の実施例では、一回目の判定で、上記のような共通が無いと判定された。
【０３０４】
この図３２のステップＳ４０８が、上記の図１５のステップＳ２０７から図１６のステップＳ２１０までの一連の処理に相当する。
【０３０５】
ここでの実施例では、この一回目の判定に対応する付加分子Ｍ［２］が、被付加分子Ｍ［１］に付加されてなる新たな分子についての分子構造データＤ２００を生成するために、まず、次の処理が実行された（ステップＳ４０９）。
【０３０６】
ステップＳ４０９では、上記の付加分子Ｍ［２］の分子構造データＤ２００が、被付加分子Ｍ［１］の分子構造データＤ２００に追加された。この追加によって、まず、この新たな分子に、被付加分子Ｍ［１］の識別番号「１」が割り振られる。また、分子構造データＤ２００の追加の際には、付加分子Ｍ［２］の各構成原子や各結合軸には、被付加分子［１］の各構成原子や各結合軸に割り振られていた識別番号に続く連番が割り振られた。
【０３０７】
この図３２のステップＳ４０９が、図１６のステップＳ２１１に相当する。
【０３０８】
そして、このステップＳ４０９の次に、新たな分子Ｍ［１］の各構成原子についての原子被覆空間データｍおよび分子被覆空間データｓの再設定が実行されて、新たな分子の分子構造データＤ２００が完成した（ステップＳ４１０）。また、このステップＳ４１０では、分子構造データＤ２００の各操作フラグＦ等の初期化も実行されている。
【０３０９】
この図３２のステップＳ４１０が、図１６のステップＳ２１２に相当する。
【０３１０】
次に、このように完成した新たな分子の分子構造データＤ２００に基づいて、その新たな分子Ｍ［１］の画像が、図３のモニタ１２１に表示された（ステップＳ４１１）。
【０３１１】
この図３２のステップＳ４１１が、図１６のステップＳ２１３に相当する。
【０３１２】
以上に説明した付加処理の実施例では、このように最終的にモニタ１２１に新たな分子Ｍ［１］の画像が表示されている。そして、この新たな分子Ｍ［１］は、分子の付加による結合箇所以外に、意図しない構成原子どうしの結合が生じていないことが自動的に確認されたものとなっている。
【０３１３】
即ち、この付加処理の実施例から、図６の分子設計支援装置４００によれば、図１５および図１６に示す付加処理により、分子の付加についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができることが分かる。
【０３１４】
次に、分子の回転処理の実施例について説明する。
【０３１５】
図３３は、分子の回転処理の実施例を模式的に示す図である。
【０３１６】
以下の実施例は、上述の図２０から図２６までを参照して説明した分子の回転処理をさらに具体的に示す例である。
【０３１７】
この図３３に示す回転処理は、図２８および図２９に示した初期の分子構造データＤ２００が示す蟻酸の分子６０１において、識別番号「３」のＯ原子と識別番号「５」のＨ原子とからなる分子部分を回転する処理である。
【０３１８】
図３４は、図２８および図２９に示した初期の分子構造データＤ２００を使い、図２４に示した回転処理を実行したときの経緯を示すフローチャートにおけるステップＳ５０１からステップＳ５０７までの流れを示す図である。また、図３５は、そのフローチャートにおけるステップＳ５０８からステップＳ５１４までの処理の流れを示す図である。
【０３１９】
まず、不図示の操作画面において回転処理の実行が指示された。さらに、ユーザ操作を受けて処理対象の分子Ｍ［１］が指定された（ステップＳ５０１）。この指定を受けて、その分子Ｍ［１］のイベントデータＤ２５０の操作フラグＦに、回転処理を示す「Ｒｏｔａｔｅ」ビットが立てられた。
【０３２０】
次に、この分子Ｍ［１］において回転の中心となる構成原子に隣接する１つの構成原子（回転ポイント原子）となる識別番号「３」のＯ原子（Ａ［３］）がユーザ操作を受けて選択された（ステップＳ５０２）。この指定を受けて、回転ポイント原子（Ａ［３］）の原子データＤ２３０の操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられた。
【０３２１】
さらに、回転対象の分子部分が、次のように決められた（ステップＳ５０３）。
【０３２２】
このステップＳ５０３では、まず、回転ポイント原子（Ａ［３］）と、識別番号「５」のＨ原子Ａ［５］とからなる第１グループが作られた。また、回転ポイント原子（Ａ［３］）と、識別番号「１」のＣ原子Ａ［１］と識別番号「２」のＯ原子Ａ［２］と識別番号「４」のＨ原子Ａ［４］とからなる第２グループも作られた。そして、構成原子の数が相対的に少ない第１グループが、回転対象の分子部分に決定された。一方、残りの分子部分が、固定対象の分子部分に決定された。
【０３２３】
次に、このステップＳ５０３では、回転対象の分子部分の各構成原子の操作フラグＦに、回転対象であることを示す「Ｒｏｔａｔｅ」ビットが立てられた。また、回転対象の分子部分の各結合軸の結合軸データＤ２４０における操作フラグＦにも、この「Ｒｏｔａｔｅ」ビットが立てられた。
【０３２４】
この図３４のステップＳ５０１からステップＳ５０３までの一連の処理が、図２４のステップＳ３０１に相当する。
【０３２５】
ステップＳ５０３に続いて、固定対象の分子部分に属し、回転ポイント原子に隣接して回転中心となる、識別番号「１」のＣ原子（Ａ［１］）操作フラグＦに、操作対象であることを示す「Ｓｅｌｅｃｔ」ビットが立てられた（ステップＳ５０４）。
【０３２６】
次に、元の分子Ｍ［１］の分子被覆空間データｓが、元の分子被覆空間から回転対象の分子部分の各構成原子の原子被覆空間を除いた空間を定義した情報に変換された（ステップＳ５０５）。
【０３２７】
ここで、上述したように分子被覆空間データｓは、分子被覆空間の表面に属する格子点の座標の集合であり、原子被覆空間データｍは、原子被覆空間の表面に属する格子点の座標の集合である。このため、ステップＳ５０５の処理は、元の分子Ｍ［１］の分子被覆空間データｓが示す格子点の座標の中から、回転対象の分子部分の各構成原子（Ａ［３］，Ａ［５］）の原子被覆空間データｍが示す格子点の座標を除くという処理になる。ステップＳ５０５におけるこにより、分子被覆空間データｓは、固定対象側の分子被覆空間を示す情報となる。
【０３２８】
このとき、固定対象側にある回転中心の原子（Ａ［１］）の原子被覆空間と回転対象側にある回転ポイント原子（Ａ［３］）の原子被覆空間との間には、図１３に示すように、互いに共通する２つの格子点が元々存在している。このため、ステップＳ５０５では、分子被覆空間データｓが示す格子点の座標の中から、回転対象側の格子点の座標格子点の座標が単純に除去された後で、上記のように元々共通の２つの格子点の座標が補完される。これにより、完全な状態での、固定対象側の分子被覆空間を示す分子被覆空間データｓが求められる。
【０３２９】
この図３４のステップＳ５０４とステップＳ５０５とを合わせた処理が、図２４のステップＳ３０２に相当する。
【０３３０】
続いて、マウスポインタ６１０の変位量から、回転処理における回転角度が算出された。そして、その回転角度が示す回転処理を定義する回転行列が算出された（ステップＳ５０６）。算出された回転行列が、イベントデータＤ２５０の行列情報Ｒに設定された。
【０３３１】
そして、その回転行列が、回転対象の２つの結合軸（Ｂ［２］，Ｂ［４］）の結合軸ベクトルに作用された（ステップＳ５０７）。これにより、回転後の各結合軸（Ｂ［２］，Ｂ［４］）についての結合軸ベクトルが求められた。また、このステップＳ５０７では、回転ポイント原子（Ａ［３］）に繋がる結合軸（Ｂ［２］）の、回転前の結合軸ベクトルを定義する結合軸ベクトル情報ｖが、イベントデータＤ２５０のベクトル情報ｖに設定された。
【０３３２】
また、そのイベントデータＤ２５０のベクトル情報ｖを使って、回転ポイント原子（Ａ［３］）に繋がる結合軸（Ｂ［２］）の、結合軸ベクトルにおける回転前後での差分ベクトルが求められた（ステップＳ５０８）。この差分ベクトルは、回転ポイント原子（Ａ［３］）の回転方向を表わすベクトルである。そして、その差分ベクトルを定義する情報が、回転ポイント原子（Ａ［３］）の識別番号「１」の法線ベクトルを表わす法線ベクトル情報ｎ［１］に設定された。
【０３３３】
この図３４のステップＳ５０６から図３５のステップＳ５０８に至る一連の処理が、図２４のステップＳ３０３に相当する。
【０３３４】
次に、回転中心の原子（Ａ［１］）の位置座標から出発して、回転対象の分子部分における回転後の結合軸ベクトルに従って結合軸を辿ることで、回転対象の分子部分における回転後の各構成原子の位置座標が求められた（ステップＳ５０９）。例えば、回転ポイント原子（Ａ［３］）の回転後の位置座標は、回転中心の原子（Ａ［１］）の位置座標から、識別番号［２］の結合軸（Ｂ［２］）の回転後の結合軸ベクトルを辿った先の座標となる。ステップＳ５０９では、このような処理が、識別番号［３］と［５］との各構成原子について行われた。
【０３３５】
ここでの実施例では、識別番号［３］と［５］との各構成原子について、回転後の位置座標が求められると、続いて、以下の処理が実行された（ステップＳ５１０）。
【０３３６】
まず、これらの構成原子を取り巻く原子被覆空間が生成された。そして、各原子被覆空間に属する格子点の中から、回転ポイント原子（Ａ［３］）の回転方向前方の表面に属する格子点が抽出された。ここで、上記のステップＳ５０８では、回転ポイント原子（Ａ［３］）の法線ベクトル情報ｎに、上記の差分ベクトルを定義する情報が、回転方向を示すものとして設定されている。そこで、ステップＳ５１０では、各原子被覆空間において回転ポイント原子の法線ベクトル情報ｎが表わすベクトルが向かう表面に属する格子点が抽出された。そして、このように抽出された格子点の座標が、回転対象の分子部分の各構成原子（Ａ［３］，Ａ［５］）の原子被覆空間を定義する原子被覆空間データｍに設定された。
【０３３７】
次に、回転対象側の各原子被覆空間から上記のように抽出され、原子被覆空間データｍに座標が設定された格子点について次の判定が実行された（ステップＳ５１１）。即ち、このステップＳ５１１では、上記のように抽出された格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものが、元々共通のもの以外に存在しているか否かが判定された。
【０３３８】
このステップＳ５１１では、まず、回転対象の分子部分の各構成原子（Ａ［３］，Ａ［５］）の原子被覆空間に属する格子点から、上記の回転中心の原子（Ａ［１］）の原子被覆空間の格子点と共通のものが除かれた。これにより、元々共通の格子点が判定対象から除外される。そして、このステップＳ５１１では、その除外後の格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものがあるか否かが判定された。この判定により、回転後に、回転対象の分子部分と固定対象の分子部分との間に意図しない構成原子どうしの結合が生じているか否かが確認される。
【０３３９】
ここでの実施例では、このステップＳ５１１において、その除外後の格子点の中に、固定対象側の分子被覆空間に属する格子点と共通のものが無いとの判定結果（ステップＳ５１１でのＮｏ判定）を得た。
【０３４０】
この図３５のステップＳ５１１が、図２４のステップＳ３０５に相当する。
【０３４１】
次に、モニタ１２１上でのマウスポインタ６１０の移動が止まっているか否かが判定された（ステップＳ５１２）。
【０３４２】
ここでの実施例では、このステップＳ５１２において、マウスポインタが止まっているとの判定結果（ステップＳ５１２でのＮｏ判定）を得た。即ち、この実施例では、ユーザの所望する回転処理が、回転の全範囲に亘って問題なく行われている。
【０３４３】
この図３５のステップＳ５１２が、図２４のステップＳ３０６に相当する。
【０３４４】
そして、回転後の回転対象の分子部分と固定対象の分子部分とからなる、回転処理後の分子に対応した新たな分子構造データＤ２００が生成された（ステップＳ５１３）。また、このステップＳ５１３では、分子構造データＤ２００の各操作フラグＦ等の初期化も実行されている。
【０３４５】
この図３５のステップＳ５１３が、図２４のステップＳ３０７に相当する。
【０３４６】
次に、このように完成した新たな分子の分子構造データＤ２００に基づいて、その新たな分子Ｍ［１］の画像が、図３のモニタ１２１に表示された（ステップＳ５１４）。
【０３４７】
この図３５のステップＳ５１４が、図２４のステップＳ３０８に相当する。
【０３４８】
以上に説明した回転処理の実施例では、このように最終的にモニタ１２１に新たな分子Ｍ［１］の画像が表示されている。そして、この新たな分子Ｍ［１］は、回転対象の分子部分と他の固定対象の分子部分との間に、意図しない構成原子どうしの結合が生じていないことが自動的に確認されたものとなっている。
【０３４９】
即ち、この回転処理の実施例から、図６の分子設計支援装置４００によれば、図２４に示す付加処理により、分子の一部の回転についてのシミュレーションを、意図しない構成原子どうしの結合を回避して確実に実行することができることが分かる。
【０３５０】
尚、上記では、上述の基本形態にいう「１つの分子を２つに分けたときの２つの部分からなる２つの原子群のうちの一方の原子群を他方の原子群に対して相対的に移動させる」ことの一例として、分子部分の回転を例示した。しかしながら、上記にいう「一方の原子群を他方の原子群に対して相対的に移動させる」ことは、これに限るものではない。上記にいう「一方の原子群を他方の原子群に対して相対的に移動させる」ことは、例えば、分子部分の平行移動等であっても良い。
【符号の説明】
【０３５１】
１００    コンピュータ
１１０    本体部
１１０Ａ    ＣＤ−ＲＯＭ装填口
１１１    ＣＰＵ
１１２    主メモリ
１１３    ハードディスク装置（ＨＤＤ）
１１４    ＣＤ−ＲＯＭドライブ
１１５    Ｉ／Ｏインタフェース
１１６    バス
１２０    画像表示装置
１２１    モニタ
１３０    キーボード
１４０    マウス
２００    ＣＤ−ＲＯＭ
３００    分子設計支援プログラム
３１０    分子データ入手部
３２０    初期データ生成部
３３０    移動部
３４０    干渉判定部
３５０    新分子構造データ生成部
３６０    表示部
４００    分子設計支援装置
４１０    分子データ入手部
４２０    初期データ生成部
４３０    移動部
４４０    干渉判定部
４５０    新分子構造データ生成部
４６０    表示部
５０１，５０２，５０５    分子
５０３    第１分子
５０３＿１，５０４＿１，５０６＿１，５０６＿２，５０７＿１，５０７＿２    原子
５０４    第２分子
５０６    第３分子
５０７    第４分子
６０１，６０１’    蟻酸の分子
６０１＿１    第１の蟻酸の分子
６０１＿２    第２の蟻酸の分子
６０２    格子空間
６０３＿１，…，６０３＿５    原子被覆空間
６０４    分子被覆空間
６０５    法線ベクトル
６０５＿１    被結合法線ベクトル
６０５＿２    結合法線ベクトル
６０６    包括空間
６０７    格子点
６０８    新たな分子
６０９    分子
６０９＿１    棒状の分子部分
６０９＿２    円板状の分子部分
６０９＿２’    凹面を有する分子部分
６０９＿３    原子
６１０    マウスポインタ
６１１    分子被覆空間
６１２，６１４    格子点
６１５    回転対象の分子部分
６１６    固定対象の分子部分
【図１】
2010238120.tif 000003
【図２】
2010238120.tif 000004
【図３】
2010238120.tif 000005
【図４】
2010238120.tif 000006
【図５】
2010238120.tif 000007
【図６】
2010238120.tif 000008
【図７】
2010238120.tif 000009
【図８】
2010238120.tif 000010
【図９】
2010238120.tif 000011
【図１０】
2010238120.tif 000012
【図１１】
2010238120.tif 000013
【図１２】
2010238120.tif 000014
【図１３】
2010238120.tif 000015
【図１４】
2010238120.tif 000016
【図１５】
2010238120.tif 000017
【図１６】
2010238120.tif 000018
【図１７】
2010238120.tif 000019
【図１８】
2010238120.tif 000020
【図１９】
2010238120.tif 000021
【図２０】
2010238120.tif 000022
【図２１】
2010238120.tif 000023
【図２２】
2010238120.tif 000024
【図２３】
2010238120.tif 000025
【図２４】
2010238120.tif 000026
【図２５】
2010238120.tif 000027
【図２６】
2010238120.tif 000028
【図２７】
2010238120.tif 000029
【図２８】
2010238120.tif 000030
【図２９】
2010238120.tif 000031
【図３０】
2010238120.tif 000032
【図３１】
2010238120.tif 000033
【図３２】
2010238120.tif 000034
【図３３】
2010238120.tif 000035
【図３４】
2010238120.tif 000036
【図３５】
2010238120.tif 000037