第7章 設定値

設定値を色々確認してみます。

概論

PyMOLの設定値を変更する方法は、大きく分けて2つあります。一つは、GUIを使って設定値を変更する方法、もう一つは、コマンドラインを使って設定値を変更する方法です。前者は、PyMOL GUIの[setting]メニューから設定値を変更する方法です。

setting

こちらの[Edit All]をクリックすると、全設定値の表示とその値の変更が可能です。

values

これには描画関連だけでなく様々な設定値が表示されます。設定値を変更すると、その変更がすぐに反映されます。

CUIでは、setコマンドを使って設定値を変更することができます。例えば、set ray_trace_mode, 3とすることで、ray_trace_modeの値を3に変更することができます。

set ray_trace_mode, 3

この値は、macOSやLinuxでは各自のホームディレクトリの~/.pymolrcに保存することで、この設定値がデフォルトになるように指定することができます。このファイルは、[File]→[Edit pymolrc]をクリックすることで編集することも可能です。

pymolrc

PyMOL起動後にこのファイルに書かれている値で上書きすることで、設定値を変更することを実現しています。

設定値は、CUIにおいてgetコマンドを使って確認することができます。

get sphere_scale

結果

PyMOL>get sphere_scale,
 get: sphere_scale = 1.00000

描画関連

PyMOLの設定値で一番気になるのは、きれいな生体分子の画像を生成するにはどうすればよいかというところの部分でしょう。PyMOLは、デフォルトの設定値で十分にきれいな画像を生成することができますが、設定値を変更することでさらに美しい画像を生成することができます。この章では、PyMOLの設定値を変更することで、より美しい画像を生成する方法を説明します。

sphere描画関連

sphereの大きさを変更

デフォルトのsphere表示は原子の体積をスケールを表現するように表現されています。一方で、原子の点をもう少し小さく表現させることも可能です。

set sphere_scale, 0.25

このコマンドを実行することで、sphereの大きさを0.25倍に変更することができます。

実際には水素原子をやや小さめに描画する方がもっともらしくなるので、私は以下のような設定値を使っています。

set sphere_scale, 0.22
set sphere_scale, 0.22, elem C+N+O+S+Cl+F+Na+Mg
set sphere_scale, 0.13, elem H

cartoonの描画

cartoon_cylindrical_helices

cartoon_cylindrical_helicesは、ヘリックスの描画を円筒状にするかどうかを設定する設定値です。デフォルト値は0ですが、これを1にすることで、ヘリックスの描画を円筒状にすることができます。また、PyMOL 2.5以降は2を指定することで、直線的なヘリックスに描画されます。

set cartoon_cylindrical_helices, 1
set cartoon_cylindrical_helices, 2
cartoon_cylindrical_helices=0cartoon_cylindrical_helices=1cartoon_cylindrical_helices=2
cylindrical_0cylindrical_1cylindrical_2

cartoon_debug

cartoon_debugは、cartoon表示のデバッグ用オプションであり、ユーザー側は利用することはないと思います。デフォルト値は0ですが、これを1にすることで、Cartoon表示のレンダリング判定が現れるようになります。

set cartoon_debug, 1
cartoon_debug=0cartoon_debug=1
debug_0debug_1

cartoon_discrete_colors

cartoon_discrete_colorsは、カートゥーンの色が隣接する色と混ざらないようにするか、それとも互いに混ざり合うかを切り替える設定値です。デフォルト値は0ですが、これを1にすることで、カートゥーンの色が隣接する色と混ざらないようになります。Cartoon表示を行っている時に隣り合う残基の色を変えていると違いがわかります。

set cartoon_discrete_colors, 0 # default, 隣ある色が混ざり合う
set cartoon_discrete_colors, 1 # 隣ある色との混ざり合いが発生しない
cartoon_discrete_colors=0cartoon_discrete_colors=1
discrete_0discrete_1

cartoon_fancy_helices

cartoon_fancy_helicesは、ヘリックスの描画をよりファンシーにするかどうかの設定値です。 Cartoonの表示はdefault, cylindrical, fancyの3種類があります。 fancy helicesモードは、ヘリックスの描画をよりファンシーにすることができます。

set cartoon_fancy_helices, 1
cartoon_fancy_helices=0cartoon_fancy_helices=1
fancy_0fancy_1

cartoon_dumbbell_length

cartoon_dumbbell_lengthcartoon_fancy_helicesがONになっているときのみ効果を発揮します。cartoonのヘリックスの描画をどの程度の長さにするかを設定する設定値です。デフォルト値は1.6ですが、これを変更することで、cartoonヘリックスの長さを変更することができます。

# defaultは1.6
set cartoon_dumbbell_length, 0.7
cartoon_dumbbell_length=0.7cartoon_dumbbell_length=1.6
dumbell_0.7dumbell_1.6

cartoon_dumbbell_radius

cartoon_dumbell_radiusは、cartoon_fancy_helicesがONになっているときのみ効果を発揮します。dumbbellの半径を設定する設定値です。 この値を0.1に設定すると、デフォルトの設定でdumbbellの形状が消えますが、0.1未満に設定すると、fancy helixの内部空間が表示されます。

# default は0.16
set cartoon_dumbbell_radius, 0.1
cartoon_dumbell_radius=0.1cartoon_dumbell_radius=0.16cartoon_dumbell_radius=0.4
dumbell_radius_0.1dumbell_radius_0.16dumbell_radius_0.4

cartoon_loop_width

cartoon_loop_widthは、cartoon_fancy_helicesがONになっているときのみ効果を発揮します。ループ部分の太さを設定する設定値です。

set cartoon_dumbbell_width, 0.1 # defaultは0.17
cartoon_loop_width=0.17cartoon_loop_width=0.3cartoon_loop_width=0.8
loop_width_0.17loop_width_0.3loop_width_0.7

cartoon_loop_radius

cartoon_loop_radiusは、ループ部分の太さを調整する設定値です。デフォルト値は0.2ですが、これを変更することで、ループ部分の太さを調整することができます。

# defaultは0.2
set cartoon_loop_radius, 0.1
0.20.1
loop_radius_0.2loop_radius_0.1

cartoon_fancy_sheets

cartoon_fancy_sheetsは、シートの終端に矢印を表示するかどうかを設定する設定値です。デフォルト値は1ですが、これを0にすることで、シートの終端に矢印を表示しないようにすることができます。

set cartoon_fancy_sheets, 0 # defaultは1, on
cartoon_fancy_sheets=0cartoon_fancy_sheets=1
fancy_sheets_0fancy_sheets_1

cartoon_flat_cycles

cartoon_flat_cyclesは、シートの平坦度を定義することができる設定値です。値が大きいほど、シートが平坦になります。

set cartoon_flat_cycles, 1 # defaultは4
cartoon_flat_cycles=0cartoon_flat_cycles=4cartoon_flat_cycles=10
flat_cycles_0flat_cycles_4flat_cycles_10

cartoon_flat_sheets

cartoon_flat_sheetsは、PyMoLがβシートを描画する際の滑らかさを決定します。平坦なシートは、美しい芸術的な画像を作り出しますが、時にはスティックがシートに接続されているように見える問題が発生することがあります。この問題が発生した場合は、このオプションをオフにしてください。

set cartoon_flat_sheets, 0 # defaultは1, on
cartoon_flat_sheets=0cartoon_flat_sheets=1
flat_sheets_0flat_sheets_1

cartoon_gap_cutoff

cartoon_gap_cutoffは、タンパク質主鎖に沿って欠落した残基(例:座標の決定されていないミッシングループ)が存在するとき、ギャップ(残基数)がカットオフよりも短い場合は、点線のCartoonループセグメントを作成します。デフォルトは10ですので、10残基よりも短い場合は、点線のCartoonループセグメントを作成します。 この機能はPyMOL 1.8.2から追加されました。

set cartoon_gap_cutoff, 0 # defaultは10
cartoon_gap_cutoff=0cartoon_gap_cutoff=10
gap_cutoff_0gap_cutoff_10

cartoon_helix_radius

このオプションはヘリックス描画がset cartoon_cylindrical_helices, 1となっている場合に有効です。cartoon_helix_radiusは、ヘリックスを円筒状に描画する際の半径を設定する設定値です。

set cartoon_cylindrical_helices, 1 # cylinder helixをONにする
set cartoon_helix_radius, 1.0 # defaultは2.25
cartoon_helix_radius=1.0cartoon_helix_radius=2.25
helix_radius_1.0helix_radius_2.25

cartoon_highlight_color

ヘリックスの内側の面とストランドの側面に対して指定した色を指定することができます。

set cartoon_highlight_color, default
set cartoon_highlight_color, red
cartoon_highlight_color=defaultcartoon_highlight_color=red
highlight_color_defaulthighlight_color_red

cartoon_ladder_mode

PyMOLはデフォルトで核酸を描画するときに細いはしごのようなオブジェクトが現れてますが、これをOFFにすることができます。

set cartoon_ladder_mode, 1 # default: 1
set cartoon_ladder_mode, 0
cartoon_ladder_mode=1cartoon_ladder_mode=0
ladder_mode_1ladder_mode_0

cartoon_ladder_color

cartoon_ladder_colorは、核酸のはしごオブジェクトの色を設定します。

set cartoon_ladder_color, default
cartoon_ladder_color=defaultcartoon_ladder_color=red
ladder_color_defaultladder_color_red

cartoon_ladder_radius

核酸のはしごオブジェクトの半径を設定します。

set cartoon_ladder_radius, 0.5 # defaultは0.25
cartoon_ladder_radius=0.25cartoon_ladder_radius=0.5
ladder_radius_0.25ladder_radius_0.5

cartoon_loop_quality

cartoonのloop qualityの値を設定します。デフォルトは-1ですが、1以上の値にすると質感が増します。

set cartoon_loop_quality, 1 # default: -1.0
cartoon_loop_quality=-1cartoon_loop_quality=1
loop_quality_-1loop_quality_1

surface描画関連

surface_best

surface_best (float, default: 0.25) is a tuning parameter that should not need to be modified.

一応設定値として存在していますが、通常は変更する必要はありません。

surface_carve_selection

(string, default: blank) is the named selection of atoms about which the surface is carved.

surface_carve_selectionsurface_carve_cutoffの設定により、分子表面の描画を原子選択の近傍に制限することができます。原子のサブセットに対してのみsurface表現を表示する場合とは異なり、描画は原子レベルではなく頂点(surface point)レベルで制御されます。

surface_carve_selectionの値は(selectで作成した)named selectionオブジェクトでなければなりません。つまり、chain Aのような選択式は使うことができません。

以下に、surface_carve_selectionを使ってsurfaceを描画したときと、使わずにshow surfaceで描画したときの違いを示します。

surface_carve_selectionでリガンド周辺の5 Å以内の原子を選択し、surface_carve_cutoffを5.0に設定してsurfaceを描画したとき。こちらは頂点 (surface point) レベルで描画が制御されます。

# PDB ID: 8z7zのロード
fetch 8z7z, async=0
# リガンド分子(VIB)をcarveseleオブジェクトとして選択
select carvesele, organic
# リガンド周辺の5 Å以内の原子をsurface_carve_selectionで選択
set surface_carve_selection, carvesele
set surface_carve_cutoff, 5
# surfaceを描画
show surface
# 見た目の調整
# mesh表示
set surface_type, 2
set surface_color, white
bg_color white
ray
surface_carve_selection1

使用しない場合。こちらは原子レベルで描画が制御されます。

# PDB ID: 8z7zのロード
fetch 8z7z, async=0
# リガンド分子(VIB)をcarveseleオブジェクトとして選択
select carvesele, organic
show surface, all within 5 of carvesele
# mesh表示
set surface_type, 2
set surface_color, white
bg_color white
ray
surface_carve_selection2

surface_carve_selectionを使うほうが、5Å近傍の表面をより正確に表現できている感じがします(ちょっとこの例だとわかりにくいかもしれませんが……)。

surface_carve_cutoff

surface_carve_cutoff (float, default: 0.0) controls the cutoff distance from surface_carve_selection atoms which surface points must meet to be included in the carved surface.

surface_carve_selectionで選択された原子からの距離がこの値よりも大きい場合、その点は刻んで彫り取った表面に含まれません。

surface_carve_normal_cutoff

(float, default: -1.0) controls the dot product threshold from surface_carve_selection atoms which surface points must meet to be included in the carved surface.

carveされた表面の法線ベクトルとsurface_carve_selectionで選択された原子との間の角度がこの値よりも小さい場合、その点は彫り取った表面に含まれません。

surface_carve_state

(integer, default: 0) is the controlling state for surface carving. By default, the corresponding coordinate set state is used.

surface_cavity_mode

surface_cavity_modeはPyMOLのcavity描画方法を変更します。通常0または1です。デフォルトは0で、全体のcavityを描画します。1に設定すると、反転したcavityを描画します。タンパク質のリガンドが入るような空隙を描画する際に便利です。

set surface_cavity_mode, 1

以下の図ではわかりやすさのためsurface_colorcyanに設定しています。

surface_cavity_mode=0surface_cavity_mode=1
cavity_0cavity_0

surface_cavity_cutoff

(float, default: 0.0) controls the cutoff distance from surface_carve_selection atoms which surface points must meet to be included in the carved surface.

surface_cavity_cutoffsurface_carve_selectionで選択された原子からの距離がこの値よりも大きい場合、その点は刻んで彫り取った表面に含まれません。

surface_cavity_radius

surface表示をしたときのcavityの半径を設定します。デフォルトは7.0です。surface_cavity_mode1のときに有効のようです。

surface_cavity_radius=3.0surface_cavity_radius=7.0
cavity_rad3cavity_rad7

surface_circumscribe

surface_clear_cutoff

surface_clear_selection

surface_clear_state

surface_color

surface_color_smoothing

surface_color_smoothing_threshold

surface_debug

surface_miserable

surface_mode

surface_negative_color

surface_negative_visible

surface_normal

surface_optimize_subsets

surface_poor

surface_proximity

surface_quality

surface_ramp_above_mode

surface_residue_cutoff

surface_smooth_edges

surface_solvent

surface_trim_cutoff

surface_trim_factor

surface_type

surface_use_shader