JP4984843B2 - 分子設計支援装置及びプログラム - Google Patents

分子設計支援装置及びプログラム Download PDF

Info

Publication number
JP4984843B2
JP4984843B2 JP2006310564A JP2006310564A JP4984843B2 JP 4984843 B2 JP4984843 B2 JP 4984843B2 JP 2006310564 A JP2006310564 A JP 2006310564A JP 2006310564 A JP2006310564 A JP 2006310564A JP 4984843 B2 JP4984843 B2 JP 4984843B2
Authority
JP
Japan
Prior art keywords
bond
axis
atom
bond axis
axes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006310564A
Other languages
English (en)
Other versions
JP2008129649A (ja
Inventor
博之 佐藤
東 松浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006310564A priority Critical patent/JP4984843B2/ja
Priority to US11/976,360 priority patent/US8271250B2/en
Publication of JP2008129649A publication Critical patent/JP2008129649A/ja
Application granted granted Critical
Publication of JP4984843B2 publication Critical patent/JP4984843B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/80Data visualisation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/50Molecular design, e.g. of drugs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computing Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は分子設計支援装置及びプログラムに係り、特に分子構造の3次元表示を行い分子構造構築操作を行う分子設計支援装置及びコンピュータにそのような分子構造構築操作を行わせるプログラムに関する。
本発明の分子設計支援装置及びプログラムは、グラフィカルユーザインタフェース(GUI)及び分子設計支援ツールをも包含する。
コンピュータシステムの高性能化に伴い、ドラッグデザイン等の先端研究における分子軌道計算、分子動力学計算等の理論化学計算のニーズが高まっている。これらの理論化学計算を実行するためには、計算方法のみならず計算対象となる分子の構造を入力データに用いる必要がある。ドラッグデザイン等の先端研究では、分極率等の想定している物性の効果が従来以上に向上され得る新規分子構造の探索を行う必要が多々生じることから、任意の分子構造を構築する必要性が増している。このようなニーズから、分子構造構築の作業効率を向上させることを目的として、グラフィック表示機能を利用した分子設計システムが特許文献1,2や非特許文献1等にて提案されている。
特開平5−174109号公報 特開平5−128218号公報 http://software.fujitsu.com/jp/products/indust11.html, WinMOPAC(富士通株式会社)、CAChe(富士通株式会社)
従来から提案されている分子構造の変更手法は、原子種毎に決められた結合方向のみの変更が許容されている場合が多く、任意の構造変更を阻害する要因であった。又、富士通株式会社製のWinMOPACのGUIと同様に、任意の構造変更を可能とする分子構造構築システムでは、Zマトリクス(Z-matrix)という分子の内部座標を利用する場合、内部座標に含まれる結合角及び2面角のみが変更対象となる。このように、内部座標では1つの方向から2面角しか設定できない側面があるため、任意の構造変更を容易に実行することは困難であった。更に、上記WinMOPACに代表される分子構造構築システムでは、環構造を有する分子構造に対して回転操作を行うと、回転に関与する部位と関与しない部位とが環を構成することにより繋がってしまい、変更を意図しない部位の構造が変更されてしまう等の、所望の構造が得られない状況が発生しやすいという問題があった。
そこで、本発明は、所望の分子構造変更操作を、初期構造及び初期座標に影響されることなく、又、意図しない構造に陥ることなく、容易に実行することが可能な分子設計支援装置及びプログラムを提供することを目的とする。
上記の課題は、入力部と、ハーフベクタ形式又はボールアンドスティック形式で3次元分子構造を画面上に表示するディスプレイと、該分子構造のうち、該入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定する決定手段と、該指定された結合軸及び該座標変更の対象となる側に基づいて、原子周りの自由回転、結合軸周りの回転、2軸間の角度変更、2面角の変更及び結合軸の伸縮の少なくとも1つを含む分子構造の変更を、該入力部からの指定に基づいて行う変更手段と、該決定手段の決定及び該変更手段の変更に基づいて、変更された分子構造を該ディスプレイの画面上に表示する表示手段とを備えたことを特徴とする分子設計支援装置によって達成できる。
上記の課題は、入力部を有するコンピュータに分子設計支援機能を持たせるプログラムであって、該コンピュータに、ディスプレイの画面上にハーフベクタ形式又はボールアンドスティック形式で表示される3次元分子構造のうち、該入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定させる決定手順と、該コンピュータに、該指定された結合軸及び該座標変更の対象となる側に基づいて、原子周りの自由回転、結合軸周りの回転、2軸間の角度変更、2面角の変更及び結合軸の伸縮の少なくとも1つを含む分子構造の変更を、該入力部からの指定に基づいて行わせる変更手順と、該コンピュータに、該決定手順の決定及び該変更手順の変更に基づいて、変更された分子構造を該ディスプレイの画面上に表示させる表示手順とを含むことを特徴とするプログラムによって達成できる。
本発明によれば、所望の分子構造変更操作を、初期構造及び初期座標に影響されることなく、又、意図しない構造に陥ることなく、容易に実行することが可能な分子設計支援装置及びプログラムを実現することができる。
本発明では、分子構造変更操作を行う場合に、図1に示す如きデータ構造、即ち、原子データ構造A、結合軸データ構造B及び分子データ構造Mのデータを用いる。図1に示すデータ構造では、原子データ構造Aと結合軸データ構造Bとが、夫々全ての原子と結合軸に対して1対1対応のデータを含む点、及び、イベント用フラグと識別用フラグを含む点で、従来用いているデータ構造と異なる。尚、図1中、各データ構造A,B,Mの構成要素(又は、アイテム)には番号1〜7,...が付され、〔〕内のデータは必須ではないことを示す。
原子データ構造Aにおいて、識別番号aは内部座標における原子順序番号からなり、原子番号は元素記号からなる。又、結合軸数は、元分子に任意の新規分子構造を追加することで変動する数値からなる。結合軸数の初期値は、入力構造からファンデルワールス半径を元に原子対を構成していると推定された結合数を示す。結合軸の識別番号は、結合軸数に含まれる各結合軸の識別番号bの集合データからなる。イベント用フラグは、回転操作、伸縮操作、削除操作、追加操作、置換操作等の分子構造構築GUIが有するイベントに対し、現在のイベント種類を示す。識別用フラグは、意図しない構造に陥ることを防ぐために、環構造を有するか否かをチェックするためのものである。デカルト座標(Cartesian座標)は、各原子が存在する3次元空間内の位置を示すデータからなる。
結合軸データ構造Bにおいて、識別番号bは全ての結合軸を1対1に対応させるために必要な番号からなり、結合の型は1重結合、2重結合等の結合軸のタイプを識別するためのデータからなる。任意の分子構造を構築する場合、結合の型は必ずしも必要ではない。末端原子の識別番号は、結合軸の両末端に存在する原子の識別番号aの集合データからなり、データ数は2である。イベント用フラグ及び識別用フラグは、原子データ構造Aのイベント用フラグ及び識別用フラグと同じである。ベクトル情報は、結合軸を3次元ベクトルと1対1に対応させたものである。ベクトル情報を単位ベクトルで表現する場合には、結合軸の長さを示す結合軸長も必要となる。
分子データ構造Mは、相互にデータを保持し合う原子データ構造Aと結合軸データ構造Bの両方を含み、削除操作及び追加操作にも対応するために、原子数、結合軸数、イベント情報及びイベント用フラグを有する。識別用フラグは、必要に応じて用いる。
分子構造のデータが与えられたとき、図1に示すデータ構造がどのように設定されるかについて、蟻酸(HCOOH)の場合を例にとって図2と共に説明する。図2において、「A{ }」は原子データ構造A、「B{ }」は結合軸データ構造B、「M{ }」は分子データ構造Mを示す。「a〔 〕」は、結合軸データ構造Bに含まれる結合軸の識別番号を保存した配列であり、配列の数は2である。又、「b{ }」は、原子データ構造Aに含まれる結合軸の識別番号を保存した配列であり、配列の数は原子構造データAに含まれる結合軸数である。原子データ構造Aに含まれる元素記号データは、原子番号であっても良い。従って、図2は便宜上、原子データ構造Aのアイテム番号1〜4、結合軸データ構造Bのアイテム番号1,3、分子データ構造Mのアイテム番号1〜4を示している。
分子構造変更操作を行う場合、例えばディスプレイの画面上に作業用のメインウィンドウを表示し、メインウィンドウ上に3次元分子構造を図3に示すハーフベクタ形式又は図4に示すボールアンドスティック形式で表示する。そして、ポインティングデバイスのクリックやドラッグアンドドロップ操作、キーボードの操作等の入力部からの操作により、メインウィンドウ上に分子の結合軸を少なくとも1つ、又、必要であれば更にボールアンドスティック形式の結合軸末端原子2つのうち1つの原子を指定することで、結合軸に対して座標変更の対象となる側を決定し、原子周りの自由回転、結合軸回りの回転、2軸間の角度変更、2面角の変更、伸縮等の連続的な分子構造の変更操作を行い、新たに形成された分子構造をメインウィンドウ上に表示する。
従って、所望の分子構造変更操作を、初期構造及び初期座標に影響されることなく、又、意図しない構造に陥ることなく、容易に実行することが可能である。
本発明の分子設計支援装置の一実施例は、本発明のプログラムの一実施例を用いる。本実施例では、本発明がコンピュータシステムに適用されている。図5は、本実施例において本発明が適用されるコンピュータシステムを示す斜視図である。
図5に示すコンピュータシステム100は、CPUやディスクドライブ等を内蔵した本体部101、本体部101からの指示により表示画面102a上に分子形成シミュレーションにより形成される分子等の画像を表示するディスプレイ102、コンピュータシステム100に種々の情報を入力するためのキーボード103、ディスプレイ102の表示画面102a上の任意の位置を指定するマウス104及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードするモデム105を有する。
ディスク110等の可搬型記録媒体に格納されるか、モデム105等の通信装置を使って他のコンピュータシステムの記録媒体106からダウンロードされる、コンピュータシステム100に少なくとも分子設計支援機能を持たせるプログラム(分子設計支援ソフトウェア)の本実施例は、コンピュータシステム100に入力されてコンパイルされる。プログラムの本実施例は、コンピュータシステム100(即ち、後述するCPU201)を分子設計支援機能を有する分子設計支援装置(又は、シミュレーションシステム)として動作させる。プログラムの本実施例は、例えばディスク110等のコンピュータ読み取り可能な記録媒体に格納されていても良い。コンピュータ読み取り可能な記録媒体は、ディスク110、ICカードメモリ、フロッピー(登録商標)ディスク等の磁気ディスク、光磁気ディスク、CD−ROM等の可搬型記録媒体に限定されるものではなく、モデム105やLAN等の通信装置や通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
図6は、コンピュータシステム100の本体部101内の要部の構成を説明するブロック図である。同図中、本体部101は、バス200により接続されたCPU201、RAMやROM等からなるメモリ部202、ディスク110用のディスクドライブ203及びハードディスクドライブ(HDD)204からなる。本実施例では、ディスプレイ102、キーボード103及びマウス104も、バス200を介してCPU201に接続されているが、これらは直接CPU201に接続されていても良い。又、ディスプレイ102は、入出力画像データの処理を行う周知のグラフィックインタフェース(図示せず)を介してCPU201に接続されていても良い。
コンピュータシステム100において、キーボード103やマウス104は分子設計支援装置の入力部を構成する。ディスプレイ102は、ハーフベクタ形式又はボールアンドスティック形式で3次元分子構造を画面102a上に表示する。CPU201は、分子構造のうち、入力部により指定された結合軸に基づいて、少なくとも該指定された結合軸に対して座標変更の対象となる側を決定する決定手段と、指定された結合軸周りの回転又は指定された結合軸の伸縮を含む分子構造の変更を、入力部からの指定に基づいて行う変更手段と、決定手段の決定及び変更手段の変更に基づいて、変更された分子構造をディスプレイ102の画面102a上に表示する表示手段として機能する。
尚、コンピュータシステム100の構成は図5及び図6に示す構成に限定されるものではなく、代わりに各種周知の構成を使用しても良い。
図7は、初期データ構造の構築を説明するフローチャートである。図7に示す処理は、CPU201により実行される。
図7において、ステップS1は、図1に示す如き原子データ構造Aを有する原子データ構造体及び結合軸データ構造Bを有する結合軸データ構造体を宣言し、ステップS2は、図1に示す如き分子データ構造Mを有する分子データ構造体を、原子データ構造体及び結合軸データ構造体を含む構造体として宣言する。ステップS3は、Cartesian又はZ-matrix座標データを記憶部内のファイルから読み込み、原子数を分子データ構造Mに格納する。記憶部は、コンピュータシステム100内のメモリ部202、ディスクドライブ203又はHDD204であっても、コンピュータシステム100外部の記録媒体106等で構成される。ステップS4は、読み込まれた座標データがZ-matrix座標データの場合にはCartesian座標に変換し、原子データ構造Aの座標と原子番号に格納すると共に、識別番号を格納順に設定する。ステップS5は、原子座標を用いて全ての原子間結合距離を計算する。
ステップS6は、任意に設定した閾値以下の距離にある原子間に結合軸を形成する。ステップS7は、結合軸データ構造Bの識別番号を形成順に設定し、結合軸数を分子データ構造体に格納する。ステップS8は、結合軸のベクトルを結合軸データ構造体に格納する。ステップS9は、結合軸に関与する2つの原子の識別番号を結合軸データ構造体の識別番号に格納する。ステップS10は、各原子に関連する結合軸の識別番号を抽出すると共に、原子データ構造体に識別番号と総数を格納し、処理は終了する。これにより、与えられた分子構造のデータに対して、図1に示す如き原子データ構造A、結合軸データ構造B及び分子データ構造Mからなる初期データ構造が構築される。
(原子周りの自由回転)
図8は、原子周りの自由回転を説明する図である。図8は、回転対象となる原子が、この場合は回転軸である結合軸を介して固定の原子に結合されており、この固定の原子が結合軸を介して不動原子に結合されている状態を示す。
図7に示す処理によりユーザが用意した図1のデータ構造体に対し、結合軸データ構造Bのアイテムを1つ選択し、選択されたアイテムが識別番号b1であるとすると、識別番号b1の結合軸データに属するイベント用フラグの選択ビットを立てる。この状態で分子データ構造Mのイベント情報を「原子周りの自由回転」に設定すると、分子データ構造Mのイベント用フラグに「原子周りの自由回転」ビットを立て、識別番号b1の結合軸データの両末端原子(識別番号a1,a2)に対し、この結合軸データ以外の結合軸にて連なる全ての結合軸集合データの識別用フラグの選択ビットを立てる。ここで結合軸が有する末端原子に識別番号a1又はa2の原子が含まれる場合、識別番号b1の結合軸データは環構造の内部に属することが決定される。この場合には、末端原子データに属する識別用フラグのリングビットを立てる。リングビットが立てられた末端原子データに属する結合軸集合については、回転操作の対象から除外するために識別用フラグの選択ビットを解除する。リングビットが立てられていない場合には、識別番号a1の原子から連なる結合軸の選択ビット数と識別番号a2の原子から連なる結合軸の選択ビット数とを比較し、少ない方の選択ビットを残し、多い方は解除する。以降、選択ビットのある結合軸を回転対象と表現する。又、選択した識別番号b1の結合軸についても回転対象に含める。
結合軸だけでなく末端原子のうち1つの原子が選択されている場合には、選択された原子若しくは選択されていない原子に連なる結合軸集合のみについて上記操作を実行する。
原子周りの3次元回転行列若しくは四元数は、表示されている分子構造上でポインティングデバイスのドラッグアンドドロップから算出するか、又は、メインウィンドウ上の分子表示エリア以外のコマンドエリアにてドラッグアンドドロップ若しくはキーボードにて角度設定を行うことで決定し、回転操作に移行する。原子周りの3次元回転行列若しくは四元数をドラッグアンドドロップにて指定する場合、ドラッグしている間は連続的に回転操作を行う。
回転操作は、指定した識別番号b1の結合軸データに関してイベント用フラグに、「原子周りの自由回転」ビットを立て、3次元回転行列若しくは四元数を回転対象の結合軸に作用させる。その後、適切な原子1つから結合軸のベクトル情報を辿ることで原子データ構造AのCartesian座標を再形成し、メインウィンドウ上に変更された分子構造を表示する。
図9は、原子周りの自由回転を、蟻酸(HCOOH)の場合を例に説明する図である。図10及び図11は、この場合の原子周りの自由回転を説明するフローチャートであり、図12及び図13は、この場合の原子周りの自由回転操作時の表示画面を示す図である。図10は、結合軸アイテム(必要であれば更に原子アイテム)の選択操作からリング存在フラグの設定までの処理を示し、図11は、回転対象と回転演算の設定から実際の構造変更までの処理を示す。
図10において、ステップS101は、任意の結合軸Biを選択する。ここでは、説明の便宜上、結合軸Biの末端原子がAB1,AB2であるものとする。ステップS102は、回転角調整フラグを設定、即ち、分子データのイベント情報フラグに「結合軸周りの回転」ビットを立てる。ステップS103は、結合軸は結合軸Biのみが選択され、且つ、末端原子AB1(又はAB2)のみが選択されているか否かを判定する。ステップS103の判定結果がNOであると、処理は図11と共に後述するステップS126へ進む。他方、ステップS103の判定結果がYESであると、ステップS104は、末端原子AB1(又はAB2)が未設定の結合軸Bi'を持つか否かを判定する。ステップS104の判定結果がNOであると、処理は図11と共に後述するステップS112へ進む。
ステップS104の判定結果がYESであると、ステップS105は、結合軸Bi'を属性RB1(又はRB2)に設定し、結合軸Bi'に対して末端原子AB1(又はAB2)とは逆の末端原子に移動する。ステップS106は、現在の原子が未設定の結合軸を持つか否かを判定し、判定結果がYESであると、ステップS107は、未設定の結合軸を属性RB1(又はRB2)に設定し、逆側の末端原子に移動する。ステップS106の判定結果がNOであると、ステップS108は、直前の、即ち、設定されている結合軸の逆側の原子に移動する。ステップS107又はS108の後、ステップS109は、現在の原子がAB2(又はAB1)であるか否かを判定する。ステップS109の判定結果がNOであると、ステップS110は、現在の原子がAB1(又はAB2)であるか否かを判定する。他方、ステップS109の判定結果がYESであると、ステップS111は、リング存在フラグを真に設定する(識別用フラグのリングビットを立てる)。ステップS110の判定結果がYESであると、処理はステップS104へ戻る。ステップS110の判定結果がNO、或いは、ステップS111の後、処理はステップS106へ戻る。
図11において、ステップS112は、リング存在フラグが偽である(識別用フラグのリングビットが立っていない)か否かを判定し、判定結果がNOであると、処理は後述するステップS126へ進む。ステップS112の判定結果がYESであると、ステップS113は、原子AB1が固定端であるか否かを判定する。ステップS113の判定結果がYESであると、ステップS114は、属性RB2の結合軸と結合軸Biを回転操作の対象となるベクトルに設定し、処理はステップS116へ進む。他方、ステップS113の判定結果がNOであると、ステップS115は、属性RB1の結合軸と結合軸Biを回転操作の対象となるベクトルに設定し、処理はステップS116へ進む。
ステップS116は、回転が画面102a上で直接操作されるか否かを判定する。ステップS116の判定結果がNOであると、ステップS117は、画面102a上のメニュー若しくはサブメニューに従って入力部から入力された値から回転情報φ,θを取得する。ステップS118は、回転情報φ,θに基づいて対象となるベクトルに対して回転操作を行い、ステップS119は、得られたベクトル情報から原子座標を変更して分子構造を再構築する。ステップS119の後、処理は後述するステップS126へ進む。
他方、ステップS116の判定結果がYESであると、ステップS120は、マウス104のドラッグアンドドロップに伴う画面102a上の水平移動ベクトルと画面横範囲から回転情報φを設定し、ステップS121は、マウス104のドラッグアンドドロップに伴う画面102a上の垂直移動ベクトルと画面縦範囲から回転情報θを設定する。ステップS122は、回転情報φ,θに基づいて対象となるベクトルに対して回転操作を行い、ステップS123は、得られたベクトル情報から原子座標を変更し、分子構造を再構築する。ステップS124は、回転操作が終了したか否かを判定し、判定結果がNOであると処理はステップS120へ戻る。ステップS124の判定結果がYESであると、ステップS125は、回転操作対象の結合軸の選択を解除する。又、ステップS126は、設定情報を解除し、処理は終了する。
このようにして、先ず最初は図9に示す結合軸B2が選択される。選択後に回転角調整フラグが設定されると(分子データのイベント情報フラグに「原子周りの自由回転」ビットが立てられると)、図10の後半の再帰的処理(アルゴリズム)により、末端原子A1を基点として結合軸B2を含まない結合軸に連なる結合軸集団RA1(B1,B3)が選出され、リング存在フラグを真にするかどうか(結合軸集団RA1については末端原子A3に属する識別用フラグのリングビットを立てるかどうか)についても調査される。ここで、リング存在フラグが真の結合軸集団を回転操作対象から外す(識別用フラグの選択ビットを解除する)。結合軸集団RA1のがリング存在フラグが真であれば、回転操作対象が存在しなくなることから、設定情報を解除して回転操作を終了する。
他方、結合軸集団RA1のがリング存在フラグが偽であれば、結合軸数の多い結合軸集団側を回転操作対象から外す(識別用フラグの選択ビットを解除する)。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図12のようになる。図12に示す蟻酸は環構造を持たないため、回転操作可能な状態となる。結合軸数は結合軸集団RA3の方が少ないため、結合軸B3の選択ビットだけが立てられている。
上記の処理までで回転操作可能な状態であれば、図11の前半の処理(アルゴリズム)により結合軸集団RA3に含まれる結合軸B1,B2,B3に選択ビットを立てて回転対象に設定する。本実施例では、メインウィンドウに表示された分子上にマウスカーソルを合わせて、ドラッグアンドドロップする方向と長さを画面102aの大きさと比較することにより回転行列を決定するアルゴリズムを用いた。回転行列が決定されると、図11の後半の処理(アルゴリズム)により結合軸B1,B2,B3が回転演算を受けて結合軸B'1,B'2,B'3となり、原子A3からベクトルを加えることにより原子A1,A2,A4のCartesian座標がA'1,A'2,A'4に変更され、メインウィンドウ上の分子構造が変更される。マウス104がリリースされると回転が終了したと見なして、選択情報と設定情報を解除して回転操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図13のようになる。図13では、回転行列を決めるマウス104のドラッグアンドドロップを、右斜め上方向に動かした場合の結果が示されている。
図9において、B2は選択された結合軸、リングフラグは偽、A1は固定端の原子、B1,B2,B3は回転対象の結合軸を示し、回転情報は画面上の操作により入力されるものとする。回転演算をRで示すと、B'1=RB1、B'2=RB2及びB'3=RB3が成立し、A1,A2,A4の座標変更はA'1=A3+B'2、A'2=A'1+B'1及びA'4=A'1+B'3で表される。
(結合軸周りの回転)
図14は、結合軸周りの回転を説明する図である。図14は、回転対象となる原子が、この場合は回転軸である結合軸を介して固定の原子に結合されている状態を示す。
図7に示す処理によりユーザが用意した図1のデータ構造体に対し、結合軸データ構造Bのアイテムを1つ選択し、選択されたアイテムが識別番号b1であるとすると、識別番号b1の結合軸データに属するイベント用フラグの選択ビットを立てる。この状態で分子データ構造Mのイベント情報を「結合軸周りの回転」に設定すると、分子データ構造Mのイベント用フラグに「結合軸周りの回転」ビットを立て、識別番号b1の結合軸データの両末端原子(識別番号a1,a2)に対し、この結合軸データ以外の結合軸にて連なる全ての結合軸集合データの識別用フラグの選択ビットを立てる。ここで結合軸が有する末端原子に識別番号a1又はa2の原子が含まれる場合、識別番号b1の結合軸データは環構造の内部に属することが決定される。この場合には、末端原子データに属する識別用フラグのリングビットを立てる。リングビットが立てられた末端原子データに属する結合軸集合については、回転操作の対象から除外するために識別用フラグの選択ビットを解除する。リングビットが立てられていない場合には、識別番号a1の原子から連なる結合軸の選択ビット数と識別番号a2の原子から連なる結合軸の選択ビット数とを比較し、少ない方の選択ビットを残し、多い方は解除する。以降、選択ビットのある結合軸を回転対象と表現する。
結合軸だけでなく末端原子のうち1つの原子が選択されている場合には、選択された原子若しくは選択されていない原子に連なる結合軸集合のみについて上記操作を実行する。
結合軸周りの回転角は、表示されている分子構造上でポインティングデバイスのドラッグアンドドロップから算出するか、又は、メインウィンドウ上の分子表示エリア以外のコマンドエリアにてドラッグアンドドロップ若しくはキーボードにて角度設定を行うことで決定し、回転操作に移行する。結合軸周りの回転角の角度設定をドラッグアンドドロップにて指定する場合、ドラッグしている間は連続的に回転操作を行う。
回転操作は、指定した識別番号b1の結合軸データに関してイベント用フラグに、「結合軸周りの回転」ビットを立て、固定側から回転対象側の方向を回転軸に設定する。回転軸と回転角から回転行列若しくは四元数を算出し、回転対象の結合軸に作用させる。その後、適切な原子1つから結合軸のベクトル情報を辿ることで原子データ構造AのCartesian座標を再形成し、メインウィンドウ上に変更された分子構造を表示する。
図15は、結合軸周りの回転を、蟻酸(HCOOH)の場合を例に説明する図である。図16及び図17は、この場合の結合軸周りの回転を説明するフローチャートであり、図18及び図19は、この場合の結合軸周りの回転操作時の表示画面を示す図である。図16は、結合軸アイテム(必要であれば更に原子アイテム)の選択操作からリング存在フラグの設定までの処理を示し、図17は、回転対象と回転演算の設定から実際の構造変更までの処理を示す。
図16において、ステップS11は、任意の結合軸Biを選択する。ここでは、説明の便宜上、結合軸Biの末端原子がAB1,AB2であるものとする。ステップS12は、回転角調整フラグを設定、即ち、分子データのイベント情報フラグに「結合軸周りの回転」ビットを立てる。ステップS13は、結合軸は結合軸Biのみが選択され、且つ、原子は選択されていないか或いは末端原子AB1(又はAB2)のみが選択されているか否かを判定する。ステップS13の判定結果がNOであると、処理は図17と共に後述するステップS39へ進む。他方、ステップS13の判定結果がYESであると、ステップS14は、末端原子AB1(又はAB2)が未設定の結合軸Bi'を持つか否かを判定する。ステップS14の判定結果がNOであると、処理は図17と共に後述するステップS22へ進む。
ステップS14の判定結果がYESであると、ステップS15は、結合軸Bi'を属性RB1(又はRB2)に設定し、結合軸Bi'に対して末端原子AB1(又はAB2)とは逆の末端原子に移動する。ステップS16は、現在の原子が未設定の結合軸を持つか否かを判定し、判定結果がYESであると、ステップS17は、未設定の結合軸を属性RB1(又はRB2)に設定し、逆側の末端原子に移動する。ステップS16の判定結果がNOであると、ステップS18は、直前の、即ち、設定されている結合軸の逆側の原子に移動する。ステップS17又はS18の後、ステップS19は、現在の原子がAB2(又はAB1)であるか否かを判定する。ステップS19の判定結果がNOであると、ステップS20は、現在の原子がAB1(又はAB2)であるか否かを判定する。他方、ステップS19の判定結果がYESであると、ステップS21は、リング存在フラグを真に設定する(識別用フラグのリングビットを立てる)。ステップS20の判定結果がYESであると、処理はステップS14へ戻る。ステップS20の判定結果がNO、或いは、ステップS21の後、処理はステップS16へ戻る。
図17において、ステップS22は、リング存在フラグが偽である(識別用フラグのリングビットが立っていない)か否かを判定し、判定結果がNOであると、処理は後述するステップS39へ進む。ステップS22の判定結果がYESであると、ステップS23は、原子AB1(又はAB2)が選択済みであるか否かを判定する。ステップS23の判定結果がYESであると、ステップS24は、原子AB1(又はAB2)を固定端に設定する。ステップS23の判定結果がNOであると、ステップS25は、属性RB1の原子数が属性RB2の原子数より大きいか否かを判定する。ステップS25の判定結果がYESであると、ステップS26は、原子AB1を固定端に設定する。ステップS25の判定結果がNOであると、ステップS27は、原子AB2を固定端に設定する。ステップS24又はS26又はS27の後、処理はステップS28へ進む。
ステップS28は、原子AB1が固定端であるか否かを判定する。ステップS28の判定結果がYESであると、ステップS29は、属性RB2の結合軸を回転操作の対象ベクトルに設定し、ステップS30は、ベクトルAB1→AB2を回転軸に設定する。他方、ステップS28の判定結果がNOであると、ステップS31は、属性RB1の結合軸を回転操作の対象ベクトルに設定し、ステップS32は、ベクトルAB2→AB1を回転軸に設定する。ステップS30又はS32の後、処理はステップS33へ進む。
ステップS33は、結合軸周りの回転角の初期値を設定する。ステップS34は、回転角を調整し、ステップS35は、前回の回転角と現在の回転角との差分に相当する回転角情報を取得し、対象となるベクトルに対して回転操作を行う。ステップS36は、得られたベクトル情報から原子座標を変更し、分子構造を再構築する。ステップS37は、回転角の調整が終了したか否かを判定し、判定結果がNOであると処理はステップS34へ戻る。ステップS37の判定結果がYESであると、ステップS38は、回転操作対象の結合軸の選択を解除する。又、ステップS39は、設定情報を解除し、処理は終了する。
このようにして、先ず最初は図15に示す結合軸B2が選択される。選択後に回転角調整フラグが設定されると(分子データのイベント情報フラグに「結合軸周りの回転」ビットが立てられると)、図16の後半の再帰的処理(アルゴリズム)により、末端原子A1を基点として結合軸B2を含まない結合軸に連なる結合軸集団RA1(B1,B3)と末端原子A3を基点として結合軸B2を含まない結合軸に連なる結合軸集団RA3(B4)が選出され、夫々についてリング存在フラグを真にするかどうか(結合軸集団RA1については末端原子A3に属する識別用フラグのリングビットを立てるかどうか、結合軸集団RA3については末端原子A1に属する識別用フラグのリングビットを立てるかどうか)についても調査される。ここで、リング存在フラグが真の結合軸集団を回転操作対象から外す(識別用フラグの選択ビットを解除する)。結合軸集団RA1と結合軸集団RA3双方のリング存在フラグが真であれば、回転操作対象が存在しなくなることから、設定情報を解除して回転操作を終了する。
他方、結合軸集団RA1と結合軸集団RA3双方のリング存在フラグが偽であれば、結合軸数の多い結合軸集団側を回転操作対象から外す(識別用フラグの選択ビットを解除する)。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図18のようになる。図18に示す蟻酸は環構造を持たないため、回転操作可能な状態となる。結合軸数は結合軸集団RA3の方が少ないため、結合軸B3の選択ビットだけが立てられている。
上記の処理までで回転操作可能な状態であれば、図17の前半の処理(アルゴリズム)により結合軸集団RA3に含まれる結合軸B4に選択ビットを立てて回転対象に設定する。結合軸B4の回転軸は、結合軸B2の方向でA1→A3の向きを持つベクトルに設定する。本実施例では、メインウィンドウに表示されたコマンドウィンドウ上にスライドバーを表示して、バーをマウス104にてドラッグアンドドロップすることにより回転角度を決定し、回転軸と回転角度から回転行列を決定するアルゴリズムを用いた。回転行列が決定されると、図17の後半の処理(アルゴリズム)により結合軸B4が回転演算を受けて結合軸B'4となり、原子A3からベクトルを加えることにより原子A5のCartesian座標がA'5に変更され、メインウィンドウ上の分子構造が変更される。マウス104がリリースされると回転が終了したと見なして、選択情報と設定情報を解除して回転操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図19のようになる。図19では、マウス104のドラッグアンドドロップにより、結合軸周りに−133度の回転を行った結果が示されている。
図15において、B2は選択された結合軸、リングフラグは偽、A1は固定端の原子、B4は回転対象の結合軸、A1→A3はその回転軸を示す。回転演算をRで示すと、B'4=RB4が成立し、A5の座標変更はA'5=A3+B'4で表される。
(2軸間の角度変更)
図20は、2軸間の角度変更を説明する図である。図20は、回転対象となる原子が、この場合は回転軸である結合軸と更に別の結合軸を介して固定の原子に結合されている状態を示す。
図7に示す処理によりユーザが用意した図1のデータ構造体に対し、結合軸データ構造Bのアイテムを2つ選択し、選択されたアイテムが識別番号b1,b2であるとすると、識別番号b1,b2の結合軸データに属するイベント用フラグの選択ビットを立てる。この状態で分子データ構造Mのイベント情報を「2軸間の角度変更」に設定すると、識別番号b1の結合軸データに属する末端原子のどちらかの原子データが識別番号b2の結合軸を含む場合にのみ連続(連結)した結合軸データであるとみなして、分子データ構造Mのイベント用フラグに「2軸間の角度変更」ビットを立てる。識別番号b1,b2の結合軸データの両末端原子(識別番号ab1,ab2)に対し、これらの識別番号ab1からb1及び識別番号ab2からb2の結合軸データ以外の結合軸にて連なる全ての結合軸集合データの識別用フラグの選択ビットを立てる。ここで結合軸が有する末端原子に識別番号ab2又はab1の原子が含まれる場合、識別番号b1,b2の結合軸データは環構造の内部に属することが決定される。この場合には、末端原子データに属する識別用フラグのリングビットを立てる。リングビットが立てられた末端原子データに属する結合軸集合については、回転操作の対象から除外するために識別用フラグの選択ビットを解除する。リングビットが立てられていない場合には、識別番号ab1の原子から連なる結合軸の選択ビット数と識別番号ab2の原子から連なる結合軸の選択ビット数とを比較し、少ない方の選択ビットを残し、多い方は解除する。以降、選択ビットのある結合軸を回転対象と表現する。
2連続結合軸だけでなく末端原子のうち1つの原子が選択されている場合には、選択された原子若しくは選択されていない原子に連なる結合軸集合のみについて上記操作を実行する。
2軸間の角度は、表示されている分子構造上でポインティングデバイスのドラッグアンドドロップから算出するか、又は、メインウィンドウ上の分子表示エリア以外のコマンドエリアにてドラッグアンドドロップ若しくはキーボードにて角度設定を行うことで決定し、回転操作に移行する。2軸間の角度設定をドラッグアンドドロップにて指定する場合、ドラッグしている間は連続的に回転操作を行う。
回転操作は、指定した識別番号b1,b2の結合軸データに関してイベント用フラグに「2軸間の角度変更」ビットを立て、識別番号b1,b2の両方の結合軸に直交するベクトルを回転軸に設定する。回転軸と回転角から回転行列若しくは四元数を算出し、回転対象の結合軸に作用させる。その後、適切な原子1つから結合軸のベクトル情報を辿ることで原子データ構造AのCartesian座標を再形成し、メインウィンドウ上に変更された分子構造を表示する。
図21は、2軸間の角度変更を、蟻酸(HCOOH)の場合を例に説明する図である。図22及び図23は、この場合の2軸間の角度変更を説明するフローチャートであり、図24及び図25は、この場合の2軸間の角度変更操作時の表示画面を示す図である。図22は、結合軸アイテム(必要であれば更に原子アイテム)の選択操作からリング存在フラグの設定までの処理を示し、図23は、回転対象と回転演算の設定から実際の構造変更までの処理を示す。
図22において、ステップS131は、任意の2つの連続する結合軸Bi,Bjを選択する。ここでは、説明の便宜上、結合軸Bi,Bi'の末端原子がA,ABB',AB'であるものとする。ステップS132は、2つの結合軸Bi,Bi'の結合角調整フラグを設定、即ち、分子データのイベント情報フラグに「2軸間の角度変更」ビットを立てる。ステップS133は、結合軸は結合軸Bi,Bi'のみが選択され、且つ、原子は選択されていないか或いは末端原子A(又はAB')のみが選択されているか否かを判定する。ステップS133の判定結果がNOであると、処理は図23と共に後述するステップS158へ進む。他方、ステップS133の判定結果がYESであると、ステップS134は、末端原子A(又はAB')が未設定の結合軸Bi''を持つか否かを判定する。ステップS134の判定結果がNOであると、処理は図23と共に後述するステップS142へ進む。
ステップS134の判定結果がYESであると、ステップS135は、結合軸Bi''を属性R(又はRB')に設定し、結合軸Bi''に対して末端原子A(又はAB')とは逆の末端原子に移動する。ステップS136は、現在の原子が未設定の結合軸を持つか否かを判定し、判定結果がYESであると、ステップS137は、未設定の結合軸を属性R(又はRB')に設定し、逆側の末端原子に移動する。ステップS136の判定結果がNOであると、ステップS138は、直前の、即ち、設定されている結合軸の逆側の原子に移動する。ステップS137又はS138の後、ステップS139は、現在の原子がAB'(又はA)かABB'であるか否かを判定する。ステップS139の判定結果がNOであると、ステップS140は、現在の原子がA(又はAB')であるか否かを判定する。他方、ステップS139の判定結果がYESであると、ステップS141は、リング存在フラグを真に設定する(識別用フラグのリングビットを立てる)。ステップS140の判定結果がYESであると、処理はステップS134へ戻る。ステップS140の判定結果がNO、或いは、ステップS141の後、処理はステップS136へ戻る。
図23において、ステップS142は、リング存在フラグが偽である(識別用フラグのリングビットが立っていない)か否かを判定し、判定結果がNOであると、処理は後述するステップS158へ進む。ステップS142の判定結果がYESであると、ステップS143は、原子A(又はAB')が選択済みであるか否かを判定する。ステップS143の判定結果がYESであると、ステップS144は、結合軸B(又はB')をを固定軸に設定する。ステップS143の判定結果がNOであると、ステップS145は、属性Rの原子数が属性RB'の原子数より大きいか否かを判定する。ステップS145の判定結果がYESであると、ステップS146は、結合軸Biを固定軸に設定する。ステップS145の判定結果がNOであると、ステップS147は、結合軸Bi'を固定軸に設定する。ステップS144又はS146又はS147の後、処理はステップS148へ進む。
ステップS148は、結合軸Bi(又はBi')が固定軸であるか否かを判定する。ステップS148の判定結果がYESであると、ステップS149は、属性RB2の結合軸と結合軸Bi'を回転操作の対象ベクトルに設定し、ステップS150は、結合軸Bi,Bi'の両方に直交するベクトルを回転軸に設定する。他方、ステップS148の判定結果がNOであると、ステップS151は、属性RB1の結合軸と結合軸Biを回転操作の対象ベクトルに設定し、処理はステップS150へ進む。
ステップS152は、結合軸Bi,Bi'のなす角度を結合角の初期値に設定する。ステップS153は、結合角を調整し、ステップS154は、前回の回転角と現在の回転角との差分に相当する回転角情報を取得し、対象となるベクトルに対して回転操作を行う。ステップS155は、得られたベクトル情報から原子座標を変更し、分子構造を再構築する。ステップS156は、結合角の調整が終了したか否かを判定し、判定結果がNOであると処理はステップS153へ戻る。ステップS156の判定結果がYESであると、ステップS157は、回転操作対象の結合軸の選択を解除する。又、ステップS158は、設定情報を解除し、処理は終了する。
このようにして、先ず最初は図21に示す結合軸B1,B2及び原子A2が選択される。結合軸B1,B2は連結し、原子A2は結合軸B1の末端原子で結合軸B2の末端原子ではないことから、処理は図22の後半の処理(アルゴリズム)に到達することが可能である。選択後に回転角調整フラグが設定されると(分子データのイベント情報フラグに「2軸間の角度変更」ビットが立てられると)、図22の後半の再帰的処理(アルゴリズム)により、結合軸B2の末端原子であって結合軸B1の末端原子ではない末端原子A3を基点として結合軸B2を含まない結合軸に連なる結合軸集団RA3(B4)が選出され、リング存在フラグを真にするかどうか(結合軸B1,B2の両方の末端原子A1に属する識別用フラグのリングビットを立てるかどうか)についても調査される。ここで、リング存在フラグが真であれば、回転操作対象が存在しなくなることから、設定情報を解除して回転操作を終了する。図24に示す蟻酸は環構造を持たないため、回転操作可能な状態となる。
上記の処理までで回転操作可能な状態であれば、図23の前半の処理(アルゴリズム)により結合軸集団RA3に含まれる結合軸B4と原子A2を末端原子に含まない選択結合軸B2に選択ビットを立てて回転対象に設定する。回転軸は、結合軸B1の方向でA1→A2の向きを持つベクトルV1と、結合軸B2の方向でA1→A3の向きを持つベクトルV2について、双方の外積ベクトルに設定する。本実施例では、メインウィンドウに表示されたコマンドウィンドウ上にスライドバーを表示して、バーをマウス104にてドラッグアンドドロップすることにより回転角度を決定し、回転軸と回転角度から回転行列を決定するアルゴリズムを用いた。図24でのスライドバーの初期角度は、初期分子構造における初期角度を計算して表示されている。回転行列が決定されると、図23の後半の処理(アルゴリズム)により結合軸B2,B4が回転演算を受けて結合軸B'2,B'4となり、原子A1からベクトルを加えることにより原子A3と原子A5のCartesian座標がA'3,A'5に変更され、メインウィンドウ上の分子構造が変更される。マウス104がリリースされると回転が終了したと見なして、選択情報と設定情報を解除して回転操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図25のようになる。図25では、マウス104のドラッグアンドドロップにより、120度の初期角度から−66度までの回転を行った結果が示されている。
図21において、B1,B2は選択された結合軸、リングフラグは偽、A2は固定端の原子、B2,B4は回転対象の結合軸、A1→A2×A1→A3はその回転軸を示す。回転演算をRで示すと、B'2=RB2及びB'4=RB4が成立し、A3,A5の座標変更はA'3=A1+B'2及びA'5=A'3+B'4で表される。
(2面角の変更)
図26は、2面角の変更を説明する図である。図26は、回転対象となる原子が、この場合は回転軸である結合軸を介して固定の原子及び不動原子に結合されている状態を示す。
図26に示す処理によりユーザが用意した図1のデータ構造に対し、結合軸データ構造Bのアイテムを3つ選択し、選択されたアイテムが識別番号b1,b2,b3であるとすると、識別番号b1,b2,b3の結合軸データに属するイベント用フラグの選択ビットを立てる。この状態で分子データ構造Mのイベント情報を「2面角の変更」に設定すると、識別番号b1の結合軸データの末端原子についてどちらかの原子データが識別番号b1(b3)を含み、識別番号b2(b3)の結合軸データの末端原子についてどちらかの原子データが識別番号b3(b2)の結合軸データを含む場合にのみ、3連続(連結)の結合軸データ構造Bであるとして、分子データ構造Mのイベント用フラグに「2面角の変更」ビットを立てる。又、識別番号b1の結合軸データと識別番号b3(b2)の結合軸データの両末端原子(識別番号ab1,ab3(ab3))に対し、識別番号ab1から識別番号b1以外(若しくは、識別番号ab3(ab2)から識別番号b3(b2)以外)の結合軸にて連なる全ての結合軸集合データの識別用フラグの選択ビットを立てる。ここで結合軸が有する末端原子に識別番号ab2(若しくは、ab3)の原子が含まれる場合、識別番号b1と識別番号b2(b3)(若しくは、識別番号b3と識別番号b2(b1))の結合軸データは同じ環構造の内部に属することが決定される。この場合には、末端原子データに属する識別用フラグのリングビットを立てる。リングビットが立てられた末端原子データに属する結合軸集合については、回転操作の対象から除外するために識別用フラグの選択ビットを解除する。リングビットが立てられていない場合には、識別番号ab1の原子から連なる結合軸の選択ビット数と識別番号ab3(ab2)の原子から連なる結合軸の選択ビット数とを比較し、少ない方の選択ビットを残し、多い方は解除する。以降、選択ビットのある結合軸を回転対象と表現する。
3連続結合軸だけでなく、両末端原子のうち1つの原子が選択されている場合には、選択された原子若しくは選択されていない原子に連なる結合軸集合のみについて上記操作を実行する。
2面角の角度は、表示されている分子構造上でポインティングデバイスのドラッグアンドドロップから算出するか、又は、メインウィンドウ上の分子表示エリア以外のコマンドエリアにてドラッグアンドドロップ若しくはキーボードにて角度設定を行うことで決定し、回転操作に移行する。ドラッグアンドドロップにて2面角の角度設定を指定する場合、ドラッグしている間は連続的に回転操作を行う。
回転操作は、指定した結合軸データのイベント用フラグに「2面角の変更」ビットを立て、識別番号b1と識別番号b2(b3)の結合軸データの双方と直交するベクトルv1と、指定した識別番号b2と識別番号b3の結合軸データの双方と直交するベクトルv2の双方と直交するベクトルv3を回転軸に設定する。回転軸の向きは固定側から回転対象側とする。回転軸と回転角から回転行列若しくは四元数を算出し、回転対象の結合軸に作用させる。その後、適切な原子1つから結合軸のベクトル情報を辿ることで原子データ構造AのCartesian座標を再形成し、メインウィンドウ上に変更された分子構造を表示する。
図27は、2面角の変更を、蟻酸(HCOOH)の場合を例に説明する図である。図28及び図29は、この場合の2面角の変更を説明するフローチャートであり、図30及び図31は、この場合の2面角の変更操作時の表示画面を示す図である。図30は、結合軸アイテム(必要であれば更に原子アイテム)の選択操作からリング存在フラグの設定までの処理を示し、図31は、回転対象と回転演算の設定から実際の構造変更までの処理を示す。
図28において、ステップS41は、任意の3連続結合軸Bi,Bi',Bi"を選択する。ここでは、説明の便宜上、結合軸Bi,Bi',Bi"の末端原子がABi,ABiBi',ABi'Bi",ABi"であるものとする。ステップS42は、2面角調整フラグを設定、即ち、分子データのイベント情報フラグに「2面角の変更」ビットを立てる。ステップS43は、結合軸は結合軸Bi,Bi',Bi"のみが選択され、且つ、原子は選択されていないか或いは末端原子ABi(又はABi")のみが選択されているか否かを判定する。ステップS43の判定結果がNOであると、処理は図29と共に後述するステップS69へ進む。他方、ステップS43の判定結果がYESであると、ステップS44は、末端原子ABi(又はABi")が未設定の結合軸Bi"'を持つか否かを判定する。ステップS44の判定結果がNOであると、処理は図29と共に後述するステップS52へ進む。
ステップS44の判定結果がYESであると、ステップS45は、結合軸Bi"'を属性RBi(又はRBi")に設定し、結合軸Bi"'に対して末端原子ABi(又はABi")とは逆の末端原子に移動する。ステップS46は、現在の原子が未設定の結合軸を持つか否かを判定し、判定結果がYESであると、ステップS47は、未設定の結合軸を属性RBi(又はRBi")に設定し、逆側の末端原子に移動する。ステップS46の判定結果がNOであると、ステップS48は、直前の、即ち、設定されている結合軸の逆側の原子に移動する。ステップS47又はS48の後、ステップS49は、現在の原子がABi"又はABi'Bi"(又は、ABi又はABiBi')であるか否かを判定する。ステップS49の判定結果がNOであると、ステップS50は、現在の原子がABi(又はABi")であるか否かを判定する。他方、ステップS49の判定結果がYESであると、ステップS51は、リング存在フラグを真に設定する(識別用フラグのリングビットを立てる)。ステップS50の判定結果がYESであると、処理はステップS44へ戻る。ステップS50の判定結果がNO、或いは、ステップS51の後、処理はステップS46へ戻る。
図29において、ステップS52は、リング存在フラグが偽である(識別用フラグのリングビットが立っていない)か否かを判定し、判定結果がNOであると、処理は後述するステップS69へ進む。ステップS52の判定結果がYESであると、ステップS53は、原子ABi(又はABi")が選択済みであるか否かを判定する。ステップS53の判定結果がYESであると、ステップS54は、原子ABi(又はABi")を固定端に設定する。ステップS53の判定結果がNOであると、ステップS55は、属性RBiの原子数が属性RBi"の原子数より大きいか否かを判定する。ステップS55の判定結果がYESであると、ステップS56は、原子ABiを固定端に設定する。ステップS55の判定結果がNOであると、ステップS57は、原子ABi"を固定端に設定する。ステップS54又はS56又はS57の後、処理はステップS58へ進む。
ステップS58は、原子ABiが固定端であるか否かを判定する。ステップS58の判定結果がYESであると、ステップS59は、属性RBi"の結合軸と結合軸Bi"を回転操作の対象ベクトルに設定し、ステップS60は、ベクトルABiBi'→ABi'Bi"を回転軸に設定する。他方、ステップS58の判定結果がNOであると、ステップS61は、属性RBiの結合軸と結合軸Biを回転操作の対象ベクトルに設定し、ステップS62は、ベクトルABi'Bi"→ABiBi'を回転軸に設定する。ステップS60又はS62の後、処理はステップS63へ進む。
ステップS63は、結合軸Biと結合軸Bi'が張る(即ち、形成する)面と結合軸Bi'と結合軸Bi"が張る面から、2面角の初期値を設定する。ステップS64は、2面角を調整し、ステップS65は、前回の2面角と現在の2面角との差分に相当する回転角情報を取得し、対象となるベクトルに対して回転操作を行う。ステップS66は、得られたベクトル情報から原子座標を変更し、分子構造を再構築する。ステップS67は、2面角の調整が終了したか否かを判定し、判定結果がNOであると処理はステップS64へ戻る。ステップS67の判定結果がYESであると、ステップS68は、回転操作対象の結合軸の選択を解除する。又、ステップS69は、設定情報を解除し、処理は終了する。
このようにして、先ず最初は図27の結合軸B2,B3,B4及び原子A5が選択される。結合軸B2,B3,B4は連結され、原子A5は結合軸B4の末端原子で結合軸B2と結合軸B3の末端原子ではないことから、処理は図28の後半の処理(アルゴリズム)に到達することが可能である。結合軸B2,B3,B4及び原子A5の選択後に、回転角調整フラグを設定すると(分子データのイベント情報フラグに「2面角の変更」ビットを立てると)、図28の後半の再帰的処理(アルゴリズム)により、結合軸B2の末端原子であって結合軸B3の末端原子である原子A1を基点として結合軸B3を含み結合軸B2を含まない結合軸に連なる結合軸集団RA1(B3)が選択され、リング存在フラグを真にするかどうか(結合軸B2と結合軸B4双方の末端原子A3に属する識別用フラグのリングビットを立てるかどうか)についても調査される。ここで、リング存在フラグが真であれば、回転操作対象が存在しなくなることから、設定情報を解除して回転操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図30のようになる。図30に示す蟻酸は環構造を持たないため、回転操作可能な状態となる。
上記の処理までで回転操作可能な状態であれば、図29の前半の処理(アルゴリズム)により結合軸集団RA1に含まれる結合軸B3に選択ビットを立てて回転対象に設定する。結合軸B3の回転軸は、結合軸B2の方向でA3→A1の向きを持つベクトルに設定する。本実施例では、メインウィンドウに表示されたコマンドウィンドウ上にスライドバーを表示して、バーをマウス104にてドラッグアンドドロップすることにより回転角度を決定し、回転軸と回転角度から回転行列を決定するアルゴリズムを用いた。図30において、スライドバーの初期角度は、初期分子構造における初期角度を計算して表示されている。回転行列が決定されると、図29の後半の処理(アルゴリズム)により結合軸B3が回転演算を受けて結合軸B'3となり、原子A1からベクトルを加えることにより原子A4のCartesian座標がA'4に変更され、メインウィンドウ上の分子構造が変更される。マウス104がリリースされると回転が終了したと見なして、選択情報と設定情報を解除して回転操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図31のようになる。図31では、マウス104のドラッグアンドドロップにより、2面角が初期の−179度から74度までの回転を行った結果が示されている。
図27において、B2,B3,B4,B5は選択された結合軸、リングフラグは偽、A5は固定端の原子、B3は回転対象の結合軸、A3→A1はその回転軸を示す。回転演算をRで示すと、B'3=RB3が成立し、A4の座標変更はA'4=A1+B'3で表される。
(結合軸の伸縮)
図32は、結合軸の伸縮を説明する図である。図32は、移動対象となる原子が、この場合は伸縮軸である結合軸を介して固定の原子に結合されている状態を示す。
図7に示す処理によりユーザが用意した図1のデータ構造に対し、結合軸データ構造Bのアイテムを1つ選択し、選択されたアイテムが識別番号b1であるとすると、識別番号b1の結合軸データに属するイベント用フラグの選択ビットを立てる。この状態で分子データ構造Mのイベント情報を「伸縮」に設定すると、分子データ構造Mのイベント用フラグに「伸縮」ビットを立て、識別番号b1の結合軸データの両末端原子(識別番号a1,a2)に対し、識別番号b1の結合軸データ以外の結合軸にて連なる全ての結合軸集合データの識別用フラグの選択ビットを立てる。ここで結合軸が有する末端原子に識別番号a1又はa2の原子が含まれる場合、識別番号b1の結合軸データは環構造の内部に属することが決定される。この場合には、末端原子データに属する識別用フラグのリングビットを立てる。リングビットが立てられた末端原子データに属する結合軸集合については、伸縮操作の対象から除外するために識別用フラグの選択ビットを解除する。リングビットが立てられていない場合には、識別番号a1の原子から連なる結合軸の選択ビット数と識別番号a2の原子から連なる結合軸の選択ビット数とを比較し、少ない方の選択ビットを残し、多い方は解除する。以降、選択ビットのある結合軸を回転対象と表現する。
結合軸だけでなく末端原子のうち1つの原子が選択されている場合には、選択された原子若しくは選択されていない原子に連なる結合軸集合のみについて上記操作を実行する。
結合軸伸縮の縮尺度は、表示されている分子構造上でポインティングデバイスのドラッグアンドドロップから算出するか、又は、メインウィンドウ上の分子表示エリア以外のコマンドエリアにてドラッグアンドドロップ若しくはキーボードにて角度設定を行うことで決定し、伸縮操作に移行する。ドラッグアンドドロップにて結合軸伸縮の縮尺度を指定する場合、ドラッグしている間は連続的に伸縮操作を行う。
伸縮操作は、指定した識別番号b1の結合軸データに関してイベント用フラグに、「伸縮」ビットを立て、縮尺度に応じて識別番号b1の結合軸のベクトル情報を変更する。その後、変更対象の識別番号b1の結合軸の末端原子から伸縮操作対象の結合軸のベクトル情報を辿ることで原子データ構造AのCartesian座標を再形成し、メインウィンドウ上に変更された分子構造を表示する。
図33は、結合軸の伸縮を、蟻酸(HCOOH)の場合を例に説明する図である。図34及び図35は、この場合の結合軸の伸縮を説明するフローチャートであり、図36及び図37は、この場合の結合軸の伸縮操作時の表示画面を示す図である。図36は、結合軸アイテム(必要であれば更に原子アイテム)の選択操作からリング存在フラグの設定までの処理を示し、図37は、移動対象と伸縮演算の設定から実際の構造変更までの処理を示す。
図34において、ステップS71は、任意の結合軸Biを選択する。ここでは、説明の便宜上、結合軸Biの末端原子がAB1,AB2であるものとする。ステップS72は、結合長調整フラグを設定、即ち、分子データのイベント情報フラグに「伸縮」ビットを立てる。ステップS73は、結合軸は結合軸Biのみが選択され、且つ、原子は選択されていないか或いは末端原子AB1(又はAB2)のみが選択されているか否かを判定する。ステップS73の判定結果がNOであると、処理は図35と共に後述するステップS99へ進む。他方、ステップS73の判定結果がYESであると、ステップS74は、末端原子AB1(又はAB2)が未設定の結合軸Bi'を持つか否かを判定する。ステップS74の判定結果がNOであると、処理は図35と共に後述するステップS82へ進む。
ステップS74の判定結果がYESであると、ステップS75は、結合軸Bi'を属性RB1(又はRB2)に設定し、結合軸Bi'に対して末端原子AB1(又はAB2)とは逆の末端原子に移動する。ステップS76は、現在の原子が未設定の結合軸を持つか否かを判定し、判定結果がYESであると、ステップS77は、未設定の結合軸を属性RB1(又はRB2)に設定し、逆側の末端原子に移動する。ステップS76の判定結果がNOであると、ステップS78は、直前の、即ち、設定されている結合軸の逆側の原子に移動する。ステップS77又はS78の後、ステップS79は、現在の原子がAB2(又はAB1)であるか否かを判定する。ステップS79の判定結果がNOであると、ステップS80は、現在の原子がAB1(又はAB2)であるか否かを判定する。他方、ステップS79の判定結果がYESであると、ステップS81は、リング存在フラグを真に設定する(識別用フラグのリングビットを立てる)。ステップS80の判定結果がYESであると、処理はステップS74へ戻る。ステップS80の判定結果がNO、或いは、ステップS81の後、処理はステップS76へ戻る。
図35において、ステップS82は、リング存在フラグが偽である(識別用フラグのリングビットが立っていない)か否かを判定し、判定結果がNOであると、処理は後述するステップS99へ進む。ステップS82の判定結果がYESであると、ステップS83は、原子AB1(又はAB2)が選択済みであるか否かを判定する。ステップS83の判定結果がYESであると、ステップS84は、原子AB1(又はAB2)を固定端に設定する。ステップS83の判定結果がNOであると、ステップS85は、属性RB1の原子数が属性RB2の原子数より大きいか否かを判定する。ステップS85の判定結果がYESであると、ステップS86は、原子AB1を固定端に設定する。ステップS85の判定結果がNOであると、ステップS87は、原子AB2を固定端に設定する。ステップS84又はS86又はS87の後、処理はステップS88へ進む。
ステップS88は、原子AB1が固定端であるか否かを判定する。ステップS88の判定結果がYESであると、ステップS89は、属性RB2の結合軸を伸縮操作の対象ベクトルに設定し、ステップS90は、ベクトルAB1→AB2を伸縮方向に設定する。他方、ステップS88の判定結果がNOであると、ステップS91は、属性RB1の結合軸を伸縮操作の対象ベクトルに設定し、ステップS92は、ベクトルAB2→AB1を伸縮方向に設定する。ステップS90又はS92の後、処理はステップS93へ進む。
ステップS93は、結合軸Biの結合長の初期値を設定する。ステップS94は、結合長を調整し、ステップS95は、前回の結合長と現在の結合長との差分に相当する情報を取得し、対象となるベクトルに対して伸縮操作を行う。ステップS96は、得られたベクトル情報から原子座標を変更し、分子構造を再構築する。ステップS97は、結合長の調整が終了したか否かを判定し、判定結果がNOであると処理はステップS94へ戻る。ステップS97の判定結果がYESであると、ステップS98は、伸縮操作対象の結合軸の選択を解除する。又、ステップS99は、設定情報を解除し、処理は終了する。
このようにして、先ず最初は図33の結合軸B2と原子A3が選択される。原子A3は結合軸B2の末端原子であるから、図34の後半の処理(アルゴリズム)に到達することが可能である。結合軸B2と原子A3の選択後に結合長調整フラグが設定されると(分子データのイベント情報フラグに「伸縮」ビットが立てられると)、図34の後半の再帰的処理(アルゴリズム)により、末端原子A1を基点として結合軸B2を含まない結合軸に連なる結合軸集団RA1(B1,B3)が選出され、リング存在フラグを真にするかどうか(原子A3に属する識別用フラグのリングビットを立てるかどうか)についても調査される。ここで、リング存在フラグが真であれば、伸縮による移動操作対象が存在しなくなることから、設定情報を解除して移動操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図36のようになる。図36に示す蟻酸は環構造を持たないため、伸縮操作可能な状態となる。
上記の処理までで伸縮操作可能な状態であれば、図35の前半の処理(アルゴリズム)により結合軸集団RA1に含まれる結合軸B1,B3を移動対象に、結合軸B2を伸縮軸に設定する。本実施例では、メインウィンドウに表示されたコマンドウィンドウ上にスライドバーを表示して、バーをマウス104にてドラッグアンドドロップすることにより縮尺度を決定するアルゴリズムを用いた。縮尺度が決定されると、図35の後半の処理(アルゴリズム)により結合軸B2が伸縮演算を受けて結合軸B'2となり、原子A3からベクトルを加えることにより原子A1,A2,A4のCartesian座標がA'1,A'2,A'4に変更され、メインウィンドウ上の分子構造が変更される。マウス104がリリースされると伸縮が終了したと見なして、選択情報と設定情報を解除して伸縮操作を終了する。ここまでの操作により、ディスプレイ102の画面102a上のメインウィンドウに表示される3次元分子構造は、図37のようになる。図37では、マウス104のドラッグアンドドロップにより、結合長を1.8倍に拡大した結果が示されている。
図33において、B2,A3は選択された結合軸及び原子、リングフラグは偽、A3は固定端の原子、B2は伸縮対象の結合軸を示す。伸縮演算をSで示すと、B'2=SB2が成立し、A1,A2,A4の座標変更は夫々A'1=A3+B'2,A'2=A'1+B1,A'4=A'1+B3で表される。
上記原子周りの自由回転、結合軸周りの回転、2軸間の角度変更、2面角の変更及び伸縮は、適宜組み合わせても良い。又、従来の手法と比較すると、全ての結合軸に末端原子2個の情報とベクトル情報とフラグ情報を、全ての原子に関与する全結合軸情報と座標とフラグ情報を含めることにより、任意の分子構造変更を容易に操作することができ、分子構造構築操作の全体を容易にすることができる。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1) 入力部と、
ハーフベクタ形式又はボールアンドスティック形式で3次元分子構造を画面上に表示するディスプレイと、
該分子構造のうち、該入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定する決定手段と、
該指定された結合軸及び該座標変更の対象となる側に基づいて、原子周りの自由回転、結合軸周りの回転、2軸間の角度変更、2面角の変更及び結合軸の伸縮の少なくとも1つを含む分子構造の変更を、該入力部からの指定に基づいて行う変更手段と、
該決定手段の決定及び該変更手段の変更に基づいて、変更された分子構造を該ディスプレイの画面上に表示する表示手段とを備えたことを特徴とする、分子設計支援装置。
(付記2) 該決定手段は、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
該変更手段は、該指定された結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸の末端に対して座標変更対象ではない側の原子を中心とした自由回転を行うことで、該入力部から指定された角度だけ原子周りの自由回転を行うことを特徴とする、付記1記載の分子設計支援装置。
(付記3) 該決定手段は、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定し、
該変更手段は、該指定された結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸周りの回転を行うことで、該入力部から指定された角度だけ該指定された結合軸周りの回転を行うことを特徴とする、付記1記載の分子設計支援装置。
(付記4) 該決定手段は、該入力部により指定された分子の連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
該変更手段は、該指定された連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸2つの間の角度を変更することで、該入力部から指定された角度だけ該指定された2軸間の角度変更を行うことを特徴とする、付記1記載の分子設計支援装置。
(付記5) 該決定手段は、該入力部により指定された分子の連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸3つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
該変更手段は、該指定された連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸3つのうち中心の結合軸周りの回転を行うことで、該入力部から指定された角度だけ該指定された3つの連続した結合軸のうち中心の結合軸周りに2面角の回転を行うことを特徴とする、付記1記載の分子設計支援装置。
(付記6) 該決定手段は、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定し、
該変更手段は、該指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、該入力部から指定された縮尺度だけ該指定された結合軸の伸縮を行うことを特徴とする、付記1記載の分子設計支援装置。
(付記7) 該決定手段は、該入力部により結合軸若しくは連続した結合軸のみが指定されると、該指定された結合軸の2つの末端原子から該指定された結合軸以外の結合軸に連なる結合軸からなる複数の結合軸集団のうち、結合軸数の少ない方の結合軸集団のみを座標変更の対象に設定することを特徴とする、付記1〜6のいずれか1項記載の分子設計支援装置。
(付記8) 該決定手段は、該入力部により結合軸若しくは連続した結合軸が指定され、且つ、該入力部により更に該指定された結合軸の2つの末端原子のうち1つの原子が指定されると、該指定された原子側或いは指定されていない原子側を基点とした該指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団を座標変更の対象に設定することを特徴とする、付記1〜6のいずれか1項記載の分子設計支援装置。
(付記9) 該決定手段は、該入力部により結合軸若しくは連続した結合軸の一方の末端原子から該指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団が、該指定された結合軸の他方の末端原子から該指定された結合軸以外の結合軸に連なる結合軸を含む場合、該結合軸集団を座標変更の対象から除外することを特徴とする、付記1〜6のいずれか1項記載の分子設計支援装置。
(付記10) 入力部を有するコンピュータに分子設計支援機能を持たせるプログラムであって、
該コンピュータに、ディスプレイの画面上にハーフベクタ形式又はボールアンドスティック形式で表示される3次元分子構造のうち、該入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定させる決定手順と、
該コンピュータに、該指定された結合軸及び該座標変更の対象となる側に基づいて、原子周りの自由回転、結合軸周りの回転、2軸間の角度変更、2面角の変更及び結合軸の伸縮の少なくとも1つを含む分子構造の変更を、該入力部からの指定に基づいて行わせる変更手順と、
該コンピュータに、該決定手順の決定及び該変更手順の変更に基づいて、変更された分子構造を該ディスプレイの画面上に表示させる表示手順とを含むことを特徴とする、プログラム。
(付記11) 該決定手順は、該コンピュータに、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定させ、
該変更手順は、該コンピュータに、該指定された結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸の末端に対して座標変更対象ではない側の原子を中心とした自由回転を行わせることで、該入力部から指定された角度だけ原子周りの自由回転を行わせることを特徴とする、付記10記載のプログラム。
(付記12) 該決定手順は、該コンピュータに、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定させ、
該変更手順は、該コンピュータに、該指定された結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸周りの回転を行わせることで、該入力部から指定された角度だけ該指定された結合軸周りの回転を行わせることを特徴とする、付記10記載のプログラム。
(付記13) 該決定手順は、該コンピュータに、該入力部により指定された分子の連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定させ、
該変更手順は、該コンピュータに、該指定された連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸2つの間の角度を変更させることで、該入力部から指定された角度だけ該指定された2軸間の角度変更を行わせることを特徴とする、付記10記載のプログラム。
(付記14) 該決定手順は、該コンピュータに、該入力部により指定された分子の連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸3つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定させ、
該変更手順は、該コンピュータに、該指定された連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸3つのうち中心の結合軸周りの回転を行わせることで、該入力部から指定された角度だけ該指定された3つの連続した結合軸のうち中心の結合軸周りに2面角の回転を行わせることを特徴とする、付記10記載のプログラム。
(付記15) 該決定手順は、該コンピュータに、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定させ、
該変更手順は、該コンピュータに、該指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、該入力部から指定された縮尺度だけ該指定された結合軸の伸縮を行わせることを特徴とする、付記10記載のプログラム。
(付記16) 該決定手順は、該コンピュータに、該入力部により結合軸若しくは連続した結合軸のみが指定されると、該指定された結合軸の2つの末端原子から該指定された結合軸以外の結合軸に連なる結合軸からなる複数の結合軸集団のうち、結合軸数の少ない方の結合軸集団のみを座標変更の対象に設定させることを特徴とする、付記10〜15のいずれか1項記載のプログラム。
(付記17) 該決定手順は、該コンピュータに、該入力部により結合軸若しくは連続した結合軸が指定され、且つ、該入力部により更に該指定された結合軸の2つの末端原子のうち1つの原子が指定されると、該指定された原子側或いは指定されていない原子側を基点とした該指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団を座標変更の対象に設定させることを特徴とする、付記10〜15のいずれか1項記載のプログラム。
(付記18) 該決定手順は、該コンピュータに、該入力部により結合軸若しくは連続した結合軸の一方の末端原子から該指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団が、該指定された結合軸の他方の末端原子から該指定された結合軸以外の結合軸に連なる結合軸を含む場合、該結合軸集団を座標変更の対象から除外させることを特徴とする、付記10〜15のいずれか1項記載のプログラム。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
データ構造を説明する図である。 データ構造がどのように設定されるかを、蟻酸(HCOOH)の場合を例に説明する図である。 ハーフベクタ形式の表示を説明する図である。 ボールアンドスティック形式の表示を説明する図である。 本発明が適用されるコンピュータシステムを示す斜視図である。 コンピュータシステムの本体部内の要部の構成を説明するブロック図である。 初期データ構造の構築を説明するフローチャートである。 結合軸周りの回転を説明する図である。 原子周りの自由回転を、蟻酸(HCOOH)の場合を例に説明する図である。 原子周りの自由回転を説明するフローチャートである。 原子周りの自由回転を説明するフローチャートである。 原子周りの自由回転操作時の表示画面を示す図である。 原子周りの自由回転操作時の表示画面を示す図である。 結合軸周りの回転を説明する図である。 結合軸周りの回転を、蟻酸(HCOOH)の場合を例に説明する図である。 結合軸周りの回転を説明するフローチャートである。 結合軸周りの回転を説明するフローチャートである。 結合軸周りの回転操作時の表示画面を示す図である。 結合軸周りの回転操作時の表示画面を示す図である。 2軸間の角度変更を説明する図である。 2軸間の角度変更を、蟻酸(HCOOH)の場合を例に説明する図である。 2軸間の角度変更を説明するフローチャートである。 2軸間の角度変更を説明するフローチャートである。 2軸間の角度変更操作時の表示画面を示す図である。 2軸間の角度変更操作時の表示画面を示す図である。 2面角の変更を説明する図である。 2面角の変更を、蟻酸(HCOOH)の場合を例に説明する図である。 2面角の変更を説明するフローチャートである。 2面角の変更を説明するフローチャートである。 2面角の変更操作時の表示画面を示す図である。 2面角の変更操作時の表示画面を示す図である。 結合軸の伸縮を説明する図である。 結合軸の伸縮を、蟻酸(HCOOH)の場合を例に説明する図である。 結合軸の伸縮を説明するフローチャートである。 結合軸の伸縮を説明するフローチャートである。 結合軸の伸縮操作時の表示画面を示す図である。 結合軸の伸縮操作時の表示画面を示す図である。
符号の説明
100 コンピュータシステム
101 本体部
102 ディスプレイ
102a 表示画面
103 キーボード
104 マウス
105 モデム
106 記録媒体
110 ディスク
200 バス
201 CPU
202 メモリ部
203 ディスクドライブ
204 ハードディスクドライブ

Claims (12)

  1. 与えられた3次元分子構造のデータに対して、原子に関する原子データ構造A、結合軸に関する結合軸データB、及び分子に関する分子データ構造Mを含むデータ構造を記憶する記憶部と、
    前記原子データ構造Aは、内部座標における原子順序番号からなる識別番号a、元素記号からなる原子番号、元分子に任意の新規分子構造を追加することで変動する数値からなる結合軸数、該結合軸数に含まれる各結合軸の識別番号bの集合データからなる結合軸の識別番号、及び環構造を有するか否かをチェックするための識別用フラグを有し、
    前記結合軸データ構造Bは、全ての結合軸を1対1に対応させるために必要な番号からなる識別番号b、結合軸の両末端に存在する原子の識別番号aの集合データからなりデータ数が2である両端原子の識別番号、回転操作と伸縮操作と削除操作と追加操作と置換操作を含む分子構造構築GUIが有するイベントに対する現在のイベント種類を示すイベント用フラグ、前記原子データ構造Aの識別用フラグと同じ識別用フラグ、及び結合軸を3次元ベクトルと1対1に対応させたベクトル情報を有し、
    前記分子データ構造Mは、原子数、結合軸数、前記原子データ構造A、前記結合軸データ構造B、前記イベント情報、及び前記イベント用フラグを有し、
    入力部と、
    ハーフベクタ形式又はボールアンドスティック形式で前記3次元分子構造を画面上に表示するディスプレイと、
    前記分子構造のうち、前記入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定する決定手段と、
    前記指定された結合軸及び前記座標変更の対象となる側に基づいて、前記原子データ構造A及び前記結合軸データ構造Bが有する情報を用いて原子を中心とした原子周りの自由回転により結合軸の方向を自由に設定する分子構造の変更を、前記入力部からの指定に基づいて行う変更手段と、
    前記決定手段の決定及び前記変更手段の変更に基づいて、変更された分子構造を前記ディスプレイの画面上に表示する表示手段とを備えたことを特徴とする、分子設計支援装置。
  2. 前記決定手段は、該入力部により指定された分子の結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
    前記変更手段は、前記指定された結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸の末端に対して座標変更対象ではない側の原子を中心とした自由回転を行うことで、前記入力部から指定された角度だけ原子周りの自由回転を行うことを特徴とする、請求項1記載の分子設計支援装置。
  3. 前記決定手段は、前記入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定し、
    前記変更手段は、前記指定された結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸周りの回転を行うことで、前記入力部から指定された角度だけ該指定された結合軸周りの回転による分子構造の変更を、該入力部からの指定に基づいて更に行うことを特徴とする、請求項1又は2記載の分子設計支援装置。
  4. 前記決定手段は、前記入力部により指定された分子の連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
    前記変更手段は、前記指定された連続する結合軸2つ、或いは、連続する結合軸2つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸2つの間の角度を変更することで、前記入力部から指定された角度だけ該指定された2軸間の角度変更による分子構造の変更を、該入力部からの指定に基づいて更に行うことを特徴とする、請求項1乃至3のいずれか1項記載の分子設計支援装置。
  5. 前記決定手段は、前記入力部により指定された分子の連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸3つの末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定し、
    前記変更手段は、前記指定された連続する結合軸3つ、或いは、連続する結合軸3つとボールアンドスティック形式の連続した結合軸2つの末端原子2つのうちの原子1つに基づいて、結合軸3つのうち中心の結合軸周りの回転を行うことで、前記入力部から指定された角度だけ該指定された3つの連続した結合軸のうち中心の結合軸周りに2面角の変更による分子構造の変更を、該入力部からの指定に基づいて更に行うことを特徴とする、請求項1乃至4のいずれか1項記載の分子設計支援装置。
  6. 前記決定手段は、前記入力部により指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、結合軸に対して座標変更の対象となる側を決定し、
    前記変更手段は、前記指定された分子の結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸の末端原子2つのうちの原子1つに基づいて、前記入力部から指定された縮尺度だけ該指定された結合軸の伸縮による分子構造の変更を、該入力部からの指定に基づいて更に行うことを特徴とする、請求項1乃至5のいずれか1項記載の分子設計支援装置。
  7. 前記決定手段は、前記入力部により結合軸若しくは連続した結合軸のみが指定されると、前記指定された結合軸の2つの末端原子から該指定された結合軸以外の結合軸に連なる結合軸からなる複数の結合軸集団のうち、結合軸数の少ない方の結合軸集団のみを座標変更の対象に設定することを特徴とする、請求項1乃至6のいずれか1項記載の分子設計支援装置。
  8. 前記決定手段は、前記入力部により結合軸若しくは連続した結合軸が指定され、且つ、前記入力部により更に該指定された結合軸の2つの末端原子のうち1つの原子が指定されると、該指定された原子側或いは指定されていない原子側を基点とした該指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団を座標変更の対象に設定することを特徴とする、請求項1乃至6のいずれか1項記載の分子設計支援装置。
  9. 前記決定手段は、前記入力部により結合軸若しくは連続した結合軸の一方の末端原子から前記指定された結合軸以外の結合軸に連なる結合軸からなる結合軸集団が、該指定された結合軸の他方の末端原子から該指定された結合軸以外の結合軸に連なる結合軸を含む場合、該結合軸集団を座標変更の対象から除外することを特徴とする、請求項1乃至6のいずれか1項記載の分子設計支援装置。
  10. 入力部を有するコンピュータに分子設計支援機能を持たせるプログラムであって、
    前記コンピュータに、与えられた3次元分子構造のデータに対して、原子に関する原子データ構造A、結合軸に関する結合軸データB、及び分子に関する分子データ構造Mを含むデータ構造を記憶部に記憶させる記憶手順と、
    前記原子データ構造Aは、内部座標における原子順序番号からなる識別番号a、元素記号からなる原子番号、元分子に任意の新規分子構造を追加することで変動する数値からなる結合軸数、該結合軸数に含まれる各結合軸の識別番号bの集合データからなる結合軸の識別番号、及び環構造を有するか否かをチェックするための識別用フラグを有し、
    前記結合軸データ構造Bは、全ての結合軸を1対1に対応させるために必要な番号からなる識別番号b、結合軸の両末端に存在する原子の識別番号aの集合データからなりデータ数が2である両端原子の識別番号、回転操作と伸縮操作と削除操作と追加操作と置換操作を含む分子構造構築GUIが有するイベントに対する現在のイベント種類を示すイベント用フラグ、前記原子データ構造Aの識別用フラグと同じ識別用フラグ、及び結合軸を3次元ベクトルと1対1に対応させたベクトル情報を有し、
    前記分子データ構造Mは、原子数、結合軸数、前記原子データ構造A、前記結合軸データ構造B、前記イベント情報、及び前記イベント用フラグを有し、
    前記コンピュータに、ディスプレイの画面上にハーフベクタ形式又はボールアンドスティック形式で表示される前記3次元分子構造のうち、前記入力部により指定された分子の結合軸に基づいて、分子全体に対して座標変更の対象となる側を決定させる決定手順と、
    前記コンピュータに、前記指定された結合軸及び前記座標変更の対象となる側に基づいて、前記原子データ構造A及び前記結合軸データ構造Bが有する情報を用いて原子を中心とした原子周りの自由回転により結合軸の方向を自由に設定する分子構造の変更を、前記入力部からの指定に基づいて行わせる変更手順と、
    前記コンピュータに、前記決定手順の決定及び該変更手順の変更に基づいて、変更された分子構造を前記ディスプレイの画面上に表示させる表示手順とを含むことを特徴とする、プログラム。
  11. 前記決定手順は、前記コンピュータに、前記入力部により指定された分子の結合軸1つ、或いは、結合軸1つと結合軸末端原子2つのうちの原子1つに基づいて、分子全体に対して座標変更の対象となる側を決定させ、
    前記変更手段は、前記コンピュータに、前記指定された結合軸1つ、或いは、結合軸1つとボールアンドスティック形式の結合軸末端原子2つのうちの原子1つに基づいて、該指定された結合軸の末端に対して座標変更対象ではない側の原子を中心とした自由回転を行うことで、前記入力部から指定された角度だけ原子周りの自由回転を行わせることを特徴とする、請求項10記載のプログラム。
  12. 前記変更手順は、前記コンピュータに、前記指定された結合軸及び該座標変更の対象となる側に基づいて、結合軸周りの回転、2軸間の角度変更、2面角の変更、及び結合軸の伸縮のうち少なくとも1つによる分子構造の変更を、前記入力部からの指定に基づいて更に行わせることを特徴とする、請求項10又は11記載のプログラム。
JP2006310564A 2006-11-16 2006-11-16 分子設計支援装置及びプログラム Expired - Fee Related JP4984843B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006310564A JP4984843B2 (ja) 2006-11-16 2006-11-16 分子設計支援装置及びプログラム
US11/976,360 US8271250B2 (en) 2006-11-16 2007-10-24 Molecule design support apparatus and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006310564A JP4984843B2 (ja) 2006-11-16 2006-11-16 分子設計支援装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008129649A JP2008129649A (ja) 2008-06-05
JP4984843B2 true JP4984843B2 (ja) 2012-07-25

Family

ID=39418324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006310564A Expired - Fee Related JP4984843B2 (ja) 2006-11-16 2006-11-16 分子設計支援装置及びプログラム

Country Status (2)

Country Link
US (1) US8271250B2 (ja)
JP (1) JP4984843B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5272996B2 (ja) * 2009-09-29 2013-08-28 富士通株式会社 設計支援装置、cadシステム及び設計支援プログラム
CN102486768B (zh) * 2010-12-02 2014-10-29 北大方正集团有限公司 用于调整化学键图形的角度的方法和装置
US20180046265A1 (en) * 2013-06-06 2018-02-15 Idhl Holdings, Inc. Latency Masking Systems and Methods
USD966332S1 (en) * 2021-01-25 2022-10-11 Ambit Microsystems (Shanghai) Ltd. Display screen or portion thereof with icon
CN115564052B (zh) * 2021-07-02 2024-08-13 本源量子计算科技(合肥)股份有限公司 一种分子结构的构建方法及相关装置
USD1024118S1 (en) * 2021-12-17 2024-04-23 YouSolar, Inc. Portion of a display screen with graphical user interface

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3080728B2 (ja) * 1991-10-29 2000-08-28 日本電気株式会社 分子部品座標の合成方式
JP2565035B2 (ja) 1991-11-05 1996-12-18 ダイキン工業株式会社 高分子データの2面角一斉変更方法およびその装置
JP3103176B2 (ja) 1991-12-20 2000-10-23 富士通株式会社 分子設計支援装置及び支援方法
JP3127026B2 (ja) * 1991-12-20 2001-01-22 富士通株式会社 分子設計支援システム
JP3545075B2 (ja) * 1994-12-28 2004-07-21 富士通株式会社 化合物解析装置
JP4516030B2 (ja) * 1995-12-28 2010-08-04 株式会社東芝 半導体装置の製造プロセスの設計方法、半導体装置の製造方法、及び半導体装置の製造システム
US6185472B1 (en) 1995-12-28 2001-02-06 Kabushiki Kaisha Toshiba Semiconductor device manufacturing method, manufacturing apparatus, simulation method and simulator

Also Published As

Publication number Publication date
US20080120575A1 (en) 2008-05-22
US8271250B2 (en) 2012-09-18
JP2008129649A (ja) 2008-06-05

Similar Documents

Publication Publication Date Title
US10515479B2 (en) Collaborative 3D modeling system
JP4849301B2 (ja) 情報処理装置および方法、並びにプログラム
JP5144293B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US10937247B1 (en) Three-dimensional room model generation using ring paths and photogrammetry
US8823709B2 (en) User interface framework for viewing large scale graphs on the web
CN102077166B (zh) 使用可视陆标来组织图
JP5610129B2 (ja) 3次元テンプレート変形方法、装置及びプログラム
US20090293008A1 (en) Information Processing Device, User Interface Method, And Information Storage Medium
CN102708355A (zh) 信息处理装置、信息处理方法及程序
US10643344B1 (en) Three-dimensional room measurement process
US20190318523A1 (en) Methods and Systems for Monitoring User Activity and Managing Controllers in 3-D Graphics
JP4984843B2 (ja) 分子設計支援装置及びプログラム
JP4444893B2 (ja) 拡張ポートフォリオチャート描画装置
JP5595548B2 (ja) コンテンツ管理装置、コンテンツ管理装置の制御方法、プログラム、及びプログラムを記録した記録媒体
CN113196271A (zh) 用于衣服建模的身体形状显示方法
KR20060125532A (ko) 가상 3차원 좌표 공간에 있어서의 기하 형상의 자동 인식방법, 그 3차원 cad 시스템 및 3차원 cad 프로그램
EP4242865A1 (en) Information processing device, information processing method, and information processing program
JP2009003737A (ja) 表示装置、表示プログラム、表示方法
US9235659B2 (en) Local behavior in a variational system
US20160292320A1 (en) Improved methods and systems for modelling geological formations
WO2013033007A1 (en) Notch blends in brep models
Cho et al. BetaMol: a molecular modeling, analysis and visualization software based on the beta-complex and the quasi-triangulation
CN117226827B (zh) 一种机器人控制方法和相关产品
JP2014087875A (ja) 経路探索方法、経路評価方法、経路探索装置、制御装置、ロボット、及び、プログラム
JP2015007844A (ja) ユーザインタフェース装置、ユーザインタフェース方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120221

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120229

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

R150 Certificate of patent or registration of utility model

Ref document number: 4984843

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees