Documents/QScriptのチュートリアル/Step1CueMol: Molecular Visualization Framework |
このページのサンプルファイル: [tar.gz format] or [zip format] QScriptは, perl:PHP:java=7:2:1 みたいな感じのスクリプト言語です. エディターなどで編集する場合はperlモードにしておけば インデントなどがきれいにいくでしょう. スクリプトファイルの実行方法は,Windowsでは, メニュー"File"->"Execute QScript..."を選択する. →スクリプトファイル(拡張子はqs)を選んでOKボタンを押すと 実行されます. Ball&StickモデルとCPKモデル抗生物質ブレオマイシンをStickモデルで表示します.(blm.qs) 01: qsys.cleanUpAll(); 02: $pwd = sys.getScriptPath(); 03: $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); 05: $mol.select(se/resi 1001/); 06: $r_blm = $mol.createRend("blm", "ballstick"); 07: $r_blm.setProp("sphr", 0.2); 08: $r_blm.setProp("bondw", 0.2); 09: $mol.deselect(); 10: gfx.setCenter($r_blm.getCenter()); 11: gfx.updateView(); 説明qsys.cleanUpAll(); ↑qsys.cleanUpAll()を実行することで,CueMol全体の初期化を行っている.以前に何か(分子等)を読み込んでいる場合を想定して,初期化により起動直後の状態にしてからこのファイルを読み込んだほうが良いだろう.一方,CueMol起動直後にこのファイルを読み込む場合は,この部分は在っても無くても関係ない. $pwd = sys.getScriptPath(); ↑スクリプトの置かれているディレクトリのパス名を取得し,変数$pwdに格納する. $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); ↑スクリプトと同じディレクトリにある,blm_ab.pdbファイルを読み込む. $mol.select(se/resi 1001/); ↑分子オブジェクトのメソッドであるselect()を使用し,
$molからブレオマイシン1分子のみを選択している. $r_blm = $mol.createRend("blm", "ballstick"); ↑上記で選択した部分に対するレンダラーを作成する. ただし,CPKモデルにした場合,CPKレンダラーには"sphr"や"bondw"といったプロパティが無いため,↓以下の2行をコメントアウトしないとエラーになるので注意. $r_blm.setProp("sphr", 0.2); $r_blm.setProp("bondw", 0.2); ↑上記で作成したballstickレンダラーのプロパティーを設定する. $mol.deselect(); ↑分子を非選択(何も選択されていない状態)にする.これを実行しないと,以上で選択した部分(ブレオマイシン分子)がハイライト表示されたままになってしまう. gfx.setCenter($r_blm.getCenter()); ↑上記で作成したレンダラーの中心位置を取得し,それを視野の中心となるように設定している. gfx.updateView(); ↑現在のビューを更新する.これにより,はじめてCueMol内部の状態(ビューの中心等)が画面に反映される. Queからの変更点
Queからの変更点2
色の設定元素の種類ごとに色を設定します.(blm_color.qs) qsys.cleanUpAll(); $pwd = sys.getScriptPath(); $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); $mol.select(se/resi 1001/); $r_blm = $mol.createRend("blm", "ballstick"); $r_blm.setProp("sphr", 0.2); $r_blm.setProp("bondw", 0.2); $r_blm.setProp("coloring.col_C", color.hsb( 60, 0.7, 1.0)); $r_blm.setProp("coloring.col_N", color.hsb(270, 0.7, 1.0)); $r_blm.setProp("coloring.col_O", color.hsb( 0, 0.7, 1.0)); $r_blm.setProp("coloring.col_S", color.hsb(120, 0.7, 1.0)); $mol.deselect(); gfx.setCenter($r_blm.getCenter()); gfx.updateView(); 説明qsys.cleanUpAll(); $pwd = sys.getScriptPath(); $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); $mol.select(se/resi 1001/); $r_blm = $mol.createRend("blm", "ballstick"); $r_blm.setProp("sphr", 0.2); $r_blm.setProp("bondw", 0.2); 前回と同じ. $r_blm.setProp("coloring.col_C", color.hsb( 60, 0.7, 1.0)); $r_blm.setProp("coloring.col_N", color.hsb(270, 0.7, 1.0)); $r_blm.setProp("coloring.col_O", color.hsb( 0, 0.7, 1.0)); $r_blm.setProp("coloring.col_S", color.hsb(120, 0.7, 1.0)); ballstickレンダラーのプロパティーcoloring.col_C等を変更して,色を指定している.この例では,HSBモデルの表現(Hue, Saturation, Brightness)で色を指定している.
$mol.deselect(); gfx.setCenter($r_blm.getCenter()); gfx.updateView(); 前回と同じ. Queからの変更点
色モデルについての補足color(red, green, blue)あるいはcolor(red, green, blue, alpha) (ここでalphaとは透明度)を使用することで, RGBあるいはRGBAモデルで色を指定することも可能です.この場合,各要素の値の範囲は0.0〜1.0で,color(0,0,0)が黒,color(1,1,1)が白をあらわします.また,alpha値は0.0が透明,1.0が不透明をあらわします. HSBモデルの表現(Hue, Saturation, Brightness)では,Hueは0度(=360度; 赤), 180度(水色)等で色相を指定します. Hueは単位が度で任意の値を取ることができます.一方,SaturationとBrightnessはそれぞれ0.0から1.0の値であり, 1.0, 1.0で純色,0.5, 1.0で白っぽく,1.0, 0.5で黒っぽくなります 温度因子による色の設定温度因子に応じて色を設定します.(blm_color2.qs) qsys.cleanUpAll(); $pwd = sys.getScriptPath(); $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); $mol.select(se/resi 1001/); $r_blm = $mol.createRend("blm", "ballstick"); $r_blm.setProp("sphr", 0.2); $r_blm.setProp("bondw", 0.2); $r_blm.setProp("coloring.colormode", 1); $r_blm.setProp("coloring.lowcol", color(0.0, 0.0, 1.0)); $r_blm.setProp("coloring.highcol", color(1.0, 1.0, 0.0)); sys.println("Low:\t"+$r_blm.getProp("coloring.lowpar").tostr()+"A^2"); sys.println("High:\t"+$r_blm.getProp("coloring.highpar").tostr()+"A^2"); gfx.setCenter($r_blm.getCenter()); gfx.updateView(); 説明qsys.cleanUpAll(); $pwd = sys.getScriptPath(); $mol = readPDB($pwd+"blm_ab.pdb","blm_ab"); $mol.select(se/resi 1001/); $r_blm = $mol.createRend("blm", "ballstick"); $r_blm.setProp("sphr", 0.2); $r_blm.setProp("bondw", 0.2); ↑前回と同じ. $r_blm.setProp("coloring.colormode", 1); ↑着色モードを上記で使用してきたsimple(0; default)から,bfac(1で指定)に変更する.このモードでは,温度因子に対応して着色される.他に,占有率に対応して着色するocc(2で指定)がある. $r_blm.setProp("coloring.lowcol", color(0.0, 0.0, 1.0)); $r_blm.setProp("coloring.highcol", color(1.0, 1.0, 0.0)); ↑bfacモードで,低い値に対応する色(coloring.lowcol)と,高い値に対応する色(coloring.highcol)を指定する.ここでは,低い温度因子から高い温度因子に対応して,青から黄色で着色している. sys.println("Low:\t"+$r_blm.getProp("coloring.lowpar").tostr()+"A^2"); sys.println("High:\t"+$r_blm.getProp("coloring.highpar").tostr()+"A^2"); ↑この部分は,グラフィックス表示とは直接関係ないので省略可能. 低い値,高い値を指定するプロパティー名はそれぞれ,coloring.lowparとcoloring.highparである.ここでは,その値をgetProp()メソッドを使用して取得し,端末に整形して表示している.端末(Windowsの場合はOutput window)には以下のようにデフォルト値が表示される.
このように,sys.println()メソッドは,スクリプトのデバッグ等で,変数などの値を調べるときに便利. gfx.setCenter($r_blm.getCenter()); gfx.updateView(); ↑前回と同じ. Queからの変更点
|