"Cavity" Users Guide for Version 4.6 / 5.X

Copyright (c) 1994-2008 Takashi NEMOTO.

Japanese/[English]

このファイルは改訂中です。英語版も参照して下さい。


目次

Introduction
Cavity とは?
インストールガイド.
初期設定法.
ユーザーズマニュアル.
使用法概略.
Download
プログラムのダウンロード

Cavity とは?

Cavity プログラムは 結晶中の反応空間を求めるプログラムです。 結晶中の反応空間の形状、大きさを求めることができます。 原型のプログラムは 柳 和則氏らによって開発され、1993年、 根本により全面的な書換えが行なわれました。

論文等に使用する場合、
J. Am. Chem. Soc. (1981) 103 5805-
を参照してください。


Cavity の 定義

Figure : Definition of Reaction Cavity

ここでいう "Cavity" は 結晶中の反応基の周辺の空間を指します。 具体的には、以下の定義です。

  1. 結晶中の分子から反応基を取り除く。
  2. 原子の半径が Van Der Waals 半径 +1.2 Å として空間を切りとり、残った空間を 求める。ただし、結合が定義されている原子の場合、その半径は結合距離まで 短くされる。

なお、反応基に限らず、結晶から一部の原子を取り除いて、それによって 残された空間を可視化、体積計算をすることができます。

このプログラムでは Cavity の描画は 断面毎に行なわれ、 重ね合わせて出力されます。また、体積計算を指定した場合、 その計算は描画と並行して行なわれます。

Figure : Sample of Cavity


Cavity の インストール

入手法

http://eels.kuicr.kyoto-u.ac.jp/~tnemoto/sv/download.html よりダウンロードできます

インストール手順

Windows版は SV と共に実行形式ファイルを配布しております。インストーラーを起動して下さい。アンインストールはコントロールパネルの「ソフトウェアの追加と削除」でおこなって下さい。

Windows以外で使用するには、ソースリストからコンパイルします。配布されているファイルは cavity-5.XXX.tar.gz です。

どちらも、ダウンロードページより入手して下さい。

一般的なコンパイル手順は

gzip -d cavXXX.tar.gz
tar xvf cavXXX.tar
cd cavXXX
./configure
make
    

となります。環境に応じて適宜変更して下さい。

これにより、 実行形式ファイル "cav5" (あるいは cav5.exe)が生成します。また、Turbo-C 用設定ファイル(MS-DOS等)、Watcom C++ 用設定ファイル(OS/2,Windows等)が同梱されていますので、必要に応じてご利用下さい。

最後に、このファイル cav4,cav5 を path に含まれているディレクトリにコピーして 下さい。通常は /usr/local/bin, ~teXsan/bin, /usr/bin 等です。


通常の使用手順

cavity プログラムは機能的には非常に単純なプログラムで、座標系の変換や対称要素の拡張といった機能を有しておりません。従って、通常の使用においては外部プログラムによって入力ファイルを生成し、実行するのが便利です。この節では、プログラム "SV"(Windows版) を使用して計算を行なう手順を紹介します。自作のプログラム等から利用する場合には次節以降のファイルの仕様をお読み下さい。

使用するファイル

  1. まず、SV に座標データを読み込みます。
  2. 次に、反応基の部分の原子を選択します。この、「反応基」の周辺にある空間を計算することになります。
  3. 投影する方位を決定します。マウス操作で指定してもよいですが、view コマンドの使用が便利です。
  4. cavityコマンドを実行します。
  5. ここで設定画面が表示されるので、計算範囲、計算精度などの指定を行ないます。この画面での設定が、コントロールファイルの内容になります。 投影方位(Axis -Z) は通常変更せずに使用します。Auto Range を指定した場合、後の Range X,Y,Z は無視されます。cavity の計算結果を単体で使用する場合、Draw Bond にチェックを入れておくといいかと思います。また、体積計算を行う場合には、Grid Size を 0.1 程度に指定して下さい。
  6. 計算を実行すると、通常数秒以内に計算結果が表示されます。空間の体積を記録するとともに、描画された図をチェックし、不自然なところがないか確認します。計算範囲の制限による直線的なエッジに特に注意して下さい。また、空間が閉空間でない場合には雲状のパターンが得られることが多いです。この画面で確認困難な場合には一旦メニューを閉じ、SV上で確認することもできます。
  7. 計算結果は cav.psファイルに記録されています。このファイルは PostScript 形式のファイルですので、直接 PostScript Printer に出力したり、PDFに変換、イラストレーターで編集などをすることができます。また、計算終了後、自動的に SV に読み込まれます。
  8. Windows 上で画像を加工する場合には PostScript ファイルを直接編集するほか、メニュー画面の Preview 画像をコピー/ペーストすることもできます。
  9. 細かい設定は、一度このメニュー画面を介してコントロールファイルcav.cnt、データファイルcav.datを生成して計算した後、各設定ファイルを編集するのが便利です。ただし、一度メニュー画面から計算を実行してしまうと、せっかく編集したファイルが上書きされてしまいますので、ご注意下さい。設定ファイル編集後、Windows等のコマンドプロンプトから "cav5" を実行すると計算が実行されます。
  10. 手動で計算を実行した場合、計算結果は SV に読み込まれませんので、必要に応じて SV のコマンド "readmeta cav.ps" を使って読み込んで下さい。また、非表示にするには、ファイル名なしの "readmeta" です。
実行例: 計算部位の指定
2. 計算する反応基の指定
実行例: 投影方位の指定
3. 投影方位の指定
(C9AからCO1Aを見おろす方向)
実行例: 計算条件の指定
5. 計算条件の設定と実行。
実行例: SV上でみた計算結果
7. SV上に読み込まれた cavity
失敗例: 領域不足
失敗例: 計算領域が足りない。奥行き方向の領域の不足は見落しがちなので特に注意
失敗例: 閉空間にならない
失敗例: 閉空間にならない

入力ファイル仕様

  1. コントロールファイル 仕様
  2. データファイル 仕様

コントロールファイル 仕様

コントロールファイル例

# Title
Cavity
# iview,  Manu,Volume,  Bond,    HR, ICAVE,N_Atom,N_Bond, N_Cav
      3      0      0      0      0      0     93     97      6
# Scale,Radius,CavPen,BondPn,CavBnP,CavAtP
    1.0  0.000      1      2      0      0
# Atom Number
      1      4      7     10     15     22     25     34     37     40
            << 中略 >>
    254    255    258    260    264    266    269    272    275    279
    281    282    283
# Bond Atom Number (Pair)
      1      4      1      7      1     10      1     15      1     99
            << 中略 >>
    264    269    264    272    272    275    272    279    272    281
    281    282    281    283
# Cavity Atom Number
    216    224    234    239    242    245
# Cavity Radi
  2.900  2.750  2.720  2.400  1.200
# Cavity Range
# X Min, X Max, Y Min, Y Max, Z Min, Z Max, Grid
 -1.718  5.825 -5.446  2.639 -4.944  3.608  0.200
    

データファイル仕様

データファイルは (A6,I4,3F10.6) のフォーマットです。 原点及び座標変換行列を先頭部分に記述することができます。

ORIGIN      5.601346  6.952534  3.076390
VMT0        1.000000  0.000000  0.000000
VMT1        0.000000  1.000000  0.000000
VMT2        0.000000  0.000000  1.000000
RVMT0       1.000000 -0.000000  0.000000
RVMT1      -0.000000  1.000000 -0.000000
RVMT2       0.000000 -0.000000  1.000000
CO1B     5  5.779318 10.785900  3.980696
SPHERE      9.000000
CO1B     5 11.639863  4.597915 -3.980696
CO1B     5 11.639863  4.597915  7.399224
N1B      2  4.433502 12.081833  3.715771
N1B      2 10.294047  3.301982 -3.715771
N1B      2 10.294047  3.301982  7.664149
N2B      2  4.276440  9.655498  4.063769
N2B      2 10.136985  5.728317 -4.063769
          << 中略 >>
H6A2     4  4.032875  0.992564  1.966336
H6A2     4  1.827670 -0.992564 -3.723624
H6A2     4  1.827670 -0.992564  7.656296
H6A2     4 13.548760 -0.992564 -3.723624
H6A2     4 13.548760 -0.992564  7.656296
    

出力ファイル仕様

出力ファイルは以下の構成となっています。

ヘッダ
描画結果を Post Script プリンタに出力するためのヘッダです。
描画データ %# StartData の行から始まります。
断面毎のCavityの図、および断面毎の Cavity 体積が 出力されます。
計算結果
体積計算を指定した場合、Cavity の体積が出力されます。
フッタ
%# EndData の行から始まります。こちらもプリンタ制御用のコードです。

また、計算経過を表示するための "%#" で始まるコメント行が 挿入されています。

%# Startの直前に印刷時の座標変換のコードが埋めこまれています。印刷がはみ出す場合などの調節にお使い下さい。

%!PS-Adobe-3.0 EPSF-3.0
%%Creater: PS-META-FILE (Cavity 5.5.3)
%%BoundingBox:     30     72    559    534
%%Pages: 1
%%EndComment
%%EndProlog
save
/color { false } def             % カラー描画を行なうか
/color2 { false } def            % カラー描画を行なうか
/penwidth {[0.001 0.001 0.005 0.050 0.001]} def  % 線幅の指定
/pengray {[0.000 0.000 0.000 0.000 0.700]} def   % 色指定1
/penred {[0.000 0.000 0.000 1.000 0.700]} def    % 色指定2
/pengreen {[0.000 0.000 0.000 0.000 0.700]} def  % 色指定3
/penblue {[0.000 1.000 0.000 0.000 0.700]} def   % 色指定4
/colorblue {[0 1 0 1 0 1 0 1]} def
/colorred {[0 0 1 1 0 0 1 1]} def
/colorgreen {[0 0 0 0 1 1 1 1]} def
(----中略----)
  300.0000  300.0000 translate   % 描画の中心座標 (単位 point = 1/72 inch)
   50.0000   50.0000 scale       % 描画のスケール (単位 point/angstrom)
% View Control
    1.0000    1.0000 scale       % 描画の相対スケール (1.0 で 100%)
    0.0000    0.0000 translate   % 描画の中心位置の並進 (単位 angstrom)
%# StartData
%# ORIGIN=  5.601346  6.952534  3.076390
cc /mesh {3} def
cc save mesh 3 ne { 
cc -100 -100 m 0 0 rl 0 0 rl 0 0 rl 0 0 rl clip newpath } if
%# RVMT1 =  1.000000  0.000000  0.000000
%# RVMT2 =  0.000000  1.000000  0.000000
%# RVMT3 =  0.000000  0.000000  1.000000
cp        1 p
ct (Cavity                                  ) tt
%# mess Cavity Start                            
%# mess Z =  -3.444 (   1/  27) IView=3         
%# mess Volume/Plane =  0.000                   
%# mess Z =  -3.244 (   2/  27) IView=3         
%# mess Volume/Plane =  0.000                   
%# mess Z =  -3.044 (   3/  27) IView=3         
%# mess Volume/Plane =  0.000                   
%# mess Z =  -2.844 (   4/  27) IView=3         
%# mess Volume/Plane =  0.000                   
%# mess Z =  -2.644 (   5/  27) IView=3         
ca     0.903  -2.177   2.378   34   35 a %   -2.644    O1A   
ca     0.903  -2.177   2.378   70   73 a %   -2.644    O1A   
ca    -0.880  -1.166   2.808   27   32 a %   -2.644    C1A   
ca     3.037   1.708   2.070  223  231 a %   -2.644    C6A   
ca     3.272   0.849   1.722  206  208 a %   -2.644    H6A1  
%# mess Volume/Plane =  0.000                   
%# mess Z =  -2.444 (   6/  27) IView=3         
ca     4.935  -2.151   2.296  149  153 a %   -2.444    C11B  
ca    -0.312   2.448   2.828  310  315 a %   -2.444    C11C  
         << 中略 >>
ca     1.440  -1.611   1.008  178  192 a %    1.556    H6B1  
ca    -1.305  -1.120   1.794  339  346 a %    1.556    H7B1  
ca     3.585   1.373   2.315  261  262 a %    1.556    H7B3  
ca     4.770  -1.771   1.751  151  153 a %    1.556    H5B1  
ca    -0.692  -4.233   2.680   65   67 a %    1.556    O3A   
%# mess Volume/Plane =  0.000                   
%# mess Z =   1.756 (  27/  27) IView=3         
%# mess Volume/Plane =  0.000                   
%# mess Z =   1.956 (  28/  27) IView=3         
%# mess Volume/Plane =  0.000                   
cc restore
%# mess XRANGE =    -0.1360    3.7172           
%# mess YRANGE =    -3.0786    1.1391           
%# mess ZRANGE =    -3.0440    1.9560           
%# EndData
restore
showpage
%%EOF

    

Cavity Program 概略

この章はソースリストの各ファイルの説明です。 プログラムを読む場合の参考になさって下さい。 各ファイルは原則として1つのサブルーチン、あるいは関数から成っています。

初期化・終了時処理
cavini.f
初期化1
cavin2.f
初期化2
cavfin.f
終了時処理
used.f
cavity の描画で使用された原子を出力するルーチン
計算
cavity.f
メインルーチン
cavlop.f
投影面のループ
iautex.f
描画範囲の自動拡大処理ルーチン
chkrng.f
描画範囲の自動拡大のリミットチェックルーチン
setmin.f
cavity の描画範囲を決めるルーチン
setpl.f
投影面上にのっている原子を選び出すルーチン
pvdw.f
1枚の断面図の描画ルーチン/断面積の計算
描画
prjctn.f
分子骨格の投影ルーチン
ファイル入出力
readcn.f
コントロールファイル読み込みルーチン
readdt.f
データ読み込みルーチン
error.f
エラー表示ルーチン
plot.f
図形描画ルーチン群。 ポストスクリプト以外の出力が必要な場合はここを変更して下さい。

コントロールファイル キーワード

コントロールファイルは7カラム毎の固定長フォーマットです。改行位置を変更することもできません。

TITLE
このファイルのタイトルを1行で入力して下さい。 入力内容は無視されますが、ダミーでも構わないので必ず1行入力して下さい。
IVIEW
投影方向を 1-3 で指定します。通常は 3 を指定して下さい。Mesh Mode (0) は SV上からのみ使用可能で、単独で使用しても正常なPSファイルは得られません。
Manu
計算範囲の自動設定を行なう時は 0、 手動設定の時は、 1 を指定して 下さい。
Volume
cavityの体積計算を行なう時は 1, 描画のみを行なう時は 0 を指定して下さい。
Bond
描画時に結合の表示を行なう時に 1, 描画しない時に 0 を指定して下さい。
HR
Cavity 5.5以降で、1を指定すると高精細描画を行うようになります。
ICAVE
通常は 0 を指定して下さい。
N_Atom
描画を行なう原子の数を指定して下さい。
N_Bond
描画を行なう結合の数を指定して下さい。
N_Cav
Cavity 中の原子、すなわち、計算時に取り除く原子の数を指定して下さい。
Scale
描画スケールを指定して下さい。通常は 1 です。
Radius
原子を円で描画する場合に、その半径を Å 単位で指定して下さい。通常は 0 です。
CavPen
Cavity を描画するペン番号を指定して下さい。通常は 1 です。
BondPn
結合を描画するペン番号を指定して下さい。通常は 2 です。
CavBnP
Cavity 中の結合を描画するペン番号を指定して下さい。通常は 0 です。
CavAtP
原子を描画する場合のペン番号を指定して下さい。
Atom Number
描画する原子の番号を指定して下さい。指定した原子の総数はN_ATOMに書き込んで下さい。
Bond Atom Number (Pair)
計算に用いる結合を番号で指定して下さい。指定した原子のペアの数を N_Bondに書き込んで下さい。
Cavity Atom Numbers
Cavity 計算時に取り除く原子の番号を指定して下さい。指定した原子数を N_Cavに書き込んで下さい。
Cavity Radi
Cavity 計算に用いる原子の半径を入力して下さい。通常は Van Der Waals 半径+1.2 を指定します。
Cavity Range
自動範囲設定を行なわない場合、計算範囲を入力して下さい。自動範囲設定の場合はダミーの値を入力して下さい。
Grid
体積計算の grid 幅(Å)を入力して下さい。通常は 0.05-0.2 程度です。

データファイル キーワード

データファイルは10カラム毎の固定長フォーマットです。

ORIGIN
描画の原点の指定です。この座標を中心として描画されます。
VMT
投影方向を決めるための行列です。
RVMT
投影方向行列の逆行列です。
SPHERE
計算範囲を原点から半径 r Å以内に限定します。SPHERE キーワードの後、必ず 4文字のスペースをいれて下さい。