pymol使用教程
簡介&安裝
Pymol是一個開放源碼,由使用者贊助的分子三維結構顯示軟件,由Warren Lyford DeLano編寫,并且由DeLano Scientific LLC負責商業(yè)發(fā)行。
Pymol被用來創(chuàng)作高品質的分子(特別是生物大分子如蛋白質)三維結構。據(jù)軟件作者宣稱,在所有正式發(fā)表的科學論文中的蛋白質結構圖像中,有四分之一是使用Pymol來制作的。
Pymol名字的來源:“Py”表示該軟件基于python這個計算機語言,“Mol”則是英文分子(molucule)的縮寫,表示該軟件用來顯示分子結構。
由于實驗需要,本人正在學習該軟件,在這里把學習過程記錄下來,希望對有需要的朋友有所幫助。今天先來說說安裝吧。
自2006年8月1日起,DeLano Scientific 對事先編譯好的PyMOL執(zhí)行程序(包括beta版)采取限定下載的措施。目前,只有付費用戶可以取得。不過源代碼目前還是可以免費下載,供使用者編譯。如果你和我一樣,不想為此花錢的話:
1. 如果你是Windows用戶,首先下載Pymol的源代碼。
然后安裝CygWin,并且確保正確安裝以下模塊:
§ C++ (gcc or g++ package name)
§ Python
§ OpenGL
§ PNG
然后在源代碼目錄里面依次運行:
2. 如果你是Linux用戶,首先確保以下東東已安裝:
§ Python
§ Pmw
§ OpenGL driver(我用的是NVdia)
§ libpng
§ Subversion client(下載源代碼需要)
然后下載Pymol的源代碼
$ mkdir pymol-src
$ svnpymol-src
然后進入源代碼目錄
# cd pymol-src
開始依次編譯
# python setup.py install
# python setup2.py install
拷貝執(zhí)行腳本到某個$PATH,安裝就搞定了
# cp ./pymol /usr/bin
如果運行時得到錯誤信息"ImportError: No module named Pmw",那么你應該運行
# python setup2.py install pmw
如果你在使用Gentoo,請確保編譯python時添加了tcl/tk支持,否則運行是會提示錯誤"ImportError: No module named _tkinter"
# USE="tcl tk" emerge python
好了,下面我們就可以進入Pymol的世界了。
基本的鼠標操作
里主要介紹一下Pymol的基本操作,包括窗口菜單、加載文件、圖像的基本鼠標操作等等。
當你打開Pymol后,你將會看到如下圖所示的界面:
該界面分為2窗口,上面的外部GUI窗口(External GUI)和下面的Viewer Window。Viewer Window又分為左右兩塊,左邊用來顯示結構圖像的(Viewer),右邊則是一個內(nèi)部GUI窗口(Internal GUI)。Viewer自身包含一個命令行(如圖中左下方的PyMOL>提示符),可以用來輸入Pymol命令;在Inernal GUI中則可以選定一些特定的對象并完成一些操作。External GUI則包含一個標準菜單、一個輸出區(qū)、一個命令行輸入?yún)^(qū)以及右邊的一些常用命令按鈕。請注意,標準的“復制、剪切和粘貼”操作只能在External GUI中完成,并且必須使用“Ctrl+C、Ctrl+X以及Ctrl+V”來完成,這也是這個所謂的外部GUI的最重要的優(yōu)點。
加載文件,有二種方法:
1. 在External GUI中選擇File - Open
2. 使用命令行:
load <filename>
pdb文件(PENTAMERIC LIGAND GATED ION CHANNEL FROM ERWINIA CHRYSANTHEMI),名字為2vl0.pdb,然后用pymol打開它:
load 2vl0
該蛋白質的結構就被顯示出來啦,如下圖:
基本的圖像操作:
是不是覺得上面的那個三維結構圖看起來亂七八糟的阿,那是因為蛋白質分子都是由成千上萬個原子組成的,而Pymol打開pdb文件時是默認把所有的原子都顯示在那個小小的Viewer窗口里面的,當然看起來就很亂了。這時候就需要我們對這個圖像進行一些操作,來得到漂亮的清晰的蛋白質三維結構圖。
先說說鼠標吧。
· 任意旋轉圖像: 對準圖像的任意處點住鼠標左鍵然后移動鼠標。
· 放大/縮小圖像: 對準圖像的任意處點住鼠標右鍵然后移動鼠標:向上是縮小,向下則是放大。
· 移動圖像: 對準圖像的任意處點住鼠標中鍵或者滾輪,然后移動鼠標。
· 設定圖像旋轉中心: Ctrl+Shift+鼠標中鍵或滾輪。
· 移動剪切平面: Shift+鼠標右鍵。鼠標上下移動:調(diào)整前剪切平面(離你近的);鼠標左右移動:調(diào)整后剪切平面(離你遠的)。
最后一項“移動剪切平面”有點不容易理解,需要多試幾次。配合下面的示意圖你會發(fā)現(xiàn)Pymol的這項設定其實很方便。
今天沒時間了,明天還要出遠門,就學到這里吧,用下面這個圖作為結束,其實就是用cartoon的形式顯示了上面的那個蛋白質,不過還比較難看。。。
By wei lu
PyMOL用法(教程二)
基礎Pymol命令
這里主要介紹一下Pymol的一些基本命令操作。就像Linux一樣,要想更好的操作Pymol,掌握一些常用的命令是必不可少的。 Pymol是區(qū)分大小寫的,不過目前為止Pymol還是只用小寫,所以記住,所有的命令都是使用小寫字母的。
當你開始用Pymol來完成一個項目時,你也許想會讓Pymol自動保存你所有輸入過的命令,以方便日后你再次讀取并修改。這個可以通過創(chuàng)建一個log文件來達到,該文件的后綴名應為.pml,記住,Pymol像Linux一樣支持Tab鍵命令補全:
Pymol> log_open log-file-
如果你想終止記錄,只需要鍵入:
Pymol> log_close
好了,現(xiàn)在載入pdb文件(繼續(xù)前用的pdb文件):
Pymol
現(xiàn)在Pymol就創(chuàng)建了一個叫2vlo的對象,你可以在內(nèi)部GUI窗口里面看見這個項目的名字。但是你也可以自己定義該項目的名字(如test):
Pymol> load 2vlo.pdb, test
下面說說如何來操作你新建的對象。
首先:
Pymol> show representation
Pymol> hide representation
其中representation可以為:cartoon, ribbon, dots, spheres, surface和mesh。
使用這2個命令可以讓Pymol以不同的方式顯示蛋白質結構。
例如當我們鍵入:
Pymol> hide lines
Pymol> show ribbon
我們將得到如下結果:
也許你已經(jīng)注意到結構中有2個一模一樣的蛋白質分子,只是方向不同而已,那么如何讓Pymol只顯示當中的一個分子呢?首先輸入如下命令:
Pymol> label all, chains
這個命令的作用是讓Pymol給蛋白質結構中的“鏈”編號,你會發(fā)現(xiàn),第一個分子由“鏈”A-E組成,第二個則由F-J組成。
好了,如果我們想把一個蛋白質分子去掉,那么只要把“鏈”A-E或者F-J去掉即可:
Pymol> hide ribbon, chain f+g+h+i+j
上面的東東還可以這樣完成:
Pymol> select test, chain f+g+h+i+j
Pymol> hide ribbon, test
上面的第一句命令的作用是選擇“鏈”F-J,并命名為test,然后在第二句命令中隱藏它。這樣做的好處是,一旦你選擇并命名了某個目標,你可以在后面隨時對它進行各種操作。并且你在右邊的控制面板里面也可以看到你選定的目標,并可以對其進行操作。
比如你可以:
Pymol> hide everything, test
Pymol> show cartoon, test
這樣你會得到:
說到這里就提到了Pymol的一個比較重要的東東,就是選擇并命名目標,它的基本語法就是:
Pymol> select selection-name, selection-expression
其中名字可以由字母[A/a-Z/z],數(shù)字[0-9]已經(jīng)下劃線[_]組成,但是要避免使用:
! @ # $ % ^ & * ( ) ' " [ ] { } \ | ~ ` < > ? /
如果你要刪除你選定的目標或者整個對象,你可以:
Pymol> delete selection-name
Pymol> delete object-name
下面講講如何給對象以及目標改變顏色。預定義的顏色名字可以在外部GUI窗口的Settings - Colors中找到:
Pymol> color color-name
Pymol> color color-name, selection-expression
比如我們可以:
Pymol> color red, ss h
Pymol> color yellow, ss s
Pymol> color green, ss l+""
其中“ss”代表secondary structure,“h”代表Helix,“s”代表Beta sheet,l+""代表Loop和所以其他結構。
這3句的作用分別是把所有的Helix變成紅色;把所有的Beta sheet變成黃色;把所有的Loop以及其他部分變成綠色,于是我們得到:
Pymol可以同時打開多個pdb文件:
Pymol> load
Pymol> load
如果你想暫時關閉/打開某個對象,可以這樣:
Pymol> disable object-name-1
Pymol> enable object-name-1
你也可以用disable命令去除最后一個選擇的目標上出現(xiàn)的粉紅色的小點,但是該命令并不會使你選定的目標不可見。
Pymol> disable selection-name
使用鼠標通常是改變圖像視角的最方便的辦法,不過命令如zoom,orient等等有時候使用起來也是很有用的,它們提供了另一種改變圖像視角的辦法。
放大選定目標:
Pymol> zoom selection-name
定向選定目標,可以使選定目標最大的尺寸水平顯示,次大的尺寸豎直顯示::
Pymol> orient selection-name
你也可以用view命令保存你目前的視角,注意,該命令只保存視角,并不保存你的對象顯示方式:
Pymol> view key, action
其中“key”是你隨便給當前視角定的名字,“action”可以為:store或者recall。如果不加任何“action”,則默認為recall:
Pymol> view v1, store
Pymol> view v1, recall
Pymol> view v1
說了這么多,最后說說如何保存文件吧。Pymol有3個層面的保存方式,下面來分別說說。
1. 使用log_open命令把你所有使用過的命令記錄為一個文本文檔:
Pymol> log_open script-file-name
這樣以后當你再次調(diào)用該文檔時,Pymol將執(zhí)行上面的所有命令:
Pymol> @script-file-name
不過注意,如果你想記錄當前視角,則必須使用get_view命令。
你可以選擇外部GUI窗口中的File - Append/Resume/Close Log來分別暫停記錄/恢復記錄/停止記錄該文檔。
你可以隨時編輯該文檔。
在linux下,該文檔的默認保存目錄為當前用戶的home目錄。
2. 如果你想下次打開Pymol時直接回到當前所在的狀態(tài),那么你可以選擇外部GUI窗口里面的File - Save Session,創(chuàng)建一個會話文件(.pse)。
該會話文件和上面提到的文檔文件的區(qū)別在于,首先文檔文件可以編輯,但會話文件不可以;記錄文檔文件前必須先運行l(wèi)og_open命令,而會話文件可以隨時創(chuàng)建;最后文檔文件以文檔形式運行(@),而打開會話文件則必須選擇外部GUI窗口中的File - Open。
什么時候需要創(chuàng)建會話文件呢?比如當你在某時有多個選擇時,你可以保存當前狀態(tài),然后一一嘗試這些選擇,不滿意時只需要重新打開該會話文件即可。也就是說創(chuàng)建會話文件起到了“undo”的作用,這正是Pymol所缺少的。希望開發(fā)者能趕快加入該功能,那么這個會話文件好像就沒什么大用了,呵呵。
3. 如果你覺得當前顯示窗口里面顯示的結構圖像已經(jīng)滿足你的要求了,你可以把它保存為圖片。在這之前你可以使用ray命令來優(yōu)化你的圖像,它可以使你的圖像具有三維的反射及陰影特效:
Pymol> ray
Pymol> pngyour_path/image_name
最后就用該命令導出的圖片結束這次筆記吧。
Pymol命令的語法與目標選擇的表達
上次介紹一些Pymol的基本命令?,F(xiàn)在來具體說說Pymol命令的語法,還有在選擇操作目標應該如果表達。個人覺得這部分內(nèi)容對學習Pymol來說是至關重要的。
從上次講的一些例子中不難看出,Pymol的命令都是由關鍵詞(keyword)加上一些變量(argument)組成,格式如下:
Pymol> keyword argument
其中關鍵詞(keyword)當然是必須的,而變量則不是必須的,比如退出命令quit就不需要附加變量:
Pymol> quit
當然更多的命令通常是需要加變量的,比如放大命令zoom,但是你會發(fā)現(xiàn)即使你不加任何變量該命令也可以被執(zhí)行,這是因為Pymol的許多命令有一個默認變量,下面兩個命令的作用是一樣的,其中的目標選擇all就是zoom的默認變量:
Pymol> zoom
Pymol> zoom all
還有些命令可以帶多個參數(shù),比如加色命令color,它的用法如下:
Pymol> color color-name
Pymol> color color-name, selection-expression
第一個color雖然只帶一個變量"color-name",但其實它包含了第二個默認變量all,所以它的作用是把整個結構變成"color-name"的顏色。
第二個color帶兩個變量,和第一個的區(qū)別就是把默認的目標選擇變量all變成了"selection-expression",也就是說只有被這個變量選中的部分才會被變成"color-name"定義的顏色。
要注意的是,如果一個命令帶多個變量,則這些變量之間必須用逗號","隔開。
通過這個例子,大家可以發(fā)現(xiàn),有些變量本身是很簡單的,比如"color-name",就是一個顏色名字而已,沒什么復雜的。另一些則不一樣,比如"selection-expression",它可以很簡單,也可以非常的復雜。這個東東,我稱之為選擇表達,對Pymol命令的使用非常重要,所以下面要詳細的講一下。
選擇表達(selection-expression)表示的實際就是一些被選中的部分,它們可以是一些個原子,一些個Helix,一些個Beta sheet,或者它們的混合物。你可以給你的選擇表達起個名字,以便可以多次使用它們。名字可以由大小寫字母,數(shù)字以及下劃線[_]組成,但是因避免使用下列符號:
! @ # $ % ^ & * ( ) ' " [ ] { } \ | ~ ` < > ? /
選擇表達由所謂的"selector"加上"identifier"組成,其中"selector"定義了某類屬性,而"identifier"則在該類屬性下需要被選擇的部分。如下例:
Pymol> select test, name c+o+n+ca
其中"name"就是一個selector,它表示在pdb文件中描述的原子的名字;"c+o+n+ca"則是對應的"indentifier",它表示我們要選擇pdb文件中名字叫"ca+cb"的原子(ca代表alpha carbon,cb代表beta carbon)。整個語句的作用就是選擇上訴的原子并命名為"test",這樣我們可以在后面繼續(xù)使用它。
下表列出了大多數(shù)的selector:
Selector
簡寫
Identifier及例子
symbol
e.
chemical-symbol-list
周期表中的元素符號
Pymol> select polar, symbol o+n
name
n.
atom-name-list
pdb文件中的原子名字
Pymol> select carbons, name ca+cb+cg+cd
resn
r.
residue-name-list
氨基酸的名字
Pymol> select aas, resn asp+glu+asn+gln
resi
i.
residue-identifier-list
pdb文件中基團的編號
Pymol> select mults10, resi 1+10+100
residue-identifier-range
Pymol> select nterm, resi 1-10
alt
alt
alternate-conformation-identifier-list
一些單字母的列表,選擇具有2種構型的氨基酸
Pymol> select altconf, alt a+b
chain
c.
chain-identifier-list
一些單字母或數(shù)字的列表
Pymol> select firstch, chain a
segi
s.
segment-identifier-list
一些字母(最多4位)的列表
Pymol> select ligand, segi lig
flag
f.
flag-nummer
一個整數(shù)(0-31)
Pymol> select f1, flag 0
numeric_type
nt.
type-nummer
一個整數(shù)
Pymol> select type1, nt. 5
text_type
tt.
type-string
一些字母(最多4位)的列表
Pymol> select subset, tt. HA+HC
id
id
external-index-number
一個整數(shù)
Pymol> select idno, id 23
index
idx.
internal-index-number
一個整數(shù)
Pymol> select intid, index 23
ss
ss
secondary-structure-type
代表該類結構的單字母
Pymol> select allstrs, ss h+s+l+""
下表是另一些Selector,有關比較的:
Selector
簡寫
Identifier及例子
b
b
comparison-operator b-factor-value
一個實數(shù),用來比較b-factor
Pymol> select fuzzy, b > 12
q
q
comparison-operator occupancy-value
一個實數(shù),用來比較occupancy
Pymol> select lowcharges
formal_charge
fc.
comparison-operator formal charge-value
一個整數(shù),用來比較formal charge
Pymol> select doubles, fc. = -1
partial_charge
pc.
comparison-operator partial charge-value
一個實數(shù),用來比較partial charge
Pymol> select hicharges, pc. > -1
另外有一些Selector是不需要Identifier的,它們被列在下表中:
Selector
簡寫
描述
all
*
所有當前被Pymol加載的原子
none
none
什么也不選
hydro
h.
所有當前被Pymol加載的氫原子
hetatm
het
所有從蛋白質數(shù)據(jù)庫HETATM記錄中加載的原子
visible
v.
所有在被“可見”的顯示的對象中的原子
present
pr.
所有的具有定義坐標的原子
在Identifier中用到的原子以及氨基酸的命名規(guī)則可以在下面的網(wǎng)址中找到:
在選擇表達中,selector還可以配合邏輯操作子(logical operator)使用,這樣我們可以表達更加復雜的選擇。這些操作子被列于下表中:
Operator
簡寫
效果與例子
not s1
! s1
選擇原子但不包括s1中的
Pymol> select sidechains, ! bb
s1 and s2
s1 & s2
選擇既在s1又在s2中的原子
Pymol> select far_bb, bb & farfrm_ten
s1 or s2
s1 | s2
選擇s1或者s2中的原子(也就是包含全部的s1和s2原子)
Pymol> select all_prot, bb | sidechain
s1 in s2
s1 in s2
選擇s1中的那些原子,其identifiers (name, resi, resn, chain, segi) 全部符合s2中對應的原子
Pymol> select same_atom, pept in prot
s1 like s2
s1 l. s2
選擇s1中的那些原子,其identifiers (name, resi)符合s2中對應的原子
Pymol> select similar_atom, pept like prot
s1 gap X
s1 gap X
選擇那些原子,其van der Waals半徑至少和s1的van der Waals半徑相差X
Pymol> select farfrm_ten, resi 10 gap 5
s1 around X
s1 a. X
選擇以s1中任何原子為中心,X為半徑,所包括的所有原子
Pymol> select near_ten, resi 10 around 5
s1 expand X
s1 e. X
選擇以s1中任何原子為中心,X為半徑,然后把s1擴展至該新的范圍所包含的所有原子
Pymol> select near_ten_x, near10 expand 3
s1 within X of s2
s1 w. X of s2
選擇以s2為中心,X為半徑,并包含在s1中的原子
Pymol> select bbnearten, bb w. 4 of resi 10
byres s1
br. s1
把選擇擴展到全部residue
Pymol> select complete_res, br. bbnear10
byobject s1
bo. s1
把選擇擴展到全部object
Pymol> select near_obj, bo. near_res
neighbor s1
nbr. s1
選擇直接和s1相連的原子
Pymol> select vicinos, nbr. resi 10
這些邏輯選擇還可以組合使用。比如你想選擇chain b,但是不選擇其中的residue 88:
Pymol> select chain b and (not resi 88)
在使用多重邏輯選擇時,為了讓Pymol正確處理順序,請使用括號,這樣最里層括號里面的內(nèi)容將會被最先處理,以此類推。
好了,目標選擇就先說到這里。其實關于目標選擇還有所謂的“宏”可以用,可以簡化表達式,準備下次說說。
by Wei Lü -
PyMOL用法(教程三)
Pymol的選擇宏
上次具體講了如何在Pymol中怎么用selection-expression選取目標,其實在某些情況下,還可以用Pymol提供的宏來選擇操作目標。使用這個選擇宏往往可以是一個原本很復雜的表達變得簡單緊湊。
例如我們想選擇2vlo這個pdb文件中的"chain a"中的第100個基團的α炭原子,如果用selection-expression來表達的話是這樣:
Pymol> select chain a and resi 100 and ca
如果用宏的,可以這樣:
Pymol> select a/100/ca
是不是覺得簡單了很多。好了,下面就來詳細講講這個宏吧。
因為這個宏是用來選擇目標的,所以我稱之為選擇宏,它用斜杠"/"來定義Identifier,并且它使用上次介紹過的邏輯操作子"and"。
一個完整的,按順序的選擇宏的表達如下:
/object-name/segi-identifier/chain-identifier/resi-identifier/name-identifier
之所以說選擇宏是有順序的,是因為Pymol就是靠順序判斷每個斜杠后面的東東都是什么東東。
如果再細分一下的話,其實這個選擇宏有2種寫法,一個是帶開頭的斜杠,另一個是不帶開頭斜杠。區(qū)別是:
如果不以斜杠開頭,那么Pymol則認為你的表達式的最后一項就是選擇宏的末尾的最后一項,也就是name-identifier。例如:
Pymol> show lines, a/100/ca
Pymol> show lines, 100/ca
如過以斜杠開頭,那么Pymol就認為你是從選擇宏的表達式的頂端開始的,也就是從/object-name開始的。例如:
Pymol> zoom /2vl0//a/100/ca
Pymol> zoom /2vl0//a/100
細心的讀者肯定發(fā)現(xiàn)了上面的例子中有兩道斜杠中間什么內(nèi)容也沒有,不會是寫錯了吧?當然不是,其實在這種情況下Pymol會默認選擇這個兩道斜杠中被省略的Identifier列表中的全部元素,也就是說被省略的部分被Pymol當作了一個通配符。例如上例中我要選擇全部的"segment",所以我就把它給省略不寫了,呵呵,方便吧。
在舉些例子來說明一下:
Pymol> color green, a/142/
斜杠后面的"name-identifier"被省略了,所以第142號基團的素有原子都會變成綠色。
Pymol> shwo cartoon, a//
a斜杠后面的"resi-identifier"以及最后斜杠后面的"name-identifier"被省略了,所以整個a鏈將以cartoon的方式被顯示。
Pymol> zoom /2vl0//b
2個斜杠間的"segi-identifier"被省略,所以所有的b鏈將被放大。
最后總結一下,Pymol的選擇宏必須至少包含一個斜杠"/",以此來和Pymol的"select-expression"區(qū)分;并且不能包含空格,因為Pymol是把宏作為一個詞來讀取的;還有就是其實Pymol在執(zhí)行宏的時候首先是把它翻譯成正常的"select-expression",然后再執(zhí)行的。
關于cartoon
cartoon經(jīng)常被用來顯示一個蛋白質的總體結構,看起來也很漂亮。這次就來說說它的具體用法。
不久前本人剛搞定了一個Glucosyltransferase的結構,所以下面所有的例子都用來它來說明。
cartoon的命令格式如下:
Pymol> cartoon type, (selection)
總結一下cartoon的顯示類型:
automatic:默認的顯示方式
loop
tube: 比loop粗點
putty: 這個比較有趣,按照R-factor來顯示,越高越粗
oval
rectangle
arrow:和rectangle幾乎一樣,就是多了個箭頭
dumbbell:在oval的基礎上,在helix的邊緣加上一個cylinder
skip:隱藏,該圖中隱藏了6-120號氨基酸。
下面說說如何設置cartoon的一些具體細節(jié)。
比較下面的2幅圖:
你會發(fā)現(xiàn)第一張圖中sheets是平的,而當中的那個氨基酸的支鏈并沒連接在sheet上,這是因為為了顯示的漂亮,把sheet人為的抹平了。而第二張圖中的sheets則表達了蛋白質的真實走向,所以氨基酸的支鏈也顯示正常。也就是說,如果你想表達某個局部的具體細節(jié)的時候,最好采用第二張圖中的顯示方式。2張圖對應的命令分別是:
Pymol> set cartoon_flat_sheets, 1
Pymol> set cartoon_flat_sheets, 0
類似的命令對應于loop,就不舉例子了:
Pymol> set cartoon_smooth_loops, 1
Pymol> set cartoon_smooth_loops, 0
下面再說說cartoon尺寸。
Helix的厚度和寬度:
Pymol> set cartoon_oval_width
Pymol> set cartoon_oval_length
sheet的厚度和寬度:
Pymol> set cartoon_rect_width
Pymol> set cartoon_rect_length
loop的半徑:
Pymol> set cartoon_loop_radius
如果你設置了cartoon的顯示風格為fancy
Pymol> set cartoon_fancy_helices, 1
Pymol> set cartoon_fancy_sheets, 1
這樣你得到的helix的邊上會帶有一個很細的cylinder,也就是上面幾張圖中的顯示方式。此時設置helix的厚度,寬度,以及這個cylinder的半徑分別是:
Pymol> set cartoon_dumbbell_width
Pymol> set cartoon_dumbbell_length, 2
Pymol> set cartoon_dumbbell
依此類推,還可以設置和putty,tube等等顯示類型相關的尺寸,就不一一類舉了。
最后再加幾個還用的著的命令吧:
上色:
Pymol> set cartoon_color, green
竟然還可以refine,呵呵,逗號后面可以接數(shù)字,好像1-20都可以,數(shù)字越大優(yōu)化的越大,感覺的確能變漂亮點:
Pymol> set cartoon_refine, 20
設置透明:
Pymol> set cartoon_transparency
關于cartoon還有些命令,感覺不怎么常用,有些我也不知道是干什么的。有興趣再研究吧。
PyMOL用法(教程四)
關于label
在顯示一個蛋白結構的某個細節(jié)的時候,常常會需要給某些重要的氨基酸打上標簽,這就需要用到label命令。
label的命令格式如下:
Pymol> label [selection, [expression]]
selection當然就是你要加標簽的對象,expression就是標簽的內(nèi)容,可選的有:name, resn, resi, chain等等。你也可以組合使用它們。expression也可以是你自定義的一段內(nèi)容,這時候只要把內(nèi)容用引號包含起來就行:
Pymol> label selection, "user-defined expression"
在下面這個例子中,我想把glucosyltransferase中UDP-Glucose的binding pocket標注出來:
首先說明一下,該pdb文件中A鏈是蛋白質,B鏈是UDP-Glucose。
Pymol> load glucosyltransferase.pdb, tmp
Pymol> extract upg, chain b
Pymol> extract pro, chain a
Pymol> delete tmp
Pymol> select near, pro within 4.5 of upg
Pymol> hide all
Pymol> show sticks, upg
Pymol> show lines, near
Pymol> label near, ("%s/%s") % (resn, resi)#("%s/%s"): 設定顯示格式。
上面的圖看起來有點亂,因為默認Pymol在每個原子上都打上了標簽。要想看起來順眼點,需要一點加工。
在這之前,讓我們先看一下關于label的其他設置:
投影模式,可選值0(無投影),1(object有投影到label上,但是label本身無投影),2(object有投影到label上,label也有投影),3(object不投影到label上,label本身有投影):
Pymol> set label_shadow_mode, 3
文字顏色:
Pymol> set label_color, color-name, selection
標簽文字的輪廓的顏色,這樣就讓在例如白色背景上加白色標簽成為了可能:
Pymol> set label_outline_color, [color-name, [selection]]
字體,pymol內(nèi)置了12種字體,編號從5-16。15號和16號字體是unicode的:
Pymol> set label_font_id, 5
字體大小,如果為正值,則單位就是正常的px。你也可以用負值,則單位是Å:
Pymol> set label_size
Pymol> set label_size, 4
設置label位置,用下列命令可以設置label離默認位置的三維偏移值,在需要給spheres加標簽的時候有用:
Pymol> set label_position, (x,y,z)
最后說說怎樣用單個字母標注氨基酸。
首先在$HOME/.pymolrc中加入:
# start $HOME/.pymolrc modification
single ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \
'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y', \
'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A', \
'GLY':'G', 'PRO':'P', 'CYS':'C'}
# end modification
用法,用single[resn]代替resn:
Pymol> label n. CG and i. 230+246, single[resn]
下面是改進過的圖片:
是不是看起來好多了,下面是具體的代碼,其中關于電子密度圖的設置請見下一節(jié):
Pymol> select near, resi 139+229+230+233+246+499+519+520
Pymol> as cartoon, pro
Pymol> 鼠標操作:顯示near的sidechain
Pymol> set_color grey1, [224,224,224]
Pymol> set cartoon_color, grey1
Pymol> set cartoon_transparency
Pymol> set cartoon_fancy_helices, 1
Pymol> label n. CB and near, ("%s%s") % (single[resn], resi)
Pymol> 進入Editing模式,按住ctrl+鼠標右鍵移動label到合適位置
Pymol> set cartoon_transparency
Pymol> set label_font_id, 13
Pymol> set label_size, 26
Pymol> bg_color white
Pymol> 進入measurement模式測量我們所需要的距離
Pymol> set dash_length
Pymol> set dash_radius
Pymol> set dash_gap
Pymol> set dash_color, grey
在pymol中導入電子密度圖
假設我們已經(jīng)有了一個蛋白質的pdb文件(protein.pdb)和mtz()文件,這樣我們就可以用fft(Fast Fourier Transform)命令生成electron density map,以便在pymol中導入。
fft的命令格式如下:
fft HKLIN
回車后進入fft環(huán)境,還需要指定一些參數(shù):
LABIN F1=FWT PHI=PHWT
GRID SAMPLE 5
END
上訴第2句“GRID...”用來指定生成電子密度圖的精細程度。默認值是3,表示生成的“網(wǎng)格”大小是最大分辨率的三分之一,以此類推。
然后就可以在pymol中導入了。首先導入pdb文件glucosyltransferase.pdb,然后電子密度圖:
首先說明一下,該pdb文件中A鏈是蛋白質,B鏈是UDP-Glucose。
Pymol> load glucosyltransferase.pdb, pro
Pymol
你會發(fā)現(xiàn),還看不見density。打開Wizard -- Density,怎么樣,看見了吧。按住ctrl鍵和鼠標右鍵可以移動density,或者點擊Density Map Wizard中的"Next Res."和"Previous Res."。
不過顯示全部的density map并不是我們的目的,因為這樣顯的很亂,也看不到什么細節(jié)。下面的例子是僅僅顯示UDP-Glucose的電子密度圖。
Pymol> remove resn HOH
Pymol> select upg, chain b
Pymol> as cartoon, pro
Pymol> as stick, upg
Pymol> orient, upg
Pymol> isomesh upg-d, 2fofc, 2.0, upg
Pymol> set stick_radius
Pymol> set mesh_radius, 0.01#讓電子密度圖的網(wǎng)格細一點,好看
效果圖如下:
上訴命令中,其余設置請見上一節(jié)label,和顯示電子密度相關的就是isomesh了,它的用法如下:
Pymol> isomesh name, map, level [,(selection) [,buffer [,state [,carve ]]]]
§ name: 給這個mesh isosurface隨便起個名字。
§ map: 就是剛才load的那個2fofc。
§ level: 輪廓值,越大輪廓越細。
§ selection: 要表達的對象
§ buffer: 沒用過
§ state: 沒用過
§ carve: 以selection中的任何原子為中心,半徑為該值,所包含的全部原子,畫出他們的density
OK!搞定。