(57)【特許請求の範囲】
【請求項１】
化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出し、
算出した前記割合に基づいて、抽出した前記複数の部分構造のいずれかを選択する、
制御部を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記複数の部分構造のうち、前記割合が最大の部分構造を選択する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記複数の部分構造のうち、前記割合が閾値以上の部分構造のいずれかを選択する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御部は、
前記割合が閾値以上の部分構造のそれぞれについて、当該部分構造の、前記範囲に含まれる面積を算出し、
前記割合が閾値以上の部分構造のうち、算出した前記面積が最大の部分構造を選択する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、
前記割合が閾値以上の部分構造のうち、前記範囲に含まれる原子数が最大の部分構造を選択する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記制御部は、
前記複数の部分構造のうち、前記割合が大きい部分構造から優先して当該部分構造を示す情報を表示させ、
前記複数の部分構造のいずれかの選択を受け付ける、
ことを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
前記制御部は、
選択された前記部分構造に対して指定された属性を受け付け、
受け付けた前記属性を、選択された前記部分構造の属性として設定する、
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記制御部は、
受け付けた前記範囲に少なくとも１つの原子が含まれ、かつ、属性が設定されていない部分構造を前記モデルから抽出する、
ことを特徴とする請求項１〜７のいずれか一つに記載の情報処理装置。
【請求項９】
コンピュータが、
化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出する、
処理を実行することを特徴とする表示制御方法。
【請求項１０】
コンピュータに、
化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出する、
処理を実行させることを特徴とする表示制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、表示制御方法、および表示制御プログラムに関する。
【背景技術】
【０００２】
従来、３Ｄ（Ｄｉｍｅｎｓｉｏｎ）ビューアを用いて、タンパク質やＤＮＡ（ＤｅｏｘｙｒｉｂｏＮｕｃｌｅｉｃ  Ａｃｉｄ）などの生体高分子の立体構造を表示する技術がある。ユーザは、例えば、生体高分子の構成単位であるアミノ酸や塩基などの部分構造を選択して、当該部分構造の属性や計算パラメータを設定し、または確認して、生体高分子の量子化学計算などのシミュレーションを行う。
【０００３】
関連する技術としては、例えば、データを読み込み、グラフィックディスプレイ上に分子構造を表示し、表示球の中心位置と半径を設定し、半径に対して内側および外側部分を選択する操作を行い、任意の方向に視点を変更し、選択部分を非表示にするものがある。また、例えば、第１ウィンドウの分子構造および抽出領域を共にワイヤー・フレーム・モデル表示し、第２ウィンドウに、抽出領域に属する原子同士の結合のみをワイヤー・フレーム・モデル表示すると共に、他の原子を点で表示する技術がある。また、例えば、立体構造データを表示属性の設定領域が設けられた表示用バッファに格納し、表示属性の設定に対応した表示形態でグラフィック表示を行うと共に、表示属性の設定に対応した表示形態で文字表示を行う技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１０８２０１号公報
【特許文献２】特開平０４−２３８５８０号公報
【特許文献３】特開平０８−２７２８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、ユーザが、画面に表示された生体高分子のモデルから、所望の部分構造を選択することが難しい場合がある。例えば、タンパク質やＤＮＡなどの生体高分子は、アミノ酸や塩基が鎖上に重合して形成されており、画面上の奥行き方向に複数のアミノ酸や塩基などの部分構造が重なって並んでいることがあるため、所望のアミノ酸や塩基などの部分構造を選択することが難しい。
【０００６】
１つの側面では、本発明は、化合物のモデルから所望の部分構造を選択しやすくすることができる情報処理装置、表示制御方法、および表示制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、化合物のモデルを画面に表示させ、表示された前記モデルに対して指定された範囲を受け付け、受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出する情報処理装置、表示制御方法、および表示制御プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、化合物のモデルから所望の部分構造を選択しやすくすることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、表示制御方法の一例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、座標ファイル３００の記憶内容の一例を示す説明図である。
【図４】図４は、原子数テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、情報処理装置１００の機能的構成例を示すブロック図である。
【図６】図６は、表示内容の遷移の一例を示す説明図である。
【図７】図７は、ブロックを選択する処理の一例に関する説明図（その１）である。
【図８】図８は、ブロックを選択する処理の一例に関する説明図（その２）である。
【図９】図９は、ブロックを選択する処理の一例に関する説明図（その３）である。
【図１０】図１０は、表示制御処理手順の一例を示すフローチャートである。
【図１１】図１１は、計数処理手順の一例を示すフローチャートである。
【図１２】図１２は、算出処理手順の一例を示すフローチャートである。
【図１３】図１３は、選択処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる情報処理装置、表示制御方法、および表示制御プログラムの実施の形態を詳細に説明する。
【００１１】
化学や薬学などの分野において、ユーザは、シミュレーションによって化合物の構造解析を行って得られた化合物の３Ｄモデルを画面に表示して、表示した化合物の３Ｄモデルのブロックを選択して、属性や計算パラメータなどを設定、または確認する。そして、ユーザは、化合物の３Ｄモデルに基づいて、量子化学計算などのシミュレーションを行い、化合物の研究や開発を行う。
【００１２】
化合物とは、複数の原子を組み合わせた物質である。化合物とは、例えば、生体高分子である。ブロックとは、化合物の３Ｄモデルの部分構造である。ブロックとは、例えば、アミノ酸の残基の３Ｄモデルである。ブロックとは、例えば、核酸の塩基の３Ｄモデルであってもよいし、Ｃｈａｉｎの３Ｄモデルであってもよい。
【００１３】
ここで、ユーザが、画面上の奥行き方向に重なって配置された複数のブロックのうちの奥側に配置された所望のブロックを選択しようとしたときに、最も手前側に配置されたブロックが選択されてしまい、所望のブロックを選択することができない場合がある。また、ユーザが、画面上の奥行き方向に重なって配置された複数のブロックのうちの奥側に配置された所望のブロックを選択しようとしたときに、複数のブロックが全て選択されてしまい、所望のブロックとは異なるブロックまで選択されてしまう場合がある。一方で、ユーザが、所望のブロックが最も手前側に配置されたブロックになるように、または所望のブロックが他のブロックと重なって配置されないように、視点方向や表示倍率を変更すると、所望のブロックを見失ってしまう場合がある。
【００１４】
このように、化合物の３Ｄモデルが複雑であると、化合物の３Ｄモデルから所望のブロックを選択することが難しい場合がある。結果として、ユーザの作業効率が低下してしまう。そこで、本実施の形態では、所望のブロックを選択しやすくすることができる表示制御方法について説明する。
【００１５】
（表示制御方法の一例）
図１は、表示制御方法の一例を示す説明図である。情報処理装置１００は、実施の形態にかかる表示制御プログラムを実行するコンピュータである。
【００１６】
（１）情報処理装置１００は、化合物の３Ｄモデルを画面１１０に表示し、マウスやキーボードなどの入力装置を用いたユーザからの操作入力に基づいて、化合物の３Ｄモデルに対して指定された範囲を受け付ける。図１の例では、情報処理装置１００は、画面１１０に表示された化合物の３Ｄモデルに対して指定された範囲１１１を受け付ける。以下の説明では、指定された範囲１１１を「選択範囲１１１」と表記する場合がある。
【００１７】
（２）情報処理装置１００は、選択範囲１１１に少なくとも１つの原子が含まれるブロックを、化合物の３Ｄモデルから抽出する。図１の例では、情報処理装置１００は、選択範囲１１１に少なくとも１つの原子が含まれるブロックとして、Ｎｏ「１」が割り振られたアミノ酸の残基「アスパラギン（ＡＳＮ：Ａｓｐａｒａｇｉｎｅ）」を抽出する。
【００１８】
また、情報処理装置１００は、同様に、Ｎｏ「２」〜「７」のそれぞれが割り振られたアミノ酸の残基「アスパラギン酸（ＡＳＰ：Ａｓｐａｒｔｉｃ  Ａｃｉｄ）」、「リシン（ＬＹＳ：Ｌｙｓｉｎｅ）」、「フェニルアラニン（ＰＨＥ：Ｐｈｅｎｙｌａｌａｎｉｎｅ）」、「セリン（ＳＥＲ：Ｓｅｒｉｎｅ）」、「トレオニン（ＴＨＲ：Ｔｈｒｅｏｎｉｎｅ）」、「トリプトファン（ＴＲＰ：Ｔｒｙｐｔｏｐｈａｎ）」を抽出する。以下の説明では、アミノ酸の残基の名称を、上述したアルファベット３文字の略称によって表記する場合がある。
【００１９】
（３）情報処理装置１００は、複数のブロックを抽出した場合、複数のブロックのそれぞれについて、当該ブロックの全ての原子の数に対する、当該ブロックの、選択範囲１１１に含まれる原子の数の割合を算出する。以下の説明では、ブロックの全ての原子の数を「全原子数」と表記する場合がある。以下の説明では、ブロックの、選択範囲１１１に含まれる原子の数を「範囲内原子数」と表記する場合がある。
【００２０】
図１の例では、情報処理装置１００は、小数第２位で四捨五入した、アミノ酸の残基「ＡＳＮ」の全原子数「８」に対する範囲内原子数「７」の割合「８７．５％」を算出する。また、情報処理装置１００は、同様に、アミノ酸の残基「ＡＳＰ」、「ＬＹＳ」、「ＰＨＥ」のそれぞれについての割合「１２．５％」、「２２．２％」、「１００．０％」を算出する。また、情報処理装置１００は、同様に、アミノ酸の残基「ＳＥＲ」、「ＴＨＲ」、「ＴＲＰ」のそれぞれについての割合「５０．０％」、「２８．６％」、「５７．１％」を算出する。
【００２１】
ここで、ユーザは、所望のブロックを選択しようとすると、所望のブロックのうちの大部分が含まれるように選択範囲を指定することが多い。また、ユーザは、所望のブロックを選択しようとするにもかかわらず、所望のブロックのうちの極一部しか含まれないように選択範囲を指定することが少ない。したがって、ブロックは、当該ブロックについての全原子数に対する範囲内原子数の割合が大きいほど、ユーザの所望のブロックとして尤もらしくなる。
【００２２】
一方で、ユーザは、所望のブロックを選択しようとすると、所望のブロックとは異なる他のブロックのうちの極一部しか含まれないように選択範囲を指定することが多い。したがって、ブロックは、当該ブロックについての全原子数に対する範囲内原子数の割合が小さいほど、ユーザの所望のブロックとして尤もらしくなくなる。換言すれば、あるブロックについての全原子数に対する範囲内原子数の割合は、当該ブロックについてのユーザの所望のブロックとしての尤もらしさの指標になる。
【００２３】
（４）情報処理装置１００は、抽出した複数のブロックのそれぞれについての割合に基づいて、ユーザが所望のブロックを選択しやすくするための支援を行う。図１の例では、情報処理装置１００は、割合が最大のブロックを、ユーザの所望のブロックとして尤もらしいと判断して、自動で選択する。
【００２４】
これにより、情報処理装置１００は、ユーザの所望の部分構造としての尤もらしさの指標になる割合に基づいて、最も手前に配置されたブロックに限らずに、ユーザの所望のブロックの候補を自動選択することができる。このため、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。このとき、ユーザは、視点方向や表示倍率を変更しなくてもよく、作業効率を向上することができる。
【００２５】
また、情報処理装置１００は、選択範囲にユーザの所望のブロックの全てが含まれていなくても、所望のブロックを選択することができる。このため、ユーザは、所望のブロックの全てが含まれるように選択範囲を厳密に指定しなくてもよくなり、所望のブロックを選択しやすくなる。
【００２６】
ここでは、情報処理装置１００が、割合が最大のブロックを、ユーザの所望のブロックとして尤もらしいと判断して、自動で選択する場合について説明したが、これに限らない。例えば、情報処理装置１００は、複数のブロックのうちの割合が閾値以上のブロックを、ユーザの所望のブロックとして一定以上に尤もらしいと判断して、画面１１０に表示して、ユーザからの所望のブロックの選択を受け付けてもよい。
【００２７】
（情報処理装置１００のハードウェア構成例）
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３とを有する。
【００２８】
また、情報処理装置１００は、ディスクドライブ２０４と、ディスク２０５と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０６と、ディスプレイ２０７と、キーボード２０８と、マウス２０９とを有する。また、各構成部はバス２００によってそれぞれ接続される。
【００２９】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ディスクドライブ２０４は、ＣＰＵ２０１の制御に従ってディスク２０５に対するデータのリード／ライトを制御する。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する。ディスク２０５は、例えば、磁気ディスク、または光ディスクである。
【００３０】
ＲＯＭ２０２、ＲＡＭ２０３、またはディスク２０５は、図３に後述する座標ファイル３００、図４に後述する原子数テーブル４００を記憶する。座標ファイル３００は、化合物の原子の座標を示すファイルである。座標ファイル３００は、化合物の３Ｄモデルを画面１１０に表示するために用いられるファイルである。原子数テーブル４００は、化合物の３Ｄモデルに含まれる複数のブロックのそれぞれの全原子数をまとめたテーブルである。
【００３１】
Ｉ／Ｆ２０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、Ｉ／Ｆ２０６は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ２０６は、例えば、モデムやＬＡＮアダプタなどである。
【００３２】
ディスプレイ２０７は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ２０７は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３３】
キーボード２０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。キーボード２０８は、例えば、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２０９は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。情報処理装置１００は、上述した構成部の他に、例えば、スキャナ、プリンタなどを有してもよい。
【００３４】
（座標ファイル３００の記憶内容）
次に、図３を用いて、座標ファイル３００の記憶内容の一例について説明する。座標ファイル３００は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶領域によって実現される。
【００３５】
図３は、座標ファイル３００の記憶内容の一例を示す説明図である。図３に示すように、座標ファイル３００は、通し番号項目に対応付けて、原子名項目と、残基名項目と、ＣｈａｉｎＩＤ項目と、残基番号項目と、Ｘ座標項目と、Ｙ座標項目と、Ｚ座標項目と、Ｏｃｃｕｐａｎｃｙ項目と、温度因子項目と、元素名項目とを有する。
【００３６】
座標ファイル３００は、原子ごとに各項目に情報が設定されることにより、レコードを記憶する。座標ファイル３００は、例えば、ＰＤＢ書式に従って記述されたファイルである。
【００３７】
通し番号項目には、化合物に含まれる原子に割り振られた通し番号が記憶される。原子名項目には、通し番号項目に設定された通し番号が割り振られた原子の名称が記憶される。原子の名称は、例えば、α炭素（ＣＡ）、β炭素（ＣＢ）などである。
【００３８】
残基名項目には、通し番号項目に設定された通し番号が割り振られた原子が含まれる残基の名称が記憶される。残基の名称は、例えば、「アスパラギン」や「アスパラギン酸」などである。残基の名称は、例えば、アルファベット３文字の略称によって表記される。
【００３９】
ＣｈａｉｎＩＤ項目には、通し番号項目に設定された通し番号が割り振られた原子が含まれるＣｈａｉｎの識別情報が記憶される。識別情報は、例えば、アルファベット、数字などの組み合わせによって表記される。残基番号項目には、残基名項目に設定された残基に割り振られた番号が記憶される。
【００４０】
Ｘ座標項目は、オングストローム（Å）単位のＸ軸、Ｙ軸、Ｚ軸を有する３次元空間の直交座標系における、通し番号項目に設定された通し番号が割り振られた原子についてのＸ軸方向の座標値が記憶される。１オングストローム（Å）は、１．０×１０＾−１０メートルである。
【００４１】
Ｙ座標項目は、オングストローム（Å）単位のＸ軸、Ｙ軸、Ｚ軸を有する３次元空間の直交座標系における、通し番号項目に設定された通し番号が割り振られた原子についてのＹ軸方向の座標値が記憶される。Ｚ座標項目は、オングストローム（Å）単位のＸ軸、Ｙ軸、Ｚ軸を有する３次元空間の直交座標系における、通し番号項目に設定された通し番号が割り振られた原子についてのＺ軸方向の座標値が記憶される。
【００４２】
Ｏｃｃｕｐａｎｃｙ項目には、通し番号項目に設定された通し番号が割り振られた原子のＯｃｃｕｐａｎｃｙが記憶される。Ｏｃｃｕｐａｎｃｙは、占有率である。占有率は、ある空間位置に、原子が存在する確率を示す値である。占有率は、１つの空間位置に、原子が必ず存在する場合には１になる。
【００４３】
温度因子項目には、通し番号項目に設定された通し番号が割り振られた原子の温度因子が記憶される。温度因子は、値が大きいほど、熱振動による原子の動きが大きいことを示す。元素名項目には、通し番号項目に設定された通し番号が割り振られた原子に対応する元素の名称が記憶される。元素の名称は、例えば、炭素（Ｃ）、窒素（Ｎ）、酸素（Ｏ）などである。
【００４４】
情報処理装置１００は、例えば、座標ファイル３００を、ＲＯＭ２０２と、ＲＡＭ２０３と、ディスク２０５となどの記憶領域から読み出して、取得する。情報処理装置１００は、座標ファイル３００を、Ｉ／Ｆ２０６によって、他のコンピュータから取得してもよい。情報処理装置１００は、キーボード２０８やマウス２０９を用いたユーザの操作入力によって取得してもよい。情報処理装置１００は、シミュレーションを行うことにより、座標ファイル３００を生成して、取得してもよい。情報処理装置１００は、例えば、座標ファイル３００に基づいて、化合物の３Ｄモデルを画面１１０に表示することができる。また、情報処理装置１００は、例えば、座標ファイル３００に基づいて、原子が選択範囲に含まれるか否かを判定することができる。
【００４５】
ここでは、座標ファイル３００が蛋白質の残基についての情報を含む場合について説明したが、これに限らない。例えば、座標ファイル３００は、核酸の塩基についての情報を含んでもよい。また、座標ファイル３００は、リガンド、水などについての情報を含んでもよい。
【００４６】
（原子数テーブル４００の記憶内容）
次に、図４を用いて、原子数テーブル４００の記憶内容の一例について説明する。原子数テーブル４００は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶領域によって実現される。
【００４７】
図４は、原子数テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、原子数テーブル４００は、Ｎｏ項目に対応付けて、ブロック項目と、全原子数項目とを有し、ブロックごとに各項目に情報が設定されることにより、レコードを記憶する。
【００４８】
Ｎｏ項目には、ブロックに割り振られた番号が記憶される。ブロック項目には、Ｎｏ項目に設定された番号が割り振られたブロックの名称が記憶される。図４の例では、ブロックは、アミノ酸の残基である。図４の例では、ブロックの名称は、残基の名称である。残基の名称は、例えば、「アスパラギン」や「アスパラギン酸」などである。残基の名称は、例えば、アルファベット３文字の略称によって表記される。
【００４９】
全原子数項目には、Ｎｏ項目に設定された番号が割り振られたブロックに含まれる原子の数が記憶される。情報処理装置１００は、例えば、原子数テーブル４００に基づいて、ブロックの全原子数を取得することができる。情報処理装置１００は、適宜、ブロックの全原子数を計数して全原子数を取得してもよく、原子数テーブル４００を有していなくてもよい。
【００５０】
（情報処理装置１００の機能的構成例）
次に、図５を用いて、情報処理装置１００の機能的構成例について説明する。
【００５１】
図５は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、制御部となる機能として、表示制御部５０１と、受付部５０２と、抽出部５０３と、算出部５０４と、選択部５０５とを含む。
【００５２】
表示制御部５０１は、化合物のモデルを画面１１０に表示させる。化合物とは、複数の原子を組み合わせた物質である。化合物とは、例えば、生体高分子である。画面１１０とは、画像の表示領域である。画面１１０とは、例えば、ディスプレイ２０７であってもよいし、ディスプレイ２０７上のウィンドウであってもよい。表示制御部５０１は、例えば、座標ファイル３００に基づいて、生体高分子の３Ｄモデルを、ディスプレイ２０７上の立体構造表示用ウィンドウに表示させる。
【００５３】
これにより、表示制御部５０１は、ユーザが閲覧可能なように化合物のモデルを表示することができる。表示制御部５０１は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、その機能を実現する。
【００５４】
受付部５０２は、表示された化合物のモデルに対して指定された範囲１１１を受け付ける。受付部５０２は、例えば、キーボード２０８やマウス２０９などの入力装置を用いたユーザからの操作入力に基づいて、化合物のモデルに対して指定された範囲１１１を受け付ける。以下の説明では、指定された範囲１１１を「選択範囲１１１」と表記する場合がある。
【００５５】
選択範囲１１１は、例えば、ある視点方向から３Ｄモデルを画面１１０に表示した場合の当該画面１１０上の２次元範囲である。選択範囲１１１は、具体的には、矩形の範囲である。選択範囲１１１は、具体的には、円形の範囲であってもよい。選択範囲１１１は、例えば、３Ｄモデルに対する３次元範囲であってもよい。受付部５０２は、具体的には、ユーザの操作入力に基づいて、化合物の３Ｄモデルをディスプレイ２０７上の立体構造表示用ウィンドウに表示した場合の立体構造表示用ウィンドウ上の選択領域を受け付ける。
【００５６】
これにより、受付部５０２は、ユーザが所望のブロックを選択するために指定した範囲１１１を受け付けることができる。受付部５０２は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、その機能を実現する。
【００５７】
抽出部５０３は、指定された範囲１１１に少なくとも１つの原子が含まれる部分構造をモデルから抽出する。抽出部５０３は、例えば、立体構造表示用ウィンドウ上の選択範囲１１１に少なくとも１つの原子が表示されたブロックを、化合物の３Ｄモデルから抽出する。ブロックとは、化合物の３Ｄモデルの部分構造である。ブロックとは、例えば、化合物のアミノ酸の残基の３Ｄモデルである。ブロックとは、例えば、化合物のＣｈａｉｎの３Ｄモデルであってもよい。
【００５８】
抽出部５０３は、指定された範囲１１１に少なくとも１つの原子が含まれ、かつ、属性や計算パラメータが設定されていない部分構造を、モデルから抽出してもよい。抽出部５０３は、例えば、立体構造表示用ウィンドウ上の選択範囲１１１に少なくとも１つの原子が表示され、かつ、属性が設定されていないブロックを、化合物の３Ｄモデルから抽出する。
【００５９】
これにより、抽出部５０３は、ユーザが選択しようとする所望のブロックの候補を抽出することができる。抽出部５０３は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、その機能を実現する。
【００６０】
算出部５０４は、複数の部分構造を抽出した場合、複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、指定された範囲１１１に含まれる原子数の割合を算出する。算出部５０４は、例えば、複数のブロックを抽出した場合、複数のブロックのそれぞれについて、当該ブロックの全原子数に対する範囲内原子数の割合を算出する。
【００６１】
これにより、算出部５０４は、ユーザが選択しようとする所望のブロックとしての尤もらしさの指標になる割合を算出することができる。算出部５０４は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０６により、その機能を実現する。
【００６２】
選択部５０５は、後述する第１の選択手法、第２の選択手法、第３の選択手法、第４の選択手法、第５の選択手法などの複数の選択手法のうちのいずれかを行う。これにより、選択部５０５は、ユーザが所望のブロックを選択する支援を行うことができる。
【００６３】
〈第１の選択手法〉
まず、第１の選択手法について説明する。選択部５０５は、例えば、算出した割合に基づいて、抽出した複数の部分構造のいずれかを選択する。選択部５０５は、具体的には、複数のブロックのうち、割合が最大のブロックを選択する。これにより、選択部５０５は、ユーザの所望のブロックとしての尤もらしいブロックを自動選択することができる。このため、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。
【００６４】
〈第２の選択手法〉
次に、第２の選択手法について説明する。選択部５０５は、例えば、算出した割合に基づいて、複数の部分構造のうち、割合が閾値以上の部分構造のいずれかを選択する。閾値は、例えば、０％より大きい値である。閾値は、具体的には、８０％であってもよいし、１００％であってもよい。ここで、ユーザは、所望のブロックを選択しようとすると、所望のブロックより一回り大きい程度の選択範囲を指定することが多い。また、ユーザは、所望のブロックを選択しようとするにもかかわらず、所望のブロックよりも極端に大きい選択範囲を指定することが少ない。したがって、ブロックは、当該ブロックのうちの選択範囲に含まれる部分の面積が大きいほど、ユーザの所望のブロックとして尤もらしくなる。
【００６５】
したがって、選択部５０５は、具体的には、割合が閾値以上のブロックのそれぞれについて、当該ブロックの、選択範囲１１１に含まれる面積を算出する。そして、選択部５０５は、割合が閾値以上のブロックのうち、算出した面積が最大のブロックを選択する。これにより、選択部５０５は、ユーザの所望のブロックとしての尤もらしいブロックを自動選択することができる。このため、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。ここでは、選択部５０５が、ブロックの、選択範囲１１１に含まれる面積を算出する場合について説明したが、これに限らない。例えば、選択部５０５は、ブロックの、選択範囲１１１に含まれる体積を算出してもよい。
【００６６】
〈第３の選択手法〉
次に、第３の選択手法について説明する。選択部５０５は、例えば、算出した割合に基づいて、複数の部分構造のうち、割合が閾値以上の部分構造のいずれかを選択する。閾値は、例えば、０％より大きい値である。閾値は、具体的には、８０％であってもよいし、１００％であってもよい。ここで、ユーザは、所望のブロックを選択しようとすると、所望のブロックより一回り大きい程度の選択範囲を指定することが多い。また、ユーザは、所望のブロックを選択しようとするにもかかわらず、所望のブロックよりも極端に大きい選択範囲を指定することが少ない。したがって、ブロックは、当該ブロックのうちの範囲内原子数が大きいほど、ユーザの所望のブロックとして尤もらしくなる。
【００６７】
したがって、選択部５０５は、具体的には、割合が閾値以上のブロックのうち、範囲内原子数が最大のブロックを選択する。これにより、選択部５０５は、ユーザの所望のブロックとしての尤もらしいブロックを自動選択することができる。このため、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。
【００６８】
〈第４の選択手法〉
次に、第４の選択手法について説明する。第４の選択手法は、表示制御部５０１と選択部５０５とによって実現される。
【００６９】
表示制御部５０１は、例えば、複数の部分構造のうち、割合が閾値以上の部分構造のそれぞれを示す情報を、画面１１０に表示させる。閾値は、例えば、０％より大きい値である。閾値は、具体的には、８０％であってもよいし、１００％であってもよい。表示制御部５０１は、具体的には、割合が閾値以上のブロックのそれぞれを示す情報を、画面１１０に表示させる。これにより、表示制御部５０１は、ユーザの所望のブロックとして一定以上に尤もらしいブロックを、ユーザに通知することができる。
【００７０】
そして、選択部５０５は、例えば、割合が閾値以上の部分構造のいずれかの選択を受け付ける。選択部５０５は、具体的には、割合が閾値以上のブロックのいずれかの選択を受け付ける。これにより、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。
【００７１】
〈第５の選択手法〉
次に、第５の選択手法について説明する。第５の選択手法は、表示制御部５０１と選択部５０５とによって実現される。
【００７２】
表示制御部５０１は、例えば、複数の部分構造のうち、割合が大きい部分構造から優先して当該部分構造を示す情報を表示させる。表示制御部５０１は、複数のブロックのうち、割合が大きいブロックから優先して当該ブロックを示す情報を表示させる。これにより、表示制御部５０１は、ユーザの所望のブロックとして一定以上に尤もらしいブロックを、尤もらしい順に、ユーザに通知することができる。
【００７３】
そして、選択部５０５は、例えば、複数の部分構造のいずれかの選択を受け付ける。選択部５０５は、具体的には、複数のブロックのいずれかの選択を受け付ける。これにより、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されている場合であっても、最も手前側に配置されたブロックに限らずに複数のブロックのうちの所望のブロックを選択しやすくなる。
【００７４】
選択部５０５は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０６により、その機能を実現する。
【００７５】
ここでは、選択部５０５が、第１の選択手法、第２の選択手法、第３の選択手法、第４の選択手法、第５の選択手法などの複数の選択手法のうちのいずれか一つを行う場合について説明したが、これに限らない。例えば、選択部５０５は、複数の選択手法のうちのいくつかの選択手法を組み合わせて行ってもよい。具体的には、選択部５０５は、第１の選択手法によるブロックの選択を行った後に、ユーザの操作入力により第１の選択手法によるブロックの選択が取り消された場合に、第４の選択手法によるブロックの選択を行ってもよい。
【００７６】
表示制御部５０１は、選択された部分構造に対して属性や計算パラメータを指定する領域を、画面１１０に表示させてもよい。表示制御部５０１は、例えば、ディスプレイ２０７上の立体構造表示用ウィンドウとは異なる設定用ウィンドウに、選択されたブロックに対して属性を指定する領域を表示する。これにより、ユーザは、所望のブロックに対する属性を指定することができる。
【００７７】
受付部５０２は、選択された部分構造に対して指定された属性や計算パラメータを受け付け、選択された部分構造の属性や計算パラメータとして設定してもよい。受付部５０２は、例えば、キーボード２０８やマウス２０９などの入力装置を用いたユーザからの操作入力に基づいて、選択されたブロックに対して指定された属性を受け付ける。そして、受付部５０２は、受け付けた属性を、選択されたブロックの属性として設定する。これにより、ユーザは、所望のブロックに属性を設定することができる。
【００７８】
（表示内容の遷移の一例）
次に、図６を用いて、ディスプレイ２０７の表示内容の遷移の一例について説明する。
【００７９】
図６は、表示内容の遷移の一例を示す説明図である。図６において、情報処理装置１００は、化合物の３Ｄモデルを示す３Ｄ画像を、ディスプレイ２０７上の立体構造表示用ウィンドウ６１０に表示する。情報処理装置１００は、キーボード２０８やマウス２０９などの入力装置を用いたユーザからの操作入力によって視点方向や表示倍率が変更されると、化合物の３Ｄモデルを示す３Ｄ画像を描画し直す。ここでは、情報処理装置１００は、スティックを用いた表示態様で、化合物の３Ｄモデルを表示する。スティックを用いた表示態様は、接続された原子同士の座標をスティックで結ぶことにより、３Ｄモデルを表す表示態様である。
【００８０】
情報処理装置１００は、ユーザからの操作入力に基づいて、化合物の３Ｄモデルが表示された立体構造表示用ウィンドウ６１０上の範囲６１１の指定を受け付ける。以下の説明では、指定された範囲６１１を「選択範囲６１１」と表記する場合がある。
【００８１】
情報処理装置１００は、立体構造表示用ウィンドウ６１０上の選択範囲６１１に少なくとも１つの原子が表示されたブロックを、化合物の３Ｄモデルから抽出する。ここでは、情報処理装置１００は、ボール＆スティックを用いた表示態様で、選択範囲６１１に少なくとも１つの原子が表示されたブロックを表示変更する。ボール＆スティックを用いた表示態様は、原子の座標にボールを配置し、接続された原子同士の座標をスティックで結ぶことにより、３Ｄモデルを表す表示態様である。情報処理装置１００は、抽出した複数のブロックのそれぞれについて、当該ブロックの全原子数に対する範囲内原子数の割合を算出し、割合が最大のブロックを選択する。
【００８２】
情報処理装置１００は、選択したブロックに関する情報６２１と、決定ボタン６２２と、リストボタン６２３とを示す選択結果確認用画像を、ディスプレイ２０７上の立体構造表示用ウィンドウ６１０とは異なる選択結果確認用ウィンドウ６２０に表示する。
【００８３】
ここで、情報処理装置１００は、ユーザからの操作入力に基づいて、選択結果確認用ウィンドウ６２０に表示された決定ボタン６２２がクリックされた場合には、選択したブロックがユーザの所望のブロックであると判定する。そして、情報処理装置１００は、選択したブロックについて属性を設定するボックスを示す画像を、ディスプレイ２０７上の設定用ウィンドウ（不図示）に表示する。
【００８４】
一方で、情報処理装置１００は、ユーザからの操作入力に基づいて、選択結果確認用ウィンドウ６２０に表示されたリストボタン６２３がクリックされた場合には、選択したブロックがユーザの所望のブロックではないと判定する。そして、情報処理装置１００は、複数のブロックのそれぞれについての割合を含む複数のブロックのそれぞれに関する情報６３１と、選択ボタン６３２とを示す画像を、リストウィンドウ６３０に表示する。ここでは、情報処理装置１００は、複数のブロックについて、割合の大きい順に並べて、リストウィンドウ６３０に表示する。また、情報処理装置１００は、複数のブロックのうち、割合が閾値以上のブロックについて、リストウィンドウ６３０に表示してもよい。
【００８５】
ここで、情報処理装置１００は、ユーザからの操作入力に基づいて、リストウィンドウ６３０において指定されたブロックを受け付ける。そして、情報処理装置１００は、ユーザからの操作入力に基づいて、リストウィンドウ６３０に表示された選択ボタン６３２がクリックされた場合には、指定されたブロックを選択する。
【００８６】
情報処理装置１００は、選択したブロックに関する情報６４１と、決定ボタン６４２と、リストボタン６４３とを示す選択結果確認用画像を、ディスプレイ２０７上の選択結果確認用ウィンドウ６４０に表示する。
【００８７】
情報処理装置１００は、ユーザからの操作入力に基づいて、選択結果確認用ウィンドウ６４０に表示された決定ボタン６４２がクリックされた場合には、選択したブロックがユーザの所望のブロックであると判定する。そして、情報処理装置１００は、選択したブロックについて属性を設定するボックスを示す画像を、ディスプレイ２０７上の設定用ウィンドウ（不図示）に表示する。
【００８８】
一方で、情報処理装置１００は、ユーザからの操作入力に基づいて、選択結果確認用ウィンドウ６４０に表示されたリストボタン６４３がクリックされた場合には、選択したブロックがユーザの所望のブロックではないと判定する。そして、情報処理装置１００は、複数のブロックのそれぞれに関する情報６３１と、当該ブロックについての割合とを対応付けて示すと共に、選択ボタン６３２を示す画像を、リストウィンドウ６３０に表示する。
【００８９】
これにより、情報処理装置１００は、ユーザの所望の部分構造としての尤もらしさの指標になる割合に基づいて、最も手前に配置されたブロックに限らずに、ユーザの所望のブロックの候補を自動選択することができる。このため、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されていて、所望のブロックだけが含まれるように選択範囲を指定することが難しい場合であっても、所望のブロックを選択しやすくなり、作業効率を向上することができる。
【００９０】
情報処理装置１００は、さらに、自動選択したブロックがユーザの所望のブロックではない場合には、ユーザの所望のブロックとして尤もらしいブロックから順に並べてリストウィンドウ６３０に表示して、ユーザに通知することができる。このため、ユーザは、ユーザの所望のブロックとして尤もらしいブロックから順に閲覧することができ、所望のブロックがあれば選択することができる。したがって、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されていて、所望のブロックだけが含まれるように選択範囲を指定することが難しい場合であっても、所望のブロックを選択しやすくなり、作業効率を向上することができる。
【００９１】
また、情報処理装置１００は、さらに、自動選択したブロックがユーザの所望のブロックではない場合には、ユーザの所望のブロックとして一定以上に尤もらしいブロックをリストウィンドウ６３０に表示して、ユーザに通知することができる。このため、ユーザは、ユーザの所望のブロックとして一定以上に尤もらしいブロックだけを閲覧することができ、所望のブロックがあれば選択することができる。このとき、ユーザは、選択範囲６１１にわずかに含まれただけのブロックについては閲覧しなくてもよくなる。したがって、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されていて、所望のブロックだけが含まれるように選択範囲を指定することが難しい場合であっても、所望のブロックを選択しやすくなり、作業効率を向上することができる。
【００９２】
また、情報処理装置１００は、選択範囲にユーザの所望のブロックの全てが含まれていなくても、所望のブロックを選択することができる。このため、ユーザは、所望のブロックの全てが含まれるように選択範囲を厳密に指定しなくてもよくなり、所望のブロックを選択しやすくなる。
【００９３】
ここでは、情報処理装置１００が、いずれかのブロックを自動選択する場合と、リストウィンドウ６３０のいずれかのブロックの選択を受け付ける場合とについて説明したが、これに限らない。例えば、情報処理装置１００は、キーボード２０８やマウス２０９を用いたユーザの操作入力に基づいて、複数のブロックのうちの選択されるブロックを、割合の大きい方から順に切り替えてもよい。これにより、ユーザは、ユーザの所望のブロックとして尤もらしいブロックから順に選択することができ、所望のブロックがあれば選択を確定することができる。したがって、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されていて、所望のブロックだけが含まれるように選択範囲を指定することが難しい場合であっても、所望のブロックを選択しやすくなり、作業効率を向上することができる。
【００９４】
また、例えば、情報処理装置１００が、割合が閾値以上のブロックを全て選択するようにしてもよい。これにより、ユーザは、ユーザの所望のブロックとして一定以上に尤もらしいブロックを、まとめて選択することができる。このとき、情報処理装置１００は、選択範囲６１１にわずかに含まれただけのブロックについては選択しないことができ、ユーザにとって選択不要なブロックが選択されないようにすることができる。したがって、ユーザは、複数のブロックが奥行き方向に重なって並んで配置されていて、所望のブロックだけが含まれるように選択範囲を指定することが難しい場合であっても、所望のブロックを選択しやすくなり、作業効率を向上することができる。
【００９５】
また、例えば、情報処理装置１００が、割合が閾値以上のブロックを全て選択するようにして、割合が閾値以上のブロックのそれぞれについて属性や計算パラメータを設定する設定用ウィンドウを表示してもよい。これにより、ユーザは、複数のブロックに対してまとめて属性や計算パラメータを設定することができ、作業効率を向上することができる。
【００９６】
（ブロックを選択する処理の一例）
次に、図７〜図９を用いて、情報処理装置１００がブロックを選択する処理の一例について説明する。
【００９７】
図７〜図９は、ブロックを選択する処理の一例に関する説明図である。図７において、情報処理装置１００は、選択範囲６１１に少なくとも１つの原子が含まれるブロックの、選択範囲６１１に含まれる原子の数を計数して、計数テーブル７００を作成する。以下の説明では、ブロックの、選択範囲６１１に含まれる原子の数を「範囲内原子数」と表記する場合がある。
【００９８】
計数テーブル７００は、Ｎｏ項目に対応付けて、ブロック項目と、範囲内原子数項目とを有し、ブロックごとに各項目に情報が設定されることにより、レコードを記憶する。
【００９９】
Ｎｏ項目には、ブロックに割り振られた番号が記憶される。ブロック項目には、Ｎｏ項目に設定された番号が割り振られたブロックの名称が記憶される。範囲内原子数項目には、Ｎｏ項目に設定された番号が割り振られたブロックについての範囲内原子数が記憶される。
【０１００】
情報処理装置１００は、例えば、座標ファイル３００に設定されたブロック「ＬＹＳ」の各原子の座標値に基づいて、ブロック「ＬＹＳ」の各原子が選択範囲６１１に含まれるか否かを判定し、ブロック「ＬＹＳ」の範囲内原子数「２」を計数する。そして、情報処理装置１００は、ブロック「ＬＹＳ」の番号「１」に、ブロックの名称「ＬＹＳ」と範囲内原子数「２」とを対応付けたレコードを、計数テーブル７００に追加する。情報処理装置１００は、同様に、他のブロック「ＡＳＰ」、「ＰＨＥ」、「ＡＳＮ」、「ＴＨＲ」のそれぞれについてレコードを、計数テーブル７００に追加する。次に、図８の説明に移行する。
【０１０１】
図８において、情報処理装置１００は、原子数テーブル４００と計数テーブル７００とに基づいて、選択範囲６１１に少なくとも１つの原子が含まれる複数のブロックのそれぞれについて、全原子数に対する範囲内原子数の割合を算出する。
【０１０２】
情報処理装置１００は、例えば、ブロック「ＬＹＳ」について、全原子数「９」に対する範囲内原子数「２」の、小数第２位を四捨五入した割合「２２．２％」を算出する。情報処理装置１００は、同様に、他のブロック「ＡＳＰ」、「ＰＨＥ」、「ＡＳＮ」、「ＴＨＲ」のそれぞれについて割合を算出する。次に、図９の説明に移行する。
【０１０３】
図９において、情報処理装置１００は、割合を第１キー、範囲内原子数を第２キーとして、ブロックをソートする。情報処理装置１００は、例えば、選択範囲６１１に少なくとも１つの原子が含まれる複数のブロックを、第１キーである割合が大きい順にソートする。
【０１０４】
次に、情報処理装置１００は、第１キーを用いてソートされた複数のブロックのうち第１キーである割合が同じブロックがあれば、第２キーである範囲内原子数が大きい順にソートする。そして、情報処理装置１００は、第１キーである割合が最大、かつ、第２キーである範囲内原子数が最大のブロックを選択する。
【０１０５】
これにより、情報処理装置１００は、最も手前に配置されたブロックに限らずに、ユーザの所望のブロックの候補を自動選択することができる。結果として、ユーザは、所望のブロックを選択しやすくなる。
【０１０６】
（表示制御処理手順の一例）
次に、図１０を用いて、表示制御処理手順の一例について説明する。
【０１０７】
図１０は、表示制御処理手順の一例を示すフローチャートである。図１０において、情報処理装置１００は、化合物のモデルを、ディスプレイ２０７上に表示する（ステップＳ１００１）。次に、情報処理装置１００は、ディスプレイ２０７上に表示された化合物のモデルに対する選択範囲の指定を受け付ける（ステップＳ１００２）。そして、情報処理装置１００は、図１１に後述する計数処理を実行して（ステップＳ１００３）、選択範囲に少なくとも１つの原子が含まれるブロックについての選択範囲に含まれる原子の数を計数する。
【０１０８】
次に、情報処理装置１００は、図１２に後述する算出処理を実行して（ステップＳ１００４）、選択範囲に少なくとも１つの原子が含まれるブロックについての割合を算出する。そして、情報処理装置１００は、図１３に後述する選択処理を実行して（ステップＳ１００５）、いずれかのブロックを選択する。
【０１０９】
次に、情報処理装置１００は、選択結果に基づいて表示制御を行い（ステップＳ１００６）、表示制御処理を終了する。これにより、情報処理装置１００は、ユーザが所望のブロックを選択する支援を行うことができる。
【０１１０】
（計数処理手順の一例）
次に、図１１を用いて、ステップＳ１００３に示した計数処理手順の一例について説明する。
【０１１１】
図１１は、計数処理手順の一例を示すフローチャートである。図１１において、情報処理装置１００は、未選択の原子のいずれかを選択する（ステップＳ１１０１）。次に、情報処理装置１００は、選択した原子が、ステップＳ１００２において指定された選択範囲に含まれるか否かを判定する（ステップＳ１１０２）。ここで、含まれない場合（ステップＳ１１０２：Ｎｏ）、情報処理装置１００は、ステップＳ１１０４の処理に移行する。
【０１１２】
一方で、含まれる場合（ステップＳ１１０２：Ｙｅｓ）、情報処理装置１００は、ステップＳ１１０１において選択された原子が含まれるブロックに対応する計数テーブル７００の範囲内原子数をインクリメントする（ステップＳ１１０３）。
【０１１３】
次に、情報処理装置１００は、未選択の原子があるか否かを判定する（ステップＳ１１０４）。ここで、未選択の原子がある場合（ステップＳ１１０４：Ｙｅｓ）、情報処理装置１００は、ステップＳ１１０１の処理に戻る。
【０１１４】
一方で、未選択の原子がない場合（ステップＳ１１０４：Ｎｏ）、情報処理装置１００は、計数処理を終了する。これにより、情報処理装置１００は、複数のブロックのそれぞれについての範囲内原子数を計数して、計数テーブル７００にまとめて記憶しておくことができる。
【０１１５】
（算出処理手順の一例）
次に、図１２を用いて、ステップＳ１００４に示した算出処理手順の一例について説明する。
【０１１６】
図１２は、算出処理手順の一例を示すフローチャートである。図１２において、情報処理装置１００は、未選択のブロックのいずれかを選択する（ステップＳ１２０１）。次に、情報処理装置１００は、原子数テーブル４００から、ステップＳ１２０１において選択されたブロックに対応する全原子数を抽出する（ステップＳ１２０２）。そして、情報処理装置１００は、計数テーブル７００から、ステップＳ１２０１において選択されたブロックに対応する範囲内原子数を抽出する（ステップＳ１２０３）。
【０１１７】
次に、情報処理装置１００は、ステップＳ１２０１において選択されたブロックについての割合として、ステップＳ１２０２において抽出された全原子数に対する、ステップＳ１２０３において抽出された範囲内原子数の割合を算出する（ステップＳ１２０４）。そして、情報処理装置１００は、未選択のブロックがあるか否かを判定する（ステップＳ１２０５）。ここで、未選択のブロックがある場合（ステップＳ１２０５：Ｙｅｓ）、情報処理装置１００は、ステップＳ１２０１の処理に戻る。
【０１１８】
一方で、未選択のブロックがない場合（ステップＳ１２０５：Ｎｏ）、情報処理装置１００は、算出処理を終了する。これにより、情報処理装置１００は、ユーザの所望のブロックを選択する指標になる、複数のブロックのそれぞれについての割合を算出することができる。
【０１１９】
（選択処理手順の一例）
次に、図１３を用いて、ステップＳ１００５に示した選択処理手順の一例について説明する。
【０１２０】
図１３は、選択処理手順の一例を示すフローチャートである。図１３において、情報処理装置１００は、ステップＳ１００２において指定された選択範囲に少なくとも１つの原子が含まれる複数のブロックを、ステップＳ１２０４において算出された割合の大きい順にソートする（ステップＳ１３０１）。
【０１２１】
次に、情報処理装置１００は、ステップＳ１２０４において算出された割合が同じブロックを、原子数が大きい順にソートする（ステップＳ１３０２）。そして、情報処理装置１００は、ステップＳ１２０４において算出された割合が最大、かつ、原子数が最大のブロックを選択して（ステップＳ１３０３）、選択処理を終了する。これにより、情報処理装置１００は、ユーザの所望のブロックの候補を選択することができる。
【０１２２】
以上説明したように、情報処理装置１００によれば、表示された化合物のモデルに対する選択範囲に少なくとも１つの原子が含まれる部分構造をモデルから抽出し、それぞれの部分構造の全原子数に対する範囲内原子数の割合を算出することができる。これにより、情報処理装置１００は、複数の部分構造のそれぞれについてユーザの所望の部分構造としての尤もらしさの指標になる割合を算出して、ユーザが所望の部分構造を選択する支援を行うことができる。
【０１２３】
情報処理装置１００によれば、例えば、算出した割合に基づいて、抽出した複数の部分構造のいずれかを選択することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造としての尤もらしさの指標になる割合に基づいて、ユーザの所望の部分構造の候補を自動選択することができる。このため、ユーザは、画面上での視点方向や表示倍率を変更せず、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造を選択しやすくなる。したがって、ユーザは、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２４】
情報処理装置１００によれば、具体的には、複数の部分構造のうち、割合が最大の部分構造を選択することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造を、ユーザの所望の部分構造の候補として自動選択することができる。このため、ユーザは、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造を選択しやすくなり、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２５】
また、情報処理装置１００によれば、複数の部分構造のうち、割合が閾値以上の部分構造のいずれかを選択することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として一定以上に尤もらしい部分構造のいずれかを、ユーザの所望の部分構造の候補を自動選択することができる。このため、ユーザは、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造を選択しやすくなり、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２６】
また、情報処理装置１００によれば、割合が閾値以上の部分構造のそれぞれについて、当該部分構造の、範囲に含まれる面積を算出し、割合が閾値以上の部分構造のうち、算出した面積が最大の部分構造を選択することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造を、ユーザの所望の部分構造の候補として自動選択することができる。このため、ユーザは、所望の部分構造と割合が同一の所望の部分構造とは異なる部分構造が選択範囲に含まれてしまっても、所望の部分構造を選択しやすくなり、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２７】
また、情報処理装置１００によれば、割合が閾値以上の部分構造のうち、原子数が最大の部分構造を選択することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造を、ユーザの所望の部分構造の候補として自動選択することができる。このため、ユーザは、所望の部分構造と割合が同一の所望の部分構造とは異なる部分構造が選択範囲に含まれてしまっても、所望の部分構造を選択しやすくなり、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２８】
また、情報処理装置１００によれば、複数の部分構造のうち、割合が大きい部分構造から優先して当該部分構造を示す情報を表示させ、複数の部分構造のいずれかの選択を受け付けることができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造から順にユーザに通知して、ユーザの所望の部分構造の選択を受け付けることができる。このため、ユーザは、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造として尤もらしい順に部分構造が通知されるため、所望の部分構造を選択しやすくなる。したがって、ユーザは、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１２９】
また、情報処理装置１００によれば、複数の部分構造のうち、割合が閾値以上の部分構造のそれぞれを示す情報を表示させ、割合が閾値以上の部分構造のいずれかの選択を受け付けることができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として一定以上に尤もらしい部分構造をユーザに通知して、ユーザの所望の部分構造の選択を受け付けることができる。このため、ユーザは、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造として一定以上に尤もらしい部分構造だけが通知されるため、所望の部分構造を選択しやすくなる。したがって、ユーザは、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１３０】
また、情報処理装置１００によれば、選択された部分構造に対して指定された属性を受け付け、選択された部分構造の属性として設定することができる。これにより、ユーザは、部分構造の属性を設定するのにかかる作業量を低減することができる。
【０１３１】
また、情報処理装置１００によれば、選択された部分構造に対して属性を指定する領域を、画面とは異なる画面に表示させることができる。これにより、ユーザは、部分構造の属性を設定するのにかかる作業量を低減することができる。
【０１３２】
また、情報処理装置１００によれば、受け付けた範囲に少なくとも１つの原子が含まれ、かつ、属性が設定されていない部分構造をモデルから抽出することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造を抽出することができる。このため、ユーザは、属性を設定する作業を行う際に、既に属性が設定済であってユーザにとって選択不要な部分構造を選択されずにすみ、所望の部分構造を選択しやすくなり、所望の部分構造を選択するのにかかる作業量を低減することができる。
【０１３３】
このように、ユーザは、画面上での視点方向や表示倍率を変更せず、所望の部分構造とは異なる部分構造が含まれないように選択範囲を細かく指定しなくても、所望の部分構造を選択しやすくなる。結果として、情報処理装置１００は、画面上での視点方向や表示倍率を変更に伴って、複雑な化合物の３Ｄモデルを描画し直す回数を低減することができ、作業負荷を低減することができる。
【０１３４】
ここで、従来の情報処理装置が、ユーザの操作入力に基づいて、化合物のモデルに対する選択範囲を受け付け、選択範囲に含まれる複数の部分構造のうちの最も手前側に配置された部分構造を選択する場合が考えられる。しかしながら、この場合、従来の情報処理装置が、選択範囲に含まれる複数の部分構造のうちの奥側に配置された部分構造を選択することができない。このため、ユーザは、不要な部分構造が選択されないように選択範囲を調整したり、視点方向や表示倍率を変更することになり、作業効率が低下してしまう。一方で、情報処理装置１００は、複数の部分構造のそれぞれについてユーザの所望の部分構造としての尤もらしさの指標になる割合を算出することができる。これにより、情報処理装置１００は、手前側に配置されているか奥側に配置されているかにかかわらず、ユーザの所望の部分構造として尤もらしい部分構造を選択することができ、ユーザが所望の部分構造を選択する支援を行うことができる。
【０１３５】
ここで、従来の情報処理装置が、ユーザの操作入力に基づいて、化合物のモデルに対する選択範囲を受け付け、選択範囲に含まれる全ての部分構造を選択する場合が考えられる。しかしながら、この場合、従来の情報処理装置が、選択範囲にわずかに含まれただけの、ユーザの所望の部分構造とは異なる部分構造まで選択してしまう。このため、ユーザは、不要な部分構造が選択されないように選択範囲を調整したり、視点方向や表示倍率を変更したり、不要な部分構造の選択を解除することになり、作業効率が低下してしまう。一方で、情報処理装置１００は、複数の部分構造のそれぞれについてユーザの所望の部分構造としての尤もらしさの指標になる割合を算出することができる。これにより、情報処理装置１００は、ユーザの所望の部分構造として尤もらしい部分構造だけを自動選択したり、ユーザの所望の部分構造として一定以上に尤もらしい部分構造だけを選択することができ、ユーザが所望の部分構造を選択する支援を行うことができる。
【０１３６】
なお、本実施の形態で説明した表示制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本表示制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本表示制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１３７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３８】
（付記１）化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出し、
算出した前記割合に基づいて、抽出した前記複数の部分構造のいずれかを選択する、
制御部を有することを特徴とする情報処理装置。
【０１３９】
（付記２）前記制御部は、
前記複数の部分構造のうち、前記割合が最大の部分構造を選択する、
ことを特徴とする付記１に記載の情報処理装置。
【０１４０】
（付記３）前記制御部は、
前記複数の部分構造のうち、前記割合が閾値以上の部分構造のいずれかを選択する、
ことを特徴とする付記１に記載の情報処理装置。
【０１４１】
（付記４）前記制御部は、
前記割合が閾値以上の部分構造のそれぞれについて、当該部分構造の、前記範囲に含まれる面積を算出し、
前記割合が閾値以上の部分構造のうち、算出した前記面積が最大の部分構造を選択する、
ことを特徴とする付記３に記載の情報処理装置。
【０１４２】
（付記５）前記制御部は、
前記割合が閾値以上の部分構造のうち、前記範囲に含まれる原子数が最大の部分構造を選択する、
ことを特徴とする付記３に記載の情報処理装置。
【０１４３】
（付記６）前記制御部は、
前記複数の部分構造のうち、前記割合が大きい部分構造から優先して当該部分構造を示す情報を表示させ、
前記複数の部分構造のいずれかの選択を受け付ける、
ことを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【０１４４】
（付記７）前記制御部は、
前記複数の部分構造のうち、前記割合が閾値以上の部分構造のそれぞれを示す情報を表示させ、
前記割合が閾値以上の部分構造のいずれかの選択を受け付ける、
ことを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【０１４５】
（付記８）前記制御部は、
選択された前記部分構造に対して指定された属性を受け付け、
受け付けた前記属性を、選択された前記部分構造の属性として設定する、
ことを特徴とする付記１〜７のいずれか一つに記載の情報処理装置。
【０１４６】
（付記９）前記制御部は、
選択された前記部分構造に対して属性を指定する領域を、前記画面とは異なる画面に表示させる、
ことを特徴とする付記８に記載の情報処理装置。
【０１４７】
（付記１０）前記制御部は、
受け付けた前記範囲に少なくとも１つの原子が含まれ、かつ、属性が設定されていない部分構造を前記モデルから抽出する、
ことを特徴とする付記１〜９のいずれか一つに記載の情報処理装置。
【０１４８】
（付記１１）コンピュータが、
化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出する、
処理を実行することを特徴とする表示制御方法。
【０１４９】
（付記１２）コンピュータに、
化合物のモデルを画面に表示させ、
表示された前記モデルに対して指定された範囲を受け付け、
受け付けた前記範囲に少なくとも１つの原子が含まれる部分構造を前記モデルから抽出し、
複数の部分構造を抽出した場合、前記複数の部分構造のそれぞれについて、当該部分構造の原子数に対する、当該部分構造の、前記範囲に含まれる原子数の割合を算出する、
処理を実行させることを特徴とする表示制御プログラム。
【符号の説明】
【０１５０】
１００  情報処理装置
５０１  表示制御部
５０２  受付部
５０３  抽出部
５０４  算出部
５０５  選択部
【図１】
0006387750.tif 000002
【図２】
0006387750.tif 000003
【図３】
0006387750.tif 000004
【図４】
0006387750.tif 000005
【図５】
0006387750.tif 000006
【図６】
0006387750.tif 000007
【図７】
0006387750.tif 000008
【図８】
0006387750.tif 000009
【図９】
0006387750.tif 000010
【図１０】
0006387750.tif 000011
【図１１】
0006387750.tif 000012
【図１２】
0006387750.tif 000013
【図１３】
0006387750.tif 000014