第6章 プラグインを使う

PyMOLは追加のプラグインを使って機能を拡張させることができます。プラグインといっても、Excelなどで言うところの、マクロみたいなものです。理論的には、PyMOLに実装されている機能を組み合わせれば実現可能なことは、このプラグイン機能を使うことでワンコマンドで達成できるようになります

ここではできあいのプラグインのインストール方法を示しつつ、その中でも便利なものをいくつか紹介したいと思います。

環境

  • macOSまたはLinux OS。Windowsの場合はやり方が異なる可能性があります。
  • PyMOL 2.0以降をインストールしてある(バイナリ版・conda版・オープンソース版どれでも可)

PyMOLプラグインのインストール方法

プラグインのダウンロード

例えば私が管理しているもので、 https://github.com/YoshitakaMo/pymol-psico があります。これは大元のpsicoからクローンしてきたものです。これを、例としてホームディレクトリ以下のDocumentsディレクトリにインストールします。

cd ~/Documents
git clone https://github.com/YoshitakaMo/pymol-psico.git

以上でこのpymol-psicoディレクトリをコピーしてくることができます。中身のプラグインはすべてpython言語で書かれています。オープンソース版でPyMOLをインストールした場合には、この文法はインストールに使用したpythonのバージョンに依存します。

使用のための初期設定

このプラグインを使える状態にするには、先程のpymol-psicoディレクトリにPyMOL側からPATHを通し、さらに初期化コマンドを入れて上げる必要があります。これは、pymolを開いて以下のコマンドを入力してあげると可能です。

sys.path.append(os.path.expanduser('~/Documents/pymol-psico'))
import psico.fullinit

入力する場所はここ(下の PyMOL>でも良い)

プラグイン使用のための初期設定

1行目はPATHの追加コマンドです。先程、psicoディレクトリを~/Documentsにインストールしたので、上の例では(os.path.expanduser('~/Documents/pymol-psico'))となっていますが、~/Documents以外のディレクトリに置いた場合は適宜このPATHを変更してください。2行目は、psicoモジュールの初期化コマンドです。Pythonのimportコマンドでpsicoを使えるようにします。

しかし、これを毎回PyMOLを立ち上げるたびに入れるのは面倒です。そこで、PyMOLを開いた時に最初に読み込まれる設定ファイル、~/.pymolrcに上の設定を書いておきましょう。(参考:3.1 FileのEdit pymolrcの項)そうすると、PyMOL起動時に自動で上のプラグインが使えるようになります。

DSSPプラグイン

プラグインのインストール方法の手順に従ってpsicoのインストールがうまく行っていれば、改めて起動した後にPyMOLのコマンドラインでdsspというコマンドが使えるようになっているはずです。このコマンドは開いているタンパク質に対して二次構造アサインメントプログラムのDSSPをかけてくれて、その計算結果をもとに表示を切り替えてくれます。ただし利用するためにはあらかじめmkdsspコマンドがインストールされ、かつ動作することが条件です。現在、最新版のDSSPは以下のHomebrewコマンドからインストールすることができます。

brew install brewsci/bio/dssp

このdsspパッケージの中にmkdsspコマンドが入っています。ちなみにCentOS 7の方は、yum -y install dsspとすれば簡単にmkdsspコマンドがインストールできます。バージョンがちょっと古いですけど問題なく動作するはずです。

そしてPyMOLの画面に戻り、dsspコマンドを打てば、以下のような表示になります。 DSSPの使用例

DSSPプログラムによって判定された二次構造アサインの結果に対応して、PyMOL上の二次構造表示が変化し、色分けされたものになります。DSSPによる二次構造アサイン法とPyMOLネイティヴで入っているアサイン法は微妙に異なるため、細かいところをよーくみてみると、ものによっては二次構造アサインが変化している場合があります。DSSPによる二次構造判定法は現在もなおProtein Data Bankで公式に採用されていますので、こちらを使って表示させたほうが良いと個人的に思います。

また、MDシミュレーションの結果をPyMOLで表示している方の場合、初期構造からシミュレーションの途中でタンパク質の二次構造が変化した場合でも、そのフレームでdsspと打てば、そのフレームに合わせた二次構造表示に変化してくれるところが便利です。

これらのコマンドの説明はPyMOL >の欄にhelp dsspと打てば表示されます。オプションが色々ついているPyMOLコマンドは多いので、確認しておきましょう。例えばこのdsspコマンドの場合は

DESCRIPTION

    Secondary structure assignment with DSSP.
    http://swift.cmbi.ru.nl/gv/dssp/

ARGUMENTS

    selection = string: atom selection {default: all}

    exe = string: name of dssp executable {default: mkdssp}

    raw = string: atom property to load raw dssp class into {default: 'custom'}

    color = string: color in response to secondary structure {default: 1/ON}

EXAMPLE

    dssp all, /usr/local/bin/mkdssp, raw=text_type
    color gray
    color red, text_type H
    color orange, text_type G
    color yellow, text_type E
    color wheat, text_type B
    color forest, text_type T
    color green, text_type S
    set cartoon_discrete_colors, 1

SEE ALSO

    dss, stride

と表示されます。colorがデフォルトでONになっています。二次構造についての色分けを自動でしてほしくない場合には、dssp color=0と打てば、さっきのような色分けをしないで二次構造表示だけ変更してくれます(←地味によく使う)。

DSSPプラグインの設定を変更してみる

DSSPのカラーリングが気に入らない、他の色で塗り分けたい! という場合は、せっかくなのでプラグインを書き換えてみましょう(ちなみに上の設定のカラーリングは有名なSolarized Darkのテーマを模しています)。

psidoディレクトリの中にあるediting.pyの258行目あたりからがdsspの関数定義になっています。

def dssp(selection='(all)', exe='', raw='custom', state=-1, quiet=1, color=1):
    '''
DESCRIPTION

    Secondary structure assignment with DSSP.
    http://swift.cmbi.ru.nl/gv/dssp/

ここでcolor=1となっていますが、dsspコマンドを打ってみた時に、デフォルトでカラーリングを変えてほしくない場合はここをcolor=0としておくとよいでしょう。 この下をさらに見てみると、色分け設定をしている部分が見られます。

    # if color=1
    if color == 1:
        cmd.color('gray', selection)
        cmd.set_color('H_color', [220, 50, 47])
        cmd.color('H_color', raw+' H')
        cmd.set_color('G_color', [211, 54, 130])
        cmd.color('G_color', raw+' G')
        cmd.set_color('I_color', [255, 170, 170])
        cmd.color('I_color', raw+' I')
        cmd.set_color('E_color', [196, 177, 3])
        cmd.color('E_color', raw+' E')
        cmd.set_color('B_color', [42, 161, 152])
        cmd.color('B_color', raw+' B')
        cmd.set_color('T_color', [38, 139, 210])
        cmd.color('T_color', raw+' T')
        cmd.set_color('G_color', [211, 54, 130])
        cmd.color('G_color', raw+' G')
        cmd.set_color('S_color', [133, 153, 0])
        cmd.color('S_color', raw+' S')
        cmd.set('cartoon_discrete_colors', '1')
        cmd.util.cnc(selection)

cmd.set_colorはPyMOLに最初から実装されているコマンドset_colorそのものであり、ここではH_colorという名前でRGB色使いの(220, 50, 47)を定義しています。詳しい説明はPyMOLWikiを読んでね。DSSPの定義で、αヘリックスはH、βシートはEという一文字表記になっているので、ここでのcmd.color('H_color', raw+' H')部分は、「DSSPでHと判定された残基をH_colorで色付けする」という意味になっています。つまり、ここの色の値を変えれば、DSSPの二次構造判定に対して思い通りの色分けを行うことができます。

PyVOL GUIプラグイン

(2023年9月6日更新)

2019年10月24日、BioRxivにPyMOLプラグインのPyVOLというのを開発したよという論文が投稿されました。

PyVOL

これはタンパク質の中の空隙、つまり基質や薬剤などが入りそうな空間を検出し、体積の値の表示もしてくれるプラグインのようです。ちょっと興味があったのでインストールすることにしてみました。

使用可能な環境

  • Linux OSまたはmacOS。2021年以降はcatalina以降のmacOSでも使用できるようになりました。

PyVOLのインストール方法

以下のGitHubにてこのプラグインをメンテナンスしてくれているようです。 https://github.com/schlessingerlab/pyvol/

  1. https://github.com/schlessinger-lab/pyvol/blob/master/installers/pyvol-installer.zip のページにアクセスし、画面右端の↓マークからファイルをダウンロードします(14.6 MB)。
  2. PyMOLを開き、画面上部のメニューPluginからPlugin Managerを選択して次の画面を出します。
  3. Choose file...から先程ダウンロードしたpyvol-installer.zipを選択します。
  4. Select plugin directoryのダイアログが表示されますが、そのまま特に変更せずOKを押します。Plugin "pyvol_gui" has been installed.と表示されればOKです。
  5. PyMOLの画面上部のメニューPluginPyVOLが表示されていることを確認します。
  6. PyVOL 1.7.8のダイアログが開きます。画面左側のInstall PyVOL from PyPIをクリックしてしばらく待つと、動作に必要なPythonパッケージが自動的にダウンロードされて次のような画面表示になります(バージョンはその時々で異なるのであまり気にしないでください)。
  7. 動作にはMSMSという実行ファイルを追加でインストールする必要があります。これは https://ccsb.scripps.edu/msms/downloads/ からダウンロードするもので、Linux, macOS, さらにmacOSのうちApple Silicon(いわゆるM1, M2 Macのこと)を使っている方はArm64の方からMSMSをダウンロードします。
  8. ここがやや厄介なのですが、PyVOLからMSMSの実行ファイルを呼び出すためにはコマンド名をmsmsとしなければ認識してくれません。先程ダウンロードしたMSMSは実行ファイル名がmsms_Arm64_2.6.1(Apple Silicon製)だったり、msms.x86_64Darwin.2.6.1(Intel CPUのMacの場合)だったりします。これを実行できるようにするためには以下のコマンドを打つのが手っ取り早いかもしれません。
# Apple Silicon Macの場合
ln -sf ~/Downloads/msms_Arm64_2.6.1/msms_Arm64_2.6.1 /opt/homebrew/bin/msms
# Intel Macの場合
ln -sf ~/Downloads/msms_x86_64Darwin_2.6.1/msms.x86_64Darwin.2.6.1 /usr/local/bin/msms

ここでやっていることは、先程ダウンロードしたMSMSの実行ファイルのシンボリックリンクファイルを/opt/homebrew/binまたは/usr/local/bin以下にmsmsというコマンド名で配置するということです。そしてこれをやった後にターミナルからwhich msmsとしてみてnot found と言われなければ使えるようになっているはずです。

PyMOLをターミナルから起動して、PluginメニューからPyVOLを選択した時に、以下のように表示されればOKです。

もしインストールがうまく行っていない場合は、下の"System MSMS path"がnot foundになります。このPyVOLを選択してみて、メニューが開けたら成功です。

簡単な使い方

タンパク質を選択しておいてからPyVOLプラグインのParametersタブのRunボタンを押すだけです。Load Pocketのタブでは描画方法を色々変えることもできます。

pyvol load pocketメニュー ## pLDDTカラーリングプラグイン

プラグインのインストール方法の手順に従って森脇のpymol-psicoのインストールがうまく行っていれば、改めて起動した後にPyMOLのコマンドラインでplddtというコマンドが使えるようになっています。このコマンドはAlphaFold2またはColabFoldで予測された構造に対し、予測のpLDDT値に応じて色分けを行ってくれます。

デフォルトでの色分けはAlphaFold Protein Structure Databaseで使われている配色に準じています。

別のカラーリングスキームとしてspectrumがあります。例えばplddt (selection), spectrum, 50, 90とすると、(selection)に入れたオブジェクトについてpLDDT値の下限(赤色)を50に上限(青色)を90としてグラデーション配色してくれます。

詳細はhelp plddtを御覧ください。