第2章 Internal GUIの使い方
GUIによる基本的な操作方法
GUIとはGraphical User Interfaceのことで、マウスを使ってタンパク質オブジェクトを操作したり、設定を変更したりできるユーザーインターフェースのことです。またPyMOLにはInternal GUIとExternal GUIと呼ばれるメニューが存在し、マウスのクリックを使った直感的な操作が行えるようになっています。
分子構造のロード
構造ファイルのロード
メニュー左上の[File]から、[Open...]を選び、PyMOLに表示させたい構造ファイルを選択します。ここでは、先程ダウンロードした 1alk.cif
ファイルを例として、ダブルクリックして表示させてみます。
すると、画面に1ALKのアルカリフォスファターゼの構造が表示されました。はじめは黒背景に緑のタンパク質がオブジェクトが浮かんでいると思いますが、ここで続けて、メニューの[Display]から[Background]->[White]を選択すると、白背景にすることができます。
サポートしている構造ファイル形式
PyMOLが読み込むことのできる構造ファイルフォーマットはたくさんありますが、まず以下の2つのファイル形式を覚えましょう。
- pdbフォーマット
- ファイル名の最後に
.pdb
(拡張子)がついているのが目印です。PDBが設立された当初から使われているファイルフォーマットで、PyMOLの表示に使う座標情報だけでなく、結晶学(NMR)的情報(B-factor、 空間群、単位格子定数…)、 構造的特徴(2次構造、SS結合… )、実験情報(解像度、回折実験情報、精密化条件、結晶化条件… )、生物学的情報(蛋白質名、種名、生物学的単位、EC番号… )、化学的情報(化合物の名称や構造…)、文献情報などが記載されており、慣れれば人間でも読みやすく、必要最低限の情報が記述されています。しかし、時代が下るとともにこのフォーマットでは限界や不便な点が指摘されるようになりました。特に、近年は結晶解析だけでなくクライオ電子顕微鏡などの技術の発達により、巨大タンパク質の構造決定が次々と報告されるようになりましたが、従来のPDBフォーマットの最も大きな問題点の1つには100,000原子以上からなる構造、または多数のアミノ酸鎖(63チェイン以上)から構成される複合体の構造情報の記述をほとんど想定していなかったことがあります。このため、後述のmmCIF形式の利用が推奨されるようになりました。
- ファイル名の最後に
- mmCIFフォーマット
- ファイル名の最後に
.cif
がついているのが目印です。元来、mmCIFファイルフォーマットは国際結晶学連合が低分子用に定めていたCIF(Crystallographic Information File)形式を高分子(macromolecular)に拡張したものです。pdbフォーマットでは1ファイル内に記述することができなかった、100,000原子数以上または63チェイン以上の構造記述が可能になっています。例えばPDB: 3J3QのHIV-1 capsidは超巨大分子であり、従来のPDBフォーマットでは配布されていません。2014年にPDBの標準フォーマットとなり、2019年7月1日からは、PDBに登録する際にmmCIF形式での構造情報登録を義務付けられるようになりました。 このmmCIF形式がこれからのスタンダードとなっていくことは間違いありません。ファイルの中身はpdbフォーマットの内容の上位互換となっており、最近の構造可視化ソフトウェアはすべてこれに対応するよう調整をしています。
- ファイル名の最後に
他のファイル形式として、以下のものがあります。多くの場合、ファイル名末尾についている拡張子で見分けることが可能です。詳細な記述文法については、ここでは本題ではないので省略します。
- 生体高分子系・電子密度情報
-
CCP4フォーマット: 拡張子は
.ccp4
,.map
,.mrc
。電子密度マップ。 -
PDBMLフォーマット: 拡張子は
.xml
,.pdbml
。コンピュータ間でのデータのやり取りや管理が簡単になるように設計されたXMLファイルフォーマットをPDB用に特化させたものです。RCSB PDBでも配布されており、mmCIF形式とほぼ同一の情報が書き込まれています。ファイルサイズがmmCIFに比べて大きいことや、中身を見ても人間には読みにくい文法になっていますが、各プログラム言語が持っているXMLパーサ(構文解析器)にかけることでデータ構造の複合体に変換することが容易なため、インフォマティクスの専門家からは好まれるファイル形式です。 -
MMTFフォーマット: 拡張子は
.mmtf
。Macromolecular Transmission Formatの略称で、2016年頃から活発になり始めた新しいPDBファイル形式です。https://mmtf.rcsb.org/ によればMMTFの大きな特長はバイナリ化されていることであり、mmCIFフォーマットの1/3以下へのファイル縮小、そして最高で400倍以上の高速な読み込みが可能となっています。PyMOL 2.2.0以降でMMTFファイルフォーマットの読み込み・書き出しができるようになったようですが、まだ書き出しあたりには不十分なところもあります。これはViral Capsid(PDB: 3J3Q)のような超巨大タンパク質の表示にとても便利です。 -
MacroModelフォーマット: 拡張子は
.mmod
,.mmd
。Schrödinger社のMacroModelやMaestroで使われているファイルフォーマット。
-
- 小分子化合物系
- MOLフォーマット: 拡張子は
.mol
。MDL Information Systems社が開発した、化学構造式を記述する標準フォーマットの1つです。詳細はCTFile formatというガイドに記載されています。 - MOL Structure Data Fileフォーマット: 拡張子は
.sdf
。上記MOL形式を改良し、複数の構造式を1ファイルに記述でき、さらに様々な付加情報を追記することができるようになっています。 - SYBYL MOL2フォーマット: 拡張子は
.mol2
。Tripos(現Certara)が開発した、SYBYLと呼ばれるケモインフォマティクスのソフトウェアで使われていたファイルフォーマットです。タンパク質などの巨大分子でもこのファイル形式で書くことが可能です。詳細はSYBYL MOL2 formatというガイドに記載されています。 - XYZフォーマット: 拡張子は
.xyz
。単純に原子の種類と原子の\( xyz \)座標を記述するファイル形式です。http://openbabel.org/wiki/XYZ_(format) に説明があります。
- MOLフォーマット: 拡張子は
以下の拡張子は、表のように別のファイル拡張子として認識されます。
入力拡張子 | 認識されるファイル拡張子 |
---|---|
ent , p5m | pdb |
mmd , out , dat | mmod |
map , mrc | ccp4 |
cc2 | cc1 |
sd | sdf |
rst7 | rst |
o , dsn6 , omap | brix |
ph4 | moe |
spi | spider |
pym , pyc | py |
p1m , pim | pml |
xml | pdbml |
Biological Unitを考慮した分子構造のロード
タンパク質は1本のアミノ酸ポリペプチド鎖が折り畳まって存在しているのがほとんどですが、タンパク質の種類によっては、多量体の形で初めて安定に存在し機能しうるものもあります。Biological Unit(Biological Assemblyとも呼ばれる)とは、実際に生物の中で機能している構造の状態のことを指します。詳しくはPDBjのウェブサイトの「非対称単位と生物学的単位について」も参照してください。
例としてPDB ID: 1ALK
(大腸菌由来アルカリフォスファターゼ)とPDB ID: 1EW2
(ヒト由来アルカリフォスファターゼ)を比較してみましょう。各構造ファイルを取り扱うRCSB PDBのウェブサイト( https://www.rcsb.org/structure/1ALK と https://www.rcsb.org/structure/1EW2 )のStructure Summaryタブで画面左の方には、タンパク質の構造とともに、Global SymmetryとGlobal Stoichiometryの情報が書かれています。
Global StoichiometryにはHomo 2-mer - A2
という情報が記されています。論文で調べてみても、このタンパク質がそれぞれホモ2量体として生物中で機能していることが示されています。しかしそれぞれのファイルをPyMOLで単純に開いてみますと、1ALKの方にはA chain、B chainの構造が含まれていますが、1EW2の方ではA chainしか含まれていません。これは、PDBに登録されている原子座標のデータには、必要最小限の「非対称単位」(assymmetric unit)のみ含まれているから です。
そこで、場合によっては2量体の状態でタンパク質構造を表示してみたいということがあると思います。PyMOL 1.8からはこのBiological Unitを考慮した構造のロードが簡単に行えるようになりましたので、それを1EW2
ファイルに対してやってみます。以下の画像のように、[File]->[Get PDB...]を選び、続くウィンドウの画面でIDとAssembly情報を入力します。
これにより、1EW2の構造がホモ2量体構造で表示されました。
このチェインを別々に扱うためには、右側のオブジェクトパネルから1EW2A
のAボタンをクリックし、[state] -> [split]を開いてクリックします。
すると、1EW2A_0001
, 1EW2A_0002
というオブジェクトが新たに生成されます。ここまでくれば1EW2A
オブジェクトは不要ですので、最後に1EW2A
のAボタンから[delete object]を押せば完了です。
以上がBiological Unitを考慮した分子構造のロード操作ですが、これは一例であり、他にも同等の操作を達成する方法があります。コマンドラインで上記の操作を達成するには
set assembly, 1
fetch 1ew2
split_states 1ew2
delete 1ew2
でOKです。タイピングが早ければこちらの方が素早くできるでしょう。set assembly, 1
に相当する設定変更は、上部メニューの[Setting] -> [mmCIF File Loading] -> [Load Assembly (Biological Unit)]にチェックを入れることでも可能です。
配列の表示
分子構造をロードしたら、ここでPyMOL画面の右下に注目してみます。ここには様々な記号や文字が並んでいますが、ここのSボタンを押してみましょう。
このSボタンを押すと、画面に分子の配列情報が現れます。もう一度Sボタンを押すと文字列が隠れます。
ここに表示される配列の文字列は、タンパク質の場合にはA, C, Dなどアミノ酸の1文字表記、核酸構造の場合にはDA, DT, DG, DCで2文字表記となっています。RNAの場合には1文字表記ですが、タンパク質の場合と異なり、各文字にスペースが挿入されて表示されます。リガンドやその他のについては3文字表記で表されることが多いです。これらの表記は、ロードする構造ファイル内の記述に依存してします。
配列の表示・非表示は、上部メニューの[Display]→[Sequence]にチェックを入れたり外したりすることでも行うことができます。
以下に、配列表示ウィンドウ上でのマウス操作を方法を記します。macOSの場合はCtrlはCmdキーになります。
- 左クリック+ドラッグ
- 分子の一部を選択した状態にできます。選択した箇所にはハイライトが付きます。タンパク質の場合は残基ごと、核酸の場合は塩基ごと、それ以外の場合は1分子ごとに選択します。
- Shift+左クリック
- 上記の選択範囲を拡張・縮小することができます。クリックボタンを押し続ける必要はありません。
- Ctrl+Shift+左クリック
- 選択範囲を拡張・縮小しつつ、視点を選択範囲にセンタリングしてくれます。
- ホイールクリック
- クリックした箇所に視点をセンタリングします。
- Ctrl+ホイールクリック
- クリックした箇所に視点を大きくズームします。
- Ctrl+ホイールクリック+Shift+ドラッグ
- Shift+ドラッグで選んだ選択範囲に向かって視点を大きくズームします。
- 右クリック
- 選択されていない箇所で右クリックをすると、その位置に存在する配列を選択し、それについての設定変更メニューを表示します。
- すでに選択されている箇所で右クリックをすると、選択範囲に対する設定変更メニューを表示します。
オブジェクトパネル
PyMOL画面の右側には、ロードしている分子構造について様々な操作を行えるパネルが表示されています。
画像の例ではall
と1alk
が表示されています。また、画面上の分子構造をクリックし選択すると、(sele)
という表示も追加されます。このパネルに表示されている文字のことをオブジェクトと呼びます。その右についているA, S, H, L, Cという文字のボタンには、対応するオブジェクトについての表示設定変更・編集を行うためのメニューがたくさん格納されています。それぞれの文字が表す大まかな意味は以下の通り。
- Action(A)
- 視点の移動や分子についての編集、一括設定変更、構造のアラインや名前変更など、オブジェクト全体に関わる様々な設定を行うためのメニューが格納されています。
- Show (S)
- 分子構造の表示形式をONにするためのメニューが格納されています。
- Hide (H)
- 分子構造の表示形式をOFFにするためのメニューが格納されています。
- Label (L)
- 分子構造のすぐそばに表示する文字ラベルを追加するためのメニューが格納されています。
- Color (C)
- 分子構造の色変更を行うためのメニューが格納されています。
分子構造の表示形式のON/OFF (Show and Hide)
タンパク質の構造情報をロードしたとき、デフォルト設定では、20種類のアミノ酸についてはCartoon表示形式と呼ばれる漫画風な表現形式になっています。このCartoon表示形式では、αヘリックスを形成している部分については大きな螺旋で描かれ、βストランド(βシート)を形成している部分については、進行方向に向かって矢印が伸びる表現で描かれています。
タンパク質を構成するアミノ酸を1つ1つ強調して見てみたい場合には、Cartoon, Line, Stick, Ribbon, Sphere, Dot, Surface, Mesh 表示などの、他の表示形式をONにするという操作を行います。この表示形式の設定は、各オブジェクト構造について個別に行います。例えば、先程ロードした1alkのタンパク質オブジェクトについて他の表示形式をONにしたい場合は、図のように、1alkのSマーク部分(図の赤四角部分のボタン) をクリックします。反対に、OFFにしたい場合はHマーク部分(図の青四角部分のボタン) を押し、各表示形式を選択することでOFFになります。
各表示形式のサンプルを以下に示します。
-
Cartoon表示
- タンパク質やDNA・RNAを表示するときにおすすめです。タンパク質の場合はαヘリックスやβシートが先述のように螺旋や矢印で示されます。DNA/RNAが存在する場合には、各塩基の概形や5'末端→3'末端のつながりが強調して表示されます。
-
Line表示
- 各原子間の結合が細い線で表示されます。上の図では、左にLine表示だけをONにしたものを、右にCartoon表示形式をLine表示とともにONにした場合を右図に示しています(以降、見やすくするためにCartoon表示をONにした上で、他の表示形式を載せます)。
- 各原子は構造情報ファイルの座標のATOMまたはHETATMレコードに書かれている座標情報(\( x, y, z \)の3次元ベクトル)をもとにプロットされ、各原子座標の距離が一定以内にあれば、自動的にその近い2点が直線で結ばれて表示される仕様となっていることに気をつけてください。
-
Stick表示
- 各原子間の結合がLine表示よりも太いStickで表示されます。Stickは円筒状に表現されます。
-
Ribbon表示
- タンパク質または核酸の鎖部分のみを単純な線で表現する形式です。
-
Sphere表示
- 各原子を大きな球体で表現します。Line, Stick表示と異なり、各原子間は直線で結ばれません。
-
Dot表示
- Sphere表示の表面を点で表現したような形式です。
-
Surface表示
- 各原子の表面を滑らかに描画する形式です。分子の大きさによっては、レンダリングに少し時間がかかります。
-
Mesh表示
- Surface表示と似ていますが、表面の描画を網掛けで表現します。
ラベルの設定(Label)
ラベルを利用することで、分子の周辺に文字を表示させることができます。活性部位周辺に存在する残基の名前と番号を表示させるだけでなく、任意の文字列を表示させることができます。
分子構造の表示形式のON/OFF (Show and Hide)のときと同様に、オブジェクトパネルから各オブジェクトに対して個別にラベルの設定を行うことができます。特に、選択範囲(sele)
に対して表示させることが多いでしょう。
ラベルの設定変更はGUIの上部メニューから、Setting -> Labelのところにあり、ラベルの表示サイズやフォント指定、色の指定などが可能です。下記のサンプルではフォントサイズを28にしてあります。
ラベルの位置変更は3-Button Editing Modeにしてから、ラベルの上でCtrl(macOSの場合はCommand)を押しながら左クリックでドラッグさせることで任意の位置に移動させることができます。下の例ではASP-101を右に移動させています。
clear
すでに表示されているそのオブジェクトについてのラベル表示を消去します。消去するのではなく表示を一時的に場合は、Hideメニューからlabelを選択しましょう。
residues
選択されたオブジェクトについて、アミノ酸と残基番号の情報を(アミノ酸3文字表記)-(残基番号)
の形で表示します(例:MET-1)。Cα原子の上に表示される設定になっています。
residues (one letter)
選択されたオブジェクトについて、アミノ酸と残基番号の情報を(アミノ酸1文字表記)(残基番号)
の形で表示します(例:M1)。Cα原子の上に表示される設定になっています。
chains
選択されたオブジェクトのN末端とC末端の番号を持つ残基(リガンドが存在する場合、それも含む)のそばにchain <chain ID>
の形で表示します(例: chain A)。
segments
すでに使用が廃止されたsegment identifierの情報を、chainsと同様に表示します。詳しくはAppendix: 用語#セグメントを参照してください。今となってはあまり使うことはないと思います。
atom name
原子名の名前でラベルを作成します。.pdb
形式ファイルの場合、ATOM
, HETATM
レコードの13-16列目に含まれる文字列がatom nameとして定義されており、この文字列を返します。
タンパク質アミノ酸やDNA, RNAの場合は命名規則があるため、慣れてしまえばatom nameの意味を理解しやすいと思います。13-14列目には右詰めで原子名を表します。例えば鉄原子は13-14列目を使ってFEの文字が入っていますが、炭素原子は14列目にCの文字を入れ、13列目は空白となっています。しかし、水素原子の場合は13-16列目の4文字分を最大限使って記述する場合があり、この場合は13列目から記入することになっています。
以下ではよく登場するatom nameの一例です。
atom name | 意味 |
---|---|
CA | 主鎖のα位の炭素 |
N | 主鎖のN末端側窒素原子 |
C | 主鎖のC末端側炭素原子 |
O | 主鎖のC末端側酸素原子 |
CB | 側鎖のβ位の炭素 |
CG | 側鎖のγ位の炭素 |
CD | 側鎖のδ位の炭素 |
CE | 側鎖のε位の炭素 |
CZ | 側鎖のζ位の炭素(チロシンなど) |
OH | 側鎖のη位の炭素(チロシンなど) |
主鎖に近い原子の個数順にβ→γ→δ→ε→ζ→ηと付ける命名規則があります。複数原子が存在するようなアミノ酸(ヒスチジン)などはND1, CD1, CE2, NE2というふうに番号をつけて区別します。
element symbol
原子名を表記します。
residue name
3文字表記の残基名を表記します。.pdb
ファイル形式におけるATOM
, HETATM
レコードの18-20列目の文字列を返します。存在しない場合は空白になります(以下同様)。
one letter code
1文字表記の残基名を表記します。
residue identifier
残基のresidue IDを表記します。.pdb
ファイル形式におけるATOM
, HETATM
レコードの23-26列目の文字列を返します。
chain identifier
残基のChain IDを表記します。.pdb
ファイル形式におけるATOM
, HETATM
レコードの22列目の文字列を返します。
segment identifier
残基のSegment IDを表記します。詳しくはAppendix: 用語#セグメントを参照してください。
b-factor
各原子の温度因子(b-factor; temperature facotr)を表記します。.pdb
ファイル形式における61-66列目の文字列を返します。
occupancy
各原子の重み因子を表記します。.pdb
ファイル形式における55-60列目の文字列を返します。結晶中では基本的に構造は繰り返しになるため、どの場所を見ても同じ座標がループしている事が多く、この値は1.00
であることが多いのですが、時々その繰り返し構造単位の中に、1より大きなn通りの配座を持っていることがあります。このとき、ここには0~1の小数値が入ります。例としては PDB: 1A6MのGLN-8が0.57
, 0.43
の値を持つ2通りの配座を持ち、同様にTYR-151も0.50
, 0.50
で2通りの配座を持っています。この場合、PyMOLの表示上でも2通りの残基配座が見えます。画像はPDB: 1A6MのGLN-8の例を示しています。
vdw radius
各原子のファンデルワールス半径の値(Å)を表記します。基本的には原子の種類によって固定の値です。
Other properties
formal charge
各残基についてシステムで定義されている電荷を表記します。例としてLys, Arg残基の場合は+1
を、Glu, Asp残基の場合には-1
を表示します。
partial charge
各原子について計算された部分電荷(partial charge)を表記します。これは通常のpdb
, mmCIF
といった構造ファイルには含まれていないため、0.00
と表示されてしまいますが、pqr
やmol2
ファイル形式をロードしたときに真価を発揮します。
タンパク質構造の場合は構造ファイルをいったんロードした後、APBSプラグインを使った表面電荷表示の手順に従って処理を進めます。このときにオブジェクトパネルにrun01
->prepared01
というオブジェクトが生成されるので、prepared01
オブジェクトのラベル設定でpartial chargeを選択すると図のように部分電荷が表示されるようになります。
より正確に言えば、これはPDB2PQRというソフトウェアによって分子動力学シミュレーションソフトウェアAMBERが配布している力場AmberFFに基づいて指定されており、各アミノ酸の原子ごとに固有の値を指定してくれます。
実態としてはPQRファイルの記述様式にのっとり、x, y, z座標の次にくるchargeの値を表記しています。
mol2形式の場合でも対応しています。
GaussianやGAMESSなどの量子化学計算ソフトウェアで計算した部分電荷を図にして見てみたいときに特に有効です。
elec. radius
partial chargeのときと同様に、PQRファイルのオブジェクトの場合に効果を発揮します。PQRファイル内のx, y, z座標, chargeの次にくるradiusの値を表記しています。vdw radiusとは異なります。
text type, numeric type
PyMOL 2.0以降は廃止されているらしく、使われていないようです(詳細不明)
stereochemistry
PyMOL 2.2から実装されました。schrodingerのソフトまたはrdkitモジュールのインストールが求められるようです。不斉炭素原子の部分にラベルを置いてくれる機能?
atom identifiers
rank
rankを表記します。rankとは構造ファイルの上から順にATOM
, HETATM
レコードを取得したときの通し番号のことであり、これのみ0始まりとなっています。
“rank” selects atoms based on their position in the source file, starting with zero as the first number.
ID
IDを表記します。IDとは構造ファイルから忠実に取得したATOM IDのことであり、pdb
ファイルフォーマットで言えば7-11列目に存在する番号のことを指します。この値は整数値でなければなりません。
“id” selects atoms based on the atom identifier number from the source file, which must be a integer.
index
Indexを表記します。indexはrankと似ていますが、順に表示するのとは異なり、PyMOL内部で番号を順に振り直したのがindexです。例えばある1つのアミノ酸残基があったとき、その残基の中で登場する原子の順番をどのように入れ替えても、index表記ではN→CA→C→O→CB→……の順に若い数字を付けていきます。
“index” selects atoms based on their internal PyMOL object atom indices starting with one as the first number.
色の設定(Color)
色の設定の仕方は自由です、センスの見せ所です……とは言うものの、実はタンパク質の構造を毎日見るであろう構造生物学専門の研究者にとっては、ある暗黙の了解があります。それらを踏まえた上で、PyMOLのカラーリング機能を紹介していきましょう。
色設定の暗黙の了解
以下のルールだけは遵守しましょう。
- 常に酸素原子は赤色, 窒素原子は青色, 硫黄原子はオリーブ(olive)色で表示する。
- 存在する場合、水素原子は白色で表示。
- よって炭素原子は、上記以外の色を使う。
メチオニン残基の表示の例(炭素原子はgreen)
PyMOLには、酸素・窒素・窒素・水素原子を上記の色ルールで描画してくれるメニュー("by element")が存在しますので、これを使うことを強く推奨します。
正確には、PyMOLでは酸素原子はカラーコードで#FF7C7C (255, 76, 76) [1.0, 0.3, 0.3], 窒素原子は#3333FF (51,51,255) [0.2, 0.2, 1.0], 硫黄原子は#E7C640 (231, 198, 64) [0.9, 0.775, 0.25]がデフォルトで割り当てられているため、用意されているカラーパレットを使う限りにはこれらの色と完全にかぶることはないのですが、それでもこれらに近い色を使うと紛らわしいので、使用は控えましょう。また、以下で見るように、用意されているカラーパレットの中にはすべての原子を同一で塗るものもあるので、どうしてもそれらの色を使いたい場合は、そのカラーパレットを選択した後に"by element"メニューの一番上のカラーリング(通称"color by hetetoatom")を選択してあげましょう。
by element
メニューを開いていただけると一目瞭然、C(炭素)の色だけが変わっており、H, N, O, S, 他にも様々な原子について、「暗黙の了解」の色で固定されています。反対に炭素原子の色を自由に選べることで、多量体タンパク質や大きな複合体に対しても自由に色を塗り分けられることができます。基本的には、このカラーパレットから選びましょう。
見落としがちですが、下の方にあるset 2〜set 6にも、様々な色が用意されています。set 6のみ水素原子の色が白色でないものが用意されていますが、あまり使うことはないでしょう。
一番上のメニューではCが表示されておらず、HNOSと書かれていますが、これは炭素以外の原子の色を既定色に変更するというとても便利なカラーパレットです("color by heteroatom")。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
util.cnc 1alk # color by heteroatom
by chain
by chain (elem C | */CA, | 無印)
`1つの生体分子オブジェクト内に複数のchainが存在している場合、各chainごとに異なる色で塗り分けてくれます。
elem C
の場合、チェイン内の全炭素原子に対して色の変更を行い、他の種類の原子には色の変更を行いません。*/CA
の場合、主鎖のCα原子のみ色の変更を行い、残りの原子には色の変更を行いません。無印
は全原子に対して色の変更を行います。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
util.color_chains("(1alk and elem C)") # elem C
util.color_chains("(1alk and name CA)") # */CA
util.color_chains("(1alk)") # 無印
chainbows
各chainについて、N末端(5'末端)からC末端(3'末端)にかけて青色から赤色のきれいなグラデーションができるように色を塗り分けてくれます。タンパク質の場合、この配色ならば、表示された色からアミノ酸配列の位置と構造上での位置の対応関係を把握しやすいため、この配色になっている論文を見たことがある方も多いでしょう。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
# どちらでもOK
util.chainbow 1alk
util.chainbow("(1alk)")
by segi (elem C | 無印)
segment identifierによる色分けを行います。
あまり詳しく調べていないのですが、segment identifierは現在仕様が廃止されつつあるのと、カラーリングが赤・青なので、あまり使うことはないでしょう。
by ss (By Secondary Structure)
タンパク質の二次構造(ヘリックス・シート・ループ)構造を基準に色分けしてくれます。自由に選びましょう。
コマンドで行う場合で、ヘリックスを赤、シートを黄、それ以外を緑に塗りたいときは、以下のように打てばOKです。
color red, ss h
color yellow, ss s
color green, ss l+''
または、
util.cbss("1alk","red","yellow","green") # オブジェクト1alkについて行いたい場合
by rep (By Representation)
表示形式(representation)ごとに色分けを表示させることができます。これ以外の他のメニューからの色変更は、全表示形式が一括で色変更されてしまうので、うまく使い分けましょう。例えば、by chainで緑・青に色分けをした後に[show]→[surface]としてsurface表示をした状態ですと、
という表示になりますが(コマンドでset transparency, 0.5
とし、Surface表示の透明度を変更しています。)、続いて[by rep]→[surface]→[grays]→[white]とすると
このようにSurface表示だけ白くすることができます。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
# どちらでもOK
set surface_color, white, 1alk
cmd.set("surface_color", "white", '1alk', quiet=0)
quiet=1
とすると処理終了時にメッセージがログ欄に表示されなくなります(プログラミング用)。surface_color
の部分をline
やcartoon
などに変更すればその表示形式に関わる色のみ変更できます。
spectrum
rainbow (elem C | */CA, | 無印)
オブジェクト全体を虹色表示してくれます。[by chain]の[chainbow]と違い、chainごとに虹色グラデーションをつけてくれるわけではないことに注意してください。elem C
, */CA
, 無印
の意味は上と同様です。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
# elemCの場合。どちらでもOK。
spectrum count, selection=1alk and elem C
cmd.spectrum("count",selection="(1alk)&elem C")
# */CAの場合
spectrum count, selection=1alk&*/CA
cmd.spectrum("count",selection="(1alk)&*/CA")
# 無印
spectrum count, selection=1alk, byres=1
cmd.spectrum("count",selection="1alk",byres=1)
b-factors (無印 | */CA)
結晶構造解析法で構造決定された構造ファイルの場合、b-factor(温度因子) という値が各原子に対して割り当てられています。簡単に言えば、この値は その原子のゆらぎやすさ を表しており、概して分子内部に存在している原子ほど値が小さく、外側に存在する原子ほど大きくなっています。この色表示ではb-factorの値が小さいほど青色に、大きいほど赤色になるよう表示されます。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
# 無印の場合。どちらでもOK。
spectrum b, selection=1alk, quiet=0
cmd.spectrum("b", selection=("1alk"), quiet=0)
# */CAの場合。どちらでもOK。
spectrum b, selection=1alk&*/CA, quiet=0
cmd.spectrum("b", selection="((1alk)&*/CA)", quiet=0)
表示形式のプリセットの中には、b-factorごとに色と太さを変えてくれるオプションもあります。
area (molecular | solvent)
残基あたりのsurface area(表面積)を計算し、それに応じた値でグラデーション色付けをしてくれます。
プログラムの仕様上はget_area
コマンドを走らせて、その値に応じた色付けを行っているようです。しかし、solventの方も含めて、かなり雑な計算なのでまったく厳密ではないようです(参考:https://pymolwiki.org/index.php/Get_Area)。Solvent accessbile surface areaを計算したい場合は、別の厳密なソフトウェアで計算した値を使うことを推奨します。
コマンド入力はこちら(オブジェクト1alk
について行う場合)
# molecularの場合(デフォルト)。
util.color_by_area("1alk","molecular")
# solventの場合
util.color_by_area("1alk","solvent")
auto (elem C | all | by obj (elem C) | by obj)
自動で色付けをしてくれます。複数の生体分子オブジェクトがPyMOL上で開かれている場合に有効です。上2つは、押すたびに色が入れ替わっていきます。緑→シアン→黄→紫……の順に入れ替わります。
下2つのby obj
がついているものはロードされている生体分子オブジェクトの上から順に色を緑→シアン→黄→紫……の順で塗り分けてくれます。特に、all
を選択してby obj
を押せば一発で見慣れた色分けになってくれるので便利です。
コマンド入力はこちら(全オブジェクトについて行う場合)
cmd.color("auto","(all) and elem C")
cmd.color("auto","all")
util.color_objs("(all and elem C)",_self=cmd)
util.color_objs("(all)",_self=cmd)
auto以下に存在する色分けメニューについて
autoメニューの下には様々なカラーパレットがあります。自由に選択して好きな色を選びましょう。全表示形式(line, stick, surface...)について同一の色を適用します。
コマンド入力はこちら(オブジェクト1alk
について赤色で塗る場合)
# PyMOL 2.3時代まで
util.color_deep("red", '1alk', 0)
# PyMOL 2.4以降(予定)
color_deep red, 1alk
マウス操作
PyMOLを含む分子描画ソフトウェアの最も重要なユーザーインターフェースがマウス操作です。何はともあれ、PyMOLを使うのであればこれを先に読んでマスターしておきましょう。
PyMOLのマウス操作は、外部デバイスとしてのホイール付きマウスを前提に設計されており、左クリックボタン、右クリックボタンとホイールクリックボタンの3ボタンをすべて使うことがデフォルト設定となっています。しかし、1人1台のノートパソコンを持つことも珍しくなった現在では外部のマウスを接続して使わずに、備え付けのタッチパッドを使って操作することが多くなりました。タッチパッドはPyMOLの求める3ボタン式になっていないことが多く、ホイールボタンが存在していないためPyMOLのユーザーは不便に感じることがあると思います。こうした状況に対応するべく、PyMOLには実は2ボタンモードと1ボタンモードが用意されています。これらのモードの説明を交えつつ、PyMOLのマウス操作について詳しく述べていきます。
操作モード
PyMOLには3ボタンモード、2ボタンモード、1ボタンモードが用意されています。これらのモードは下記のようにさらに細かいモードに分かれます。
- 3ボタンモード
- 3 Button Viewing Mode(初期設定)
- 3 Button Editing Mode
- 3 Button Motions Mode
- 3 Button Lights Mode
- 3 Button All Mode
- 2ボタンモード
- 2 Button Viewing Mode
- 2 Button Editing Mode
- 1ボタンモード
- 1 Button Viewing Mode
3ボタンモードはホイールボタン付きマウスを利用している場合に最も効果を発揮します。2ボタンモードはタッチパッドのみの環境で、Macbookなどを含むノートパソコンではこの設定にしておくことを推奨します。ここで、それぞれのボタンモードの中にViewing, Editingモードなどが存在していることも覚えておきましょう。これらのモード間ではクリック時の操作が異なります。基本的に、表示した分子を観察する場合はViewingモードを、分子の座標に変更を加える場合にはEditingモードを利用します。
各モードがどのようなマウス操作に対応しているかを理解する前に、まずはPyMOL画面の右下のこの部分に着目します。
この赤い四角の部分の一番上にはMouse Mode 3-Button Viewingと書かれています。これは3 Button Viewing Modeと同じ意味です。ここで、赤い四角の範囲のどこかをクリックすると
Mouse Modeが3-Button Editingという表示になりました。これは3 Button Editing Modeに切り替わったことを表しています。また、青い四角の部分も、Picking Atoms (and Joints) に変化しました。最初のうちは、このViewing ModeとEditing Modeの2つについて理解しておけば十分だと思います。Lights ModeとAll Modeについては慣れてきたら試してみましょう。2つのモードは上記の赤い四角の部分を押すことで入れ替えることができます。
この画面についてもう少し詳しく見ていきます。ここにはクリックするマウスボタン(L, M, R, Wheel)と補助キーとの組み合わせ(Shift, Ctrl, Ctrl+Shift...)を組み合わせることで、様々なマウス操作が行えることが英語で書かれています(macOSの場合、CtrlはCommand ⌘ キーです)。最上段は対応するキーを押しながらマウスを動かす操作を表しています。例えば、3-Button Viewing Modeにおいては左クリックを押しながらマウスを動かすことで回転操作(Rota)、ミドルクリック(ホイール)を押しながらマウスを動かすことで並進操作(Move)が行えます。ここの表記は簡単なものですが、もし忘れてしまってもここに着目すれば、操作を思い出すことができるでしょう。
各モードにおける操作一覧
各操作の詳細は次項で示します。macOSではCtrlキーはCommandキー(⌘キー)になります。
3 Button Viewing Mode
左ボタン | ホイールボタン | 右ボタン | ホイールスクロール | |
---|---|---|---|---|
ボタンを押しながらドラッグ | 回転(Rota) | 並進(Move) | ズームイン・アウト(MovZ) | スラビング(Slab) |
shiftキー | 選択範囲に追加(+Box) | 選択範囲から除去(-Box) | クリッピング(Clip) | スラブの移動(MovS) |
Ctrlキー | 並進(Move) | 原子ピッキング(PkAt) | 1原子ピッキング(Pk1) | スラブに対する視点の移動(MvSZ) |
Ctrl+Shiftキー | 選択(sele) | Origin指定(Orig) | クリッピング(Clip) | ズームイン・アウト(MovZ) |
シングルクリック | 選択範囲追加・除去(+/-) | センタリング(Cent) | メニュー表示(Menu) | |
ダブルクリック | メニュー表示(Menu) | - | 原子ピッキング(PkAt) |
3 Button Editing Mode
左ボタン | ホイールボタン | 右ボタン | ホイールスクロール | |
---|---|---|---|---|
ボタンを押しながらドラッグ | 回転(Rota) | 並進(Move) | ズームイン・アウト(MovZ) | スラビング(Slab) |
shiftキー | オブジェクトの回転(RotO) | XY軸方向への移動(MovO) | Z軸方向への移動(MvOZ) | スラブの移動(MovS) |
Ctrlキー | 原子の移動(MovA) | 選択範囲追加・除去(+/-) | 二面角をピッキング(PkTB) | スラブに対する視点の移動(MvSZ) |
Ctrl+Shiftキー | Z軸方向への移動(MvAZ) | Origin指定(Orig) | クリッピング(Clip) | ズームイン・アウト(MovZ) |
シングルクリック | 原子ピッキング(PkAt) | センタリング(Cent) | メニュー表示(Menu) | |
ダブルクリック | 原子の移動(MovA) | ドラッグモード(DrgM) | 二面角をピッキング(PkTB) |
2 Button Viewing Mode
左ボタン | ホイールボタン | 右ボタン | ホイールスクロール | |
---|---|---|---|---|
ボタンを押しながらドラッグ | 回転(Rota) | -- | ズームイン・アウト(MovZ) | -- |
shiftキー | 1原子ピッキング(Pk1) | -- | クリッピング(Clip) | -- |
Ctrlキー | 並進(Move) | -- | 原子ピッキング(PkAt) | -- |
Ctrl+Shiftキー | 選択(sele) | -- | センタリング(Cent) | -- |
シングルクリック | 原子ピッキング(PkAt) | -- | メニュー表示(Menu) | |
ダブルクリック | メニュー表示(Menu) | -- | センタリング(Cent) |
操作の詳細
回転 (Rota)
マウスの左ボタンを押しながらマウスを動かす(ドラッグ) すると、表示されている分子を回転させることができます。
並進 (Move)
マウスのホイールボタンを押しながらドラッグ すると、表示されている分子を視点に対して平行に移動させることができます。
ズームイン・アウト (MovZ)
マウスの右ボタンを押しながらマウスを前後にドラッグ、またはCtrlとShiftキーを押しながらマウスのホイールを上下 させると、分子構造を拡大・縮小することができます。
選択 (+/-)
表示されているオブジェクトの原子の上でマウスの左ボタンを押す と、四角のマークが付きます。
この四角マークは、現在選択されている原子の範囲を示しています。この左クリックによる選択はクリックするたびに選択範囲に追加され、もう一度押すと選択範囲から外されます。
選択範囲に追加/除去 (+Box/-Box)
選択範囲の追加または除去を行います。+Box(Shiftを押しながらマウスの左クリック&ドラッグ) では画面上に黒い四角が現れ、ボタンを離すと、その四角で囲まれた部分が選択範囲に追加されます。反対に、-Box(Shiftを押しながらマウスのホイールクリック&ドラッグ) では四角で囲んだ範囲を選択範囲から除去することができます。同様の操作を繰り返すことも可能です。
センタリング (Cent)
表示されているオブジェクトの原子の上でマウスのホイールボタンを押す と、その原子が画面中央に来るように視点が移動します。また、回転操作の中心もその点に移動します。
Origin指定 (Orig)
表示されているオブジェクトの原子の上でCtrlとShiftを押しながらマウスのホイールボタンを押す と、その原子を回転中心の原点(origin)に指定することができます。上記センタリングのときと異なり、視点は移動しません。
メニュー表示 (Menu)
マウスの左ボタンをダブルクリック または 右ボタンをクリック で、メニューを開きます。メニュー内容はクリックした位置によって内容が変化します。
何もない箇所でクリックすると[Main Pop-Up]メニューが表示されます。
オブジェクトの上でクリックすると、クリックした場所に存在する原子についての設定変更を行うメニューが表示されます。
原子ピッキング(PkAt/Pk1)
オブジェクト上の原子の上でCtrlボタンを押しながらホイールクリック、またはマウス右ボタンのダブルクリックを行うと、その原子をピッキングした状態になります(PkAt)。
このピッキング状態は先述の選択範囲とは異なる選択形式で、図のような球体のマーカーが付きます。このピッキングは画面上に同時に4原子まで選択することができ、各ピッキングマーカーは図のように二重、三重、四重の球体マーカーで示されます。
Ctrlボタンを押しながら右クリック (Pk1) の場合では、上の操作と異なり、1つめの原子ピッキングのみを行います。ピッキングされた原子が2つ、3つ、4つになると、自動でそのピッキングされた原子についての距離(distance)、角度(angle)、二面角(dihedral) を表示してくれます。
クリッピング(Clip)
Viewing ModeでShiftとマウスの右ボタン(またはCtrl+Shift+マウス右ボタン)を押しながらマウスを上下左右に動かす と、分子の内部を覗けたり霧をかけたりすることができます。分子内部の一部の領域を強調した画像を取りたいときに作ります。
この機能は2枚のクリッピング平面(Clipping plane) によって調節しています。マウスの上下の動きは前面のクリッピング平面(front clipping plane)の位置を、左右の動きは背面のクリッピング平面(rear clipping plane)の位置を調節できます
図解
画面上にはこの2枚のClipping Planeの間に存在する領域だけが表示されます。
マウスを画面下に移動させるとfront clipping planeは視点から見て奥へ移動し、分子の内部が見えるようになります。反対に、マウスを上へ移動させると、front clipping planeは手前に移動します。
マウスを左に移動させるとrear clipping planeが視点から見て奥へ移動します。反対に手前に移動させると、rear clipping planeが手前に移動し、分子の奥側が霧がかかって徐々に見えなくなります。
霧は画面上部のメニューの[Display]→[Depth Cue(Fogging)]のチェックでON/OFFを選択できます(デフォルトはONです)。
スラビング(Slab)
スラブとは英語で厚板、平板という名詞、または「平板にする」という動詞です。PyMOLにおいてスラブ(Slab、Visible Slabとも)とは、上述の2枚のクリッピング平面の間に挟まれた可視化領域のことを指します。
Viewing Modeでマウスホイールを回転させる ことで、スラブの厚さを調節することができます。クリッピングとともに、分子構造の内部領域をみたい時に有用です。
画面上部メニューの[Display]→[Clip]には[8 Angstroam Slab]を始めとして30 Åまでの厚さのスラブを選ぶことができます。[Nothing]を選択した場合には、全原子が含まれるように自動的にスラブの厚みを調節します。
スラブの移動(MovS)
Viewing ModeでShiftを押しながらマウスホイールを回転させる と、スラブ領域を、その厚みを保ったまま手前・奥に移動させることができます。効果を実感したい場合は、例として[8 Angstroam Slab]設定をした直後に使ってみるとわかりやすいでしょう。
スラブに対する視点の移動(MvSZ)
Viewing ModeでCtrlを押しながらマウスホイールを回転させる と、スラブ平面に対して視点を移動させることができます。視点がスラブ内部に入ることもできます。
Editing Mode専用コマンド
以下ではEditing Modeで扱う操作方法について記述します。Editing Modeはオブジェクト・原子の座標自体に変更を加えることが多いため、このモードで操作するときは注意が必要です。もし誤って座標を動かしてしまった場合、数回であればCtrl-zでUndo(もとに戻す)ことが可能です。
オブジェクトの回転(RotO)・XY軸方向への移動(MovO)・Z軸方向への移動(MvOZ)
EditingモードでShiftキーとマウスの左ボタン・ホイールボタン・右ボタンを押しながらマウスを移動させることで、オブジェクトの座標に対しそれぞれ回転・XY軸への並進・Z軸へ移動操作を行うことができます。特に、複数のオブジェクトが存在する場合に効果がわかりやすいです。以下の例では緑色と青色で別々のオブジェクトとした上で、青色オブジェクトに対して操作を適用しています。
原子の移動(MovA)・Z軸方向への移動(MvAZ)
EditingモードでCtrlキーとマウスの左ボタンを押しながらマウスを移動させることで、マウスカーソル上に存在する原子の座標を移動させることができます。Ctrl+Shiftキーとマウスの左ボタンを押しながらだとZ軸方向への移動が行えます。下の例では、オレンジ色の原子(リン酸イオンPO4のリン原子)について操作を適用しています。
フラグメントの回転(RotF)・移動(MovF)・Z軸方向への移動(MvFZ)
Editingモードで特定の原子を左クリックすると原子がピックされた状態になります。このとき操作メニューが変化して、MovF, MvFZが現れるようになります。RotF(Shift+左クリック)とMovF(Shift+ホイールクリック)はピックされた原子と結合している原子のまとまり(フラグメント)を回転させたり、平行移動させたりすることができます。この操作は必ず選択されたフラグメントの上でShiftキーとクリック入力を行う必要があります。
MvFZ(Shift+右クリックしながら上下にドラッグ)はピックされたフラグメントを手前または奥に移動させることができます。
二面角をピッキング(PkTB)
Editingモードで描画されている結合に対してCtrlキーとマウスの右ボタンを押しながら移動させることで、結合の二面角を変更することができます。
2原子を結ぶ結合線上のうち、それぞれの原子に近い位置で操作を実行することで、それぞれ回転される対象が異なることに注意します。 図において、結合線の左半分にマウスカーソルを置いた状態で操作を適用した場合はこの残基の先端のみが回転します。
しかし、結合線の右半分にカーソルを置いた状態で操作を適用すると、タンパク質の方が回転します。
分子構造をドラッグモードにする(DrgM)
Editingモードでホイールボタンをダブルクリックすると、オブジェクト内のひとつながりの分子構造(Molecule)について"drag"状態にします。このドラッグモードではこれまでのカメラ操作のような感覚で分子の座標を変更することが可能になります。
このドラッグモードにするとオブジェクトパネルの下側に専用のメニューが現れます。PDB: 1alkの場合で図の右側の構造についてこの操作を実行すると、Mgイオンを除いた右半分のChainだけが選択された状態になります。これは上述のひとつながりの分子構造に対してのみ適用されるからです。
さらに、このドラッグモードではShiftキーを押しながらのマウス操作方法がRotD, MovD, MvDZに変化します。このDはDraggedを表しており、ドラッグモードとなっている選択範囲のみに対してそれぞれ回転操作・XY軸方向への移動・Z軸方向への移動を行うことができます。
セッションの保存
セッションとは、一連のインタラクティブ操作のことを指します(コンピュータ用語)。PyMOLにおいては、開いてから現在に至るまでの作業記録、と考えることができます。つまり、セッションの保存を利用すると作業状態をファイルに保存しておくことができ、あとでその状態を復元することができます。この機能を利用すれば、論文の図を作成している最中に様々な設定を試すことができたり、PyMOLの画面の状態を他の人に表示して確認してもらうということも可能になります。
やり方は簡単で、上部メニューの[File]から[Save Session As...]を選び、ファイル名を指定してSaveボタンを押して保存するだけです。
Sessionのファイル形式にはpse形式とpsw形式の2つがあります。基本的にはpseファイル形式の方で保存する方がよいでしょう。pswファイルで保存した場合は、そのファイルを開くときに全画面表示が標準になります。例えばデスクトップにfoo.pse
というファイル名で保存したい場合は以下のように入力して[save]ボタンを押します。
こうして保存されたセッションファイルを再度PyMOLからロードすれば、元の作業状態に戻すことができます。
※ 一度セッションを保存しておけば、以降は[Save Session]ボタンを押すことで同名のセッションファイルに上書きしてくれます。
構造ファイルのエクスポート
ロードされている構造ファイルの全部または一部を書き出して保存することができます。
上部メニューの[File]から[Export Molecule...]を選ぶと、保存メニューが現れます。
Selectionの部分はエクスポートする構造オブジェクトの範囲を示しています。enabledは現在オブジェクトパネルで表示をONにしている構造オブジェクトすべてを表します。右のプルダウンメニューには他にもall(ロードしている全構造オブジェクト)や個別の構造ファイルのオブジェクト名が含まれています。
Stateは1つのオブジェクトに複数の構造状態を持っている場合に、どの状態を保存するかを表しています。デフォルトは -1 (current) で、現在画面に表示されている状態のものを保存します。
対応している出力ファイル形式
デフォルトではPDBx/mmCIF (*.cif, *.cif.gz)
となっていますが、他にも画像のような様々なファイル形式に出力することができます。
保存メニューには他にも様々なオプションがあります。
Generic Options
Original atom order (according to "rank")
構造オブジェクトの保存時に、ATOM行の並び順を元のファイルの入力通りに並べるかどうかを設定します。例として元のファイルが
ATOM 1 CH3 ACE A 1 33.160 24.100 12.400 1.00 0.00
ATOM 2 HH31 ACE A 1 32.860 24.830 11.650 1.00 0.00
ATOM 3 HH32 ACE A 1 33.800 23.390 11.880 1.00 0.00
ATOM 4 HH33 ACE A 1 32.250 23.650 12.770 1.00 0.00
ATOM 5 C ACE A 1 33.910 24.800 13.510 1.00 0.00
ATOM 6 O ACE A 1 33.760 24.560 14.700 1.00 0.00
だったとしたとき、設定がOFFであればこの並び順は
ATOM 1 C ACE A 1 33.910 24.800 13.510 1.00 0.00 C
ATOM 2 O ACE A 1 33.760 24.560 14.700 1.00 0.00 O
ATOM 3 CH3 ACE A 1 33.160 24.100 12.400 1.00 0.00 C
ATOM 4 HH31 ACE A 1 32.860 24.830 11.650 1.00 0.00 H
ATOM 5 HH32 ACE A 1 33.800 23.390 11.880 1.00 0.00 H
ATOM 6 HH33 ACE A 1 32.250 23.650 12.770 1.00 0.00 H
という順に書き出されます。この並びはatom identifier
順になっています。一方、設定がONであればこの並び順は
ATOM 1 CH3 ACE A 1 33.160 24.100 12.400 1.00 0.00 C
ATOM 2 HH31 ACE A 1 32.860 24.830 11.650 1.00 0.00 H
ATOM 3 HH32 ACE A 1 33.800 23.390 11.880 1.00 0.00 H
ATOM 4 HH33 ACE A 1 32.250 23.650 12.770 1.00 0.00 H
ATOM 5 C ACE A 1 33.910 24.800 13.510 1.00 0.00 C
ATOM 6 O ACE A 1 33.760 24.560 14.700 1.00 0.00 O
のように、元のファイルの原子順に書き出されて保存されます。
コマンドラインでは set retain_order, [0,1]
で同様の設定を指定できます(0で無効、1で有効)。
参考: https://pymolwiki.org/index.php/Retain_order
PDB Options
これらのオプションは従来使われていたpdb
ファイル形式で出力するときのみ対応します。
Write multiple bonds as duplicate CONECT records
CONECTレコードを複数作成することで原子間の結合次数の情報をエンコードし、ファイルに書き出します。デフォルトではOFFです。ver. 1.6.1から実装されました。
コマンドラインでは set pdb_conect_nodup, [0,1]
で無視して保存するかどうかを指定できます(0で書き出す、1で書き出さない)。
Write CONECT records for all bonds
すべての原子間の結合の組み合わせ情報をCONECTレコードに書き出します。デフォルトではOFFです。
コマンドラインでは set pdb_conect_all, [0,1]
で同様の設定を指定できます(0で無効、1で有効)。
参考: https://pymolwiki.org/index.php/Pdb_conect_all
Write segment identifier (segi) column
segment identifierを書き出すかどうかを指定します。デフォルトではONです。segment identifierとはPDB formatにおいて73-76番目のカラムを利用した識別子のことです。かつて、同一chain IDにありながらある種の原子のグループごとに分けて記述したい場合に用いられましたが、今はChain IDで分けるのが主流となっています。segment identifierは現在廃止された仕様ですが、PyMOLやChimera, CHARMMなど一部のプログラムは未だにこれを利用することができます。
コマンドラインでは set ignore_pdb_segi, [0,1]
で無視して保存するかどうかを指定できます(0で書き出す、1で書き出さない)。
Retain atom ids
構造データのエクスポート時に、原子のIDを1から順になるようリナンバリングするかどうかを指定します。デフォルトではOFFです。
コマンドラインでは set pdb_retain_ids, [0,1]
で同様の設定を指定できます(0で無効、1で有効)。
参考: https://pymolwiki.org/index.php/Pdb_retain_ids
Write HEADER for every object
このオプションを指定すると、保存時に選択された各オブジェクトがHEADERレコード〜ENDレコードで区切られながら1ファイル中にまとめて書き出されます。こうして書き出されたファイルはマルチエントリPDBファイルとなり、PyMOLでこのファイルをロードしようとすると、各エントリごとに異なるオブジェクトとして表示されるようになります。
対称性情報が含まれている場合、CRYST1レコードも記述されます。
内部処理的にはpdb形式でmultisave
コマンドを使った保存方法に直接対応しています。
参考: https://pymolwiki.org/index.php/Multisave
Multi-File
現在PyMOL上で複数表示されているオブジェクトを、複数ファイルに分けてエクスポートしたいときに使うオプションです。さらに、各オブジェクトが2以上のStateを持っている場合(例として、PDB ID:1G03などのNMR構造ファイル、またはMDトラジェクトリをロードしたオブジェクトなど)は、さらにそれらを分割して保存することができます。
デフォルトではone single fileが選択されています。
one single file
保存したい対象オブジェクト(上部Selection
のところで設定)を1つのファイルにまとめて保存します。保存される対象のStateはメニュー上部のState
で変更できます。
one file per object
複数のオブジェクトが表示されている場合に、各オブジェクトごとにファイルを分割して出力します。デフォルトの出力ファイル名はオブジェクト名に相当する{name}
が設定されます。
one file per object-state
各オブジェクトに複数のstateが存在する場合、上の設定と同様に、{name}_{state}
の名前で出力します。
Prompt for every file にチェックが入っている場合は、保存対象ごとにファイル名の指定画面が現れます。例えば、1つのstateを持つAと、20つのstateを持つBのオブジェクトがある場合に one file per object-stateを選択すると、21回画面がポップアップすることになります。
画像の保存
PyMOLで表示されている画像を保存することができます。上部メニューの[File]から[Export Image As...] → [PNG]を選ぶと、保存メニューが現れます。
デフォルトでは"capture current display"と表示されています。
この設定で下にある"Save PNG image as..."を押すと、保存先を指定するメニューが表示され、名前を入れて保存することができます(画像はいずれもbg_color white
で白背景にした場合で表示しています)。
これでとりあえず上のような画像を保存することができましたが、他にも様々なメニューがあるので、状況によって使い分けると良いでしょう。まずは、"capture current display"のプルダウンメニューの部分を押すと、
計4つのメニューがあることがわかります。まず"draw antialiased OpenGL image"とすると、描画にアンチエイリアスがかかります(※なおmacOSの場合、現状OpenGL周りの処理にバグがあるためWARNINGSのメッセージが出ています。)
続いて"ray trace with opaque background"とすると、ray traceをかけてオブジェクト全体に陰影をつけながら表示することができます。
最後に、"ray trace with transparent background"では、ray traceによる陰影と背景の透過処理が行われます(下の画像例では市松模様になっていますが、実際に出力される画像ではきちんと背景が透明になっています)。
特に最後のオプションで背景を透明化したものは、スライドに画像を載せるときなどで利用することが多いため、覚えておくと良いでしょう。
また、保存時のパネルには"To render a sized antialiased image, use the Draw/Ray panel in the upper right."というメッセージが表示されていますが、これはPyMOLのGUI部分の右上にあるメニューのことを指しています。
これをクリックすると設定メニューが表示されます。
先述のメニューでは出力される縦と横の画像サイズは指定できませんでしたが、先にここのメニューで縦(Height)と横(Width)の値を目的の値に変更しておけば指定することができます。
Unitsはcm
またはinch
を設定できます。また、DPIはdot per inchのことであり、この値が大きいほど画像の解像度が上がる一方、ファイルサイズは大きくなります。論文誌によっては300 DPIを求められる場合がありますので、発表用のものは300
にしておくと良いでしょう。
transparent background ("Ray" only) では、先述の背景の透明化処理の有効・無効を設定できます。
出力は"Draw (fast)"と"Ray (slow)"とありますが、これは先述の"draw antialiased OpenGL image"と"ray trace ~"にそれぞれ対応しています。
コマンドラインで行う場合は、各オプションが以下のコマンドに対応しています。
オプション | コマンド |
---|---|
capture current display | png foo.png, 0, 0, -1, ray=0 |
draw antialiased OpenGL image | draw 0, 0 ; png foo.png, 0, 0, -1, ray=0 |
ray trace with opaque background | set opaque_background, 1; png foo.png, 0, 0, -1, ray=1 |
ray trace with transparent background | set opaque_background, 0; png foo.png, 0, 0, -1, ray=1 |