PyMOL設定小ネタ
pymolrcの設定
.pymolrc
ファイルは、PyMOLの起動時に読み込まれる設定ファイルです。LinuxやmacOSの場合は通常ホームディレクトリ(/Users/${USER}
または/home/${USER}
)の下に隠しファイルとして存在しています。この設定ファイル自体はPyMOLを開いた後に[File] -> [Edit pymolrc]を選択することで開くファイルと同じなので、そちらに記述してもOKです。私はWindowsを使っていないのでpymolrcファイルの正確な位置はわからないのですが、Windowsの方はこちらから編集してください。
このファイルにコマンドを記述しておくと、PyMOLの起動時にそれらのコマンドが自動的に実行されるため、設定値の変更を毎回手動で行う必要がなくなります。rcというのはrun commandという意味です。たしか。
例えば私は以下のような内容の.pymolrc
を用意しています(一部抜粋)。
set label_size, 18
set cartoon_loop_radius, 0.1
set cartoon_putty_radius, 0.2
set cartoon_oval_length, 0.8
set cartoon_gap_cutoff, 0
set cartoon_rect_length, 1.2
# Define custom functions
python
def plddt(selection="(all)", scheme="afdb", lower=50.0, upper=90.0, cnc=0):
"""
DESCRIPTION
Coloring by per-residue predicted LDDT (pLDDT) scores.
(see Jumper et al. 2021 https://doi.org/10.1038/s41586-021-03819-2
Suppl. Methods 1.9.6 for details)
Note: The pLDDT score is embedded in the B-factor column of the PDB
output from AlphaFold version 2.
ARGUMENTS
selection = string: atom selection {default: (all)}
scheme = string: Coloring scheme. afdb or spectrum {default: afdb}.
lower = float: minimum of spectrum {default: 50.0}
upper = float: maximum of spectrum {default: 90.0}
cnc = 0/1
SEE ALSO
spectrum
"""
if scheme == "afdb":
cmd.set_color("very_high", [0.051, 0.341, 0.827])
cmd.set_color("confident", [0.416, 0.796, 0.945])
cmd.set_color("low", [0.996, 0.851, 0.212])
cmd.set_color("very_low", [0.992, 0.490, 0.302])
cmd.color("very_high", selection + " and b ")
cmd.color("confident", selection + " and b ")
cmd.color("low", selection + " and b ")
cmd.color("very_low", selection + " and b ")
cmd.set("cartoon_discrete_colors", 1)
cmd.util.cnc(selection)
elif scheme == "spectrum":
lower, upper = float(lower), float(upper)
cmd.spectrum("b", "red_yellow_green_cyan_blue", selection, lower, upper)
cmd.util.cnc(selection)
else:
print("scheme is not valid. Use 'afdb' (default) or 'spectrum'.")
def unhcr(selection="(all)", color_list=None):
"""
coloring chains using UNCHR color palette.
See UNHCR data visualization guidelines:
Parameters:
- selection (str): atom selection (default is all atoms in all objects)
- color_list (list): list of color names to use (default is the predefined color order)
"""
if color_list is None:
color_list = ['0x0072bc',
'0xffc740',
'0x32c189',
'0x6cd8fd',
'0xd25a45',
'0xa097e3',
'0x7c3c36',
'0xbfbfbf',
'0x0b3754',
'0x684d0b',
'0x1f5741',
'0x0b5269',
'0x683229',
'0x403c5d',
'0x482724',
'0x4d4d4d']
chains = cmd.get_chains(selection)
chains = list(chains)
for i, chain in enumerate(sorted(chains)):
sel = f"chain {chain}"
if selection:
sel = f"{selection} and {sel}"
color = color_list[i % len(color_list)]
cmd.color(color, sel)
# Register the functions as PyMOL commands
cmd.extend("plddt", plddt)
cmd.extend("unhcr", unhcr)
# tab-completion of arguments
cmd.auto_arg[0].update(
{
"plddt": cmd.auto_arg[0]["zoom"],
"unhcr": cmd.auto_arg[0]["zoom"],
}
)
python end
この中ではcartoon表示の設定や、AlphaFoldのpLDDTスコアを可視化するための自作関数plddt
、UNCHRカラーでチェーンを色分けするための自作関数unhcr
などを定義しています。AlphaFold予測構造についてのpLDDTカラーリングコマンドという記事を昔書いていまして、予測構造を使う業界ではよくこのカラーリングを呼び出す事が多いのですが、このコマンドを登録しておくと簡単にカラーリングできますね。
自作関数は、PyMOLのcmd.extend
を使ってPyMOLのコマンドとして登録することができます。これにより、PyMOLのコマンドラインからplddt (selection)
やunhcr (selection)
と入力することで、これらの関数を実行できるようになります。また、tabキーを押すことで引数の補完も可能になります。
PyMOL マウス操作モードの変更
PyMOLは歴史的な経緯から、3ボタン制(left・middle・right)のマウスを前提に設計されています。現代のほぼすべてのマウスとOSでleft・rightクリックはサポートされていますが、macOSの場合はホイールを押し込むことで発動するmiddleクリックボタンが通常存在していないため、PyMOLの3-button Modeで設定されている操作を行うことができません。
この場合はconfig_mouse
コマンドを使って、PyMOLのマウス操作モードを変更することができます。
には以下の値を指定できます。
maestro three_button_editing two_button_editing
one_button three_button_motions two_button_viewing
three_button three_button_viewing
three_button_all_modes two_button
例えば、macOSでmiddleクリックがない場合は、以下のように設定することで、PyMOLのマウス操作を2ボタンモードに変更できます。
PyMOL マウスでのボタン操作の変更
各操作モードでのボタンを押したときのアクションの割当を変更したい場合は、button
コマンドを使います。以下は、Ctrlキーとマウスの右ボタンに、選択オブジェクトを平行移動させられるようにするMovO
を割り当てるための設定です。MovO
はMDシミュレーションの準備などで使うことがあるのですが、Middleクリックにしか割り当てられていない都合上、トラックパッドしかない状態で行うことができず困ることがありました。 しかしこの設定を適用すればそれが可能になります。
第1引数にはleft
, middle
, right
, wheel
, double_left
, double_middle
, double_right
, single_left
, single_middle
, single_right
のいずれかを指定します。第2引数にはNone
, Shft
, Ctrl
, CtSh
, CtAl
, CtAS
などの修飾キーを指定します。第3引数には、PyMOLで定義されているアクション名を指定します。
actions = None, Rota, Move, MovZ, Slab, +Box, -Box, Clip, MovS,
+/-, PkAt, Pk1, MvSZ, Sele, Orig, Menu, PkAt, Pk1 RotO, MovO,
MvOZ, MovA, PkAt, PkTB, MvSZ MvAZ, DrgM, RotZ, PkBd, ClpN,
ClpF
この設定を行うことで、右下のCtrl-R部分にMovOの文字が現れます。
Before (チェインはUNHCRカラーリングです):
After:
MovOコマンドがCtrl-右クリックで使えるようになりました。片方のChainをextractしてobj01
とした後、Ctrl-右クリック(トラックパッドでは二本指)を押しながらのMovOでオブジェクトを移動させることができます。
なお、この設定を行った後にPyMOLのマウス操作モードを変更した場合、モードを元に戻すとその設定は失われてしまいます。デフォルトでこれを永続的に固定することはできないので注意してください。
もし本気で永続的に変更したい場合は、インストールされたPyMOLの中にあるpython3.xx/site-packages/pymol/controlling.py
の設定値を直接変更すれば可能かもしれません。
pymol キーバインド変更
set_key
コマンドを使うと、PyMOLのキーバインドを設定・変更できます。以下はCtrlと右矢印キーに、「選択範囲へのセンタリング」を割り当てる例です。
set_key CTRL-right, cmd.center('sele')
cmd.center('sele')
は、選択範囲を画面の中心に移動するPyMOLのコマンドです。本来センタリングしたい場合はcenter sele
と打ち込むことで可能ですが、set_key
でコマンドを指定する場合はPyMOL APIのcmd
を使って指定することになります。
Views: 0