SUNワークステーション上での分子構造表示プログラムの開発(2)

宇野 健、松久 茂、張 金碚、林 治尚、山名一成、中野英彦 


Return

1.はじめに

 我々の研究室ではパーソナル・コンピューターを用いた分子構造表示システムModrast-Eの研究開発を進めており[1]、それをSUNワークステーションに移植したことを前報で報告した[2]。
 ワークステーションの中でも高度なグラフィックス機能を備えたシリコングラフィックス社のIRIS等では、以前より様々な分子構造図示プログラムが開発されており、最近でもQMView [3] 、Eadfrith[4]などの高機能な分子構造図示化プログラムが発表されている。SUNワークステーション版Modrast-Eは、IRISなどのグラフィックワークステーションではなく、普及型のワークステーションで開発されており、そのような環境で作動するプログラムは余り知られていない。また、本プログラムの機能の一つである任意の平面での分子模型切断機能は他には見られない。
 本報では、SUNワークステーション版Modrast-Eの機能の拡張を行い、新たな表示機能の追加と、ユーザーインターフェースの改良について報告する。

2.開発環境

  本体: Sun Microsystems SPARC Classic (メインメモリ32 MB, HDD 424 MB+424 MB)
   OS名: 日本語Solaris Ver.2.1
   ソース言語: C言語
  ライブラリ: XView Ver. 2.0 (インターフェース部分),
         Xlib (グラフィックス部分)

3.シリンダー切断のアルゴリズム

 今回、新たに付け加えたシリンダー切断のアルゴリズムについて説明する。シリンダーを用いて切断するとき、分子模型は異なる3つのエリアに分けられることになる ( Fig.1)。まず、エリアAは切断に関係ない部分でこれはふつうの原子の外形である。エリアBはシリンダーで切断した部分の平面、つまりシリンダーの底の部分が該当する。エリアCはシリンダーで切断された曲面、つまりシリンダーの側面の部分である。これら3つのエリアの判別は今までの切断方法にはなかったので、新たにアルゴリズムを作成する必要があった。そこで、以下の様なアルゴリズムを考えた。
 まず、表示ウィンドウ上の n 番目のピクセルの座標を ( Xn, Yn )とし、ここでの原子表面の最大値をZnとする。そして、この点 ( Xn, Yn, Zn )と切断シリンダーの軸との間の距離Dnを計算する。もし、Dnが切断シリンダーの半径Rcより大きいときは、切断シリンダーの外部にあることになる。これはエリアAに該当する。また、それ以外の場合、エリアBおよびエリアCの可能性がある。これを判別するために、点 ( Xn, Yn )に対応したシリンダーの側面と底面のZ座標ZccとZcpを計算し、もし、ZccがZcpより大きいならば、この点はエリアCに存在することになる。また、逆の場合はエリアBに存在する。
 以上のような方法で点の存在する領域を特定することが可能となった。

Fig.1 Conceptual diagram of cutting by cylinder.

 Fig.1に示している例では、Piは Di>Rc よりエリアAに属し、Pjは Dj<Rc、Zcc>ZcpよりエリアCに属していることがわかる。
 この切断においても、前回の報告[2]で説明した部分切断を加えている。すなわち切断部分に該当する場合でも、切断しないと指定した原子は切断せずに残すことが出来る。

4.プログラムの機能拡張

 今回の機能拡張は以下の通りである。
 ●切断機能
  A.球棒模型の切断
  B.空間充填模型と球棒模型の複合表示
  C.空間充填模型のシリンダー切断
 ●原子の直接指定
 以下にこれらを説明する。

4.1.切断機能の拡張

 以前発表したバージョンでは[2]、切断表示は空間充填模型の切断(一平面か二平面)とその部分切断のみであった。今回は新たに3つの切断表示を加えた。
A. 球棒模型の切断

Fig.2 Clipped ball and stick model of face-centered cubic lattice.

 以前のバージョンにはなかった、球棒模型の切断機能を加えた。切断法は空間充填模型の時と同様に、一平面、二平面での切断が可能となっている。切断平面の指定は空間充填模型の場合と同様である。この切断表示を利用した例として、Fig.2に面心立方格子の切断表示を示している。
B. 空間充填模型と球棒模型の複合表示

Fig.3 Combined representation of (S)-N-acetyl histidinemethylamide.


Fig.4 Combined representation of fullerene.

 以前のプログラムでは空間充填模型は一平面または二平面で切断されると切断面を境にして切断されると残る部分と除去される部分ができるが、この複合表示では、通常除去されてなにも表示されない、または切断面のみが表示される部分に切断された部分の球棒模型が表示される。この切断の場合も切断平面の指定は通常の一平面および二平面での切断と同様である。Fig.3は (S)- N-アセチルヒスチジンメチルアミド(C9H14N4O2)を、FIg.4はフラーレン (C60) を複合表示している。
C. 空間充填模型のシリンダー切断
 以前のバージョンでは、切断は平面のみであったが、今回は分子模型をシリンダー型にくり抜く表示を加えた。アルゴリズムの詳しい説明は上で行っている。平面での切断の場合は、その平面を定義する3つの原子の座標を決定する必要があったが、この切断の場合は、シリンダーの底面の中心原子の座標、シリンダーの方向ベクトルとシリンダーの半径を定義する必要がある。これらの指定は他の操作同様マウスのみを用いて行うことが可能となっている。FIg.5は3つのキシリジン (C8H11N) を包接した2つのβ-シクロデキストリン(C42H77O35)をシリンダー切断したもので、包接されているキシリジンの1つが部分切断によって残されている(図では水素原子は表示されていない)。
Fig.5 Space-filling model of beta-cyclodextrin inclusion compounds clipped by cylinder.

4.2.原子の直接指定

 以前のプログラムでは、分子模型の回転、切断時に原子の指定は数値を代入していた。この数値は分子データファイル中の原子の並んでいる通し番号であり、元素の種類や位置とは関係ない数値であるため、大きな分子では目的の原子の指定が困難なことがあった。そこで今回はそれとは別に、分子模型表示ウィンドウから直接マウスで原子を指定する方法を開発した。
 表示ウィンドウ上のマウスポインタの座標を動かすたびに取ってゆき、マウスの左ボタンをクリックしたときのマウスのポインタの座標と原子の座標が一致したときにその原子が選択されたことになる。そして、その座標から原子の通し番号を取得することが出来る。しかし、完全に両者を一致させるのは困難であるため、原子の座標からX、Y座標とも±5ピクセル以内の範囲なら一致したと見なすようにしている。この場合、表示ウィンドウ上の原子が密集している部分では、±5ピクセルの範囲に複数の原子が入ってしまうことがある。その対策として、複数の原子が選択された場合には、新たなウィンドウを表示し、そこに選択されている原子名とそのZ座標をリスト形式で表示し、そこから選択出来るようにした。

5.考察

 今回の改良で加えられた3つの切断表示形態でさらに分子内の様子を観察すのが容易になった。球棒模型の切断は、分子模型よりも結晶格子の内部などを観察するのに適していると思われる。また、複合表示は切断で残った部分と全体の関係を把握することが可能である。さらにシリンダー切断は部分切断と併用することにより、分子の内部にある原子団、例えばシクロデキストリン中のキシリジン分子などを周りにある原子を全て取り除くことなく観察できる。また、すでにGUI (Graphic User Interface) 環境を実現していた以前のバージョンにおいて、最も不便であった回転、切断時の原子の指定は、原子の直接指定を開発することによって解決した。これによって、よりインタラクティブな操作が可能となった。本プログラムはその機能、GUIを利用した分かり易い操作性から、研究者向けだけでなく、コンピュータ利用経験の浅い学生の教育向け等の利用が期待される。

 本プログラムは化学ソフトウェア学会の Software World にてオンライン登録されている。
( http://cssj.chem.sci.hiroshima-u.ac.jp/ftp/indexe.html )

6.参考文献

(1) 中野英彦、"分子グラフィックス"、サイエンスハウス、(1987).
(2) 宇野健、張金碚、澤野太郎、山名一成、中野英彦 、J. Chem. Software, 2, 4 (1995).
(3) Baldridge, K.K., and Greenberg, J.P. J. Mol. Graph. 1995, 1, 63-66
(4) Goodman, J.M. J. Mol. Graph. 1996, 2, 59-61
Return