Documents/QScriptのチュートリアル/StepA1CueMol: Molecular Visualization Framework |
[ このページのサンプルファイル: tar.gz format or zip format ] リボンによる核酸分子の表示tRNA(Phe)をリボンモデルで表示します.(trf-ribbon.qs) 01: $pwd = sys.getScriptPath(); 02: $se_det = 12; 03: $ax_det = 8; 04: 05: $mol = readPDB($pwd+"trf-nomod.pdb","trf"); 06: 07: $mol.select(se/c; A and resi 1:74/); 08: $r_bp = $mol.createRend("bp", "nucl"); 09: $r_bp.setProp("pivotatom", "p"); 10: $r_bp.setProp("bondw", 0.5); 11: 12: # set details 13: $r_bp.setProp("axialdetail", $ax_det); 14: $r_bp.setProp("section.detail", $se_det); 15: 16: gfx.setCenter($r_bp.getCenter()); 17: gfx.updateView();
nuclレンダラーには,上記のデフォルトのモード以外に,リボースの部分と塩基の部分をさらに際立たせて表示するモードがあります.以下の行を11行目に追加してみてください. $r_bp.setProp("natype", 1); 以下のようになります. (このモードでは"pivotatom"を"p" (リン酸)以外にすると,表示がおかしくなります.) Queからの変更点
塩基対を割り当てるどの残基とどの残基が塩基対を作っているかを指定することで,塩基対を一本のスティックとして表示させることができます.(trf-ribbon2.qs) 01: $pwd = sys.getScriptPath(); 02: $se_det = 12; 03: $ax_det = 8; 04: 05: $mol = readPDB($pwd+"trf-nomod.pdb","trf"); 06: 07: # setup tRNA base pairs 08: # acc-stem 09: makebp("trf", "A.1", "A.72"); ... (省略) ... 35: makebp("trf", "A.13", "A.22"); 36: 37: $mol.select(se/c; A and i; 1:74/); 38: $r_bp = $mol.createRend("bp", "nucl"); 39: $r_bp.setProp("pivotatom", "p"); 40: $r_bp.setProp("bondw", 0.5); 41: 42: # set details 43: $r_bp.setProp("axialdetail", $ax_det); 44: $r_bp.setProp("section.detail", $se_det); 45: 46: gfx.setCenter($r_bp.getCenter()); 47: gfx.updateView();
色を付ける上のリボンモデルのtRNAに,2次構造上のアーム毎に色を変えてみます.(trf-ribbon3.qs) 01: $pwd = sys.getScriptPath(); 02: $se_det = 12; 03: $ax_det = 8; 04: 05: $mol = readPDB($pwd+"trf-nomod.pdb","trf"); 06: 07: # setup tRNA base pairs ... (省略) ... 36: 37: $mol.select(se/c; A and resi 1:74/); 38: $r_bp = $mol.createRend("bp", "nucl"); 39: $r_bp.setProp("pivotatom", "p"); 40: $r_bp.setProp("bondw", 0.5); 41: 42: # colors 43: $mol.select(se/A.1:8,66:77.*/); 44: molvis.paint($r_bp, color.hsb(60,0.3,1.0)); 45: $mol.select(se/A.9:26.*/); 46: molvis.paint($r_bp, color.hsb(120,0.3,1.0)); 47: $mol.select(se/A.27:43.*/); 48: molvis.paint($r_bp, color.hsb(180,0.3,1.0)); 49: $mol.select(se/A.44:48.*/); 50: molvis.paint($r_bp, color.hsb(240,0.3,1.0)); 51: $mol.select(se/A.49:65.*/); 52: molvis.paint($r_bp, color.hsb(299.9,0.3,1.0)); 53: 54: 55: # set details 56: $r_bp.setProp("axialdetail", $ax_det); 57: $r_bp.setProp("section.detail", $se_det); 58: 59: gfx.setCenter($r_bp.getCenter()); 60: gfx.updateView();
この例から分かるように,nuclレンダラーのチューブ部分とスティック部分は,同じ色しか設定できない.違う色を設定するには,nuclレンダラーにはスティックのみを表示させ,チューブ部分は独立のtubeレンダラーを作成して色を指定すればよい.nuclレンダラーにスティックのみを表示させるには,レンダラーのプロパティー"tube"にブール値falseを設定する. さらに別のタイプの表示nuclレンダラーのもうひとつのモードを紹介します.(trf-ribbon4.qs) 01: $pwd = sys.getScriptPath(); 02: $se_det = 12; 03: $ax_det = 8; 04: 05: $mol = readPDB($pwd+"trf-nomod.pdb","trf"); 06: 07: $na_ring = se/!(name P,O1P,O2P,O3P,O5',C5',O2',O3',O4,O2,N4,N6,CM5,N2,O6)/; 08: $col = color(1,1,0.8); 09: 10: # RNA ribbons 11: $mol.select(se/c; A/); 12: $r_pho = $mol.createRend("pho", "tube"); 13: $r_pho.setProp("section.width", 0.5); 14: $r_pho.setProp("section.tuber", 2.5); 15: $r_pho.setProp("pivotatom", "c3'"); 16: $r_pho.setProp("coloring.default", $col); 17: 18: $mol.select(se/c; A/ & $na_ring); 19: $r_res = $mol.createRend("res", "ballstick"); 20: $r_res.setProp("sphr", 0.3); 21: $r_res.setProp("bondw", 0.3); 22: $r_res.setProp("ring", true); 23: $r_res.setProp("tickness", 0.3); 24: $r_res.setProp("coloring.col_C", $col); 25: $r_res.setProp("coloring.col_N", $col); 26: $r_res.setProp("coloring.col_O", $col); 27: $r_res.setProp("ringcolor", $col); 28: 29: # set details 30: $r_pho.setProp("axialdetail", $ax_det); 31: $r_pho.setProp("section.detail", $se_det); 32: 33: gfx.setCenter($r_pho.getCenter()); 34: gfx.updateView();
この例は単色で表示しましたが,step1やstep2の例を参考にすれば,更に複雑な着色もできます. |