在Chimera中用不同的顏色顯示不同的等值面
注:ChimeraX是Chimera的后繼版,顯示效果有了顯著提升,而且界面更友好。我專門錄了ChimeraX繪制本文所示圖像的演示視頻,看https://www.bilibili.com/video/av85684420或 https://youtu.be/vC48iEB8PwI。
在Chimera中用不同的顏色顯示不同的等值面
文/Sobereva @北京科音 2012-Nov-21
在一些文獻的格點數據的等值面圖中,會對不同的等值面使用不同顏色來顯示以作區分。比如電子定域化函數(ELF)的等值面圖,一些文獻會將孤對區域、共價鍵區域、內核區域的等值面以不同的顏色表示,看起來會很清楚。最近有數人問我怎么做這樣的圖,這里就簡單談談。
能載入cube文件并作等值面圖的軟件多如牛毛,如GaussView、Multiwfn、Chemcraft、VMD、Molekel等等,但是它們都沒法直接指定哪個等值面用哪種顏色顯示。一些更高級、專業的體數據顯示軟件雖然允許自行指定,但是要么收費、要么程序比較大、要么不直接支持cube文件。化學領域的可視化軟件中最方便的能自定義特定等值面顏色的是Chimera。此軟件可在此處免費下載:http://www.cgl.ucsf.edu/chimera/。筆者用的是1.6.2版,windows-64bit版大小是75MB。下面以Multiwfn 2.6生成的乙酸的ELF的cube文件為例介紹下操作過程,計算時格點設定用的是high quality grid(約1728000個點)。
啟動Chimera,file-open,file type選all (guess type),先選擇乙酸對應的結構文件(支持很多格式,如pdb格式),然后畫面上出現了乙酸的結構。為了避免分子結構妨礙等值面觀看,這里用細線來顯示結構,即Actions-Atoms/Bonds-wire,然后選Actions-Atoms/Bonds-wire width-5。
然后再次選file-open,選擇相應的乙酸ELF的cube文件,等值面馬上就顯示出來了,同時出現一個Volume Viewer窗口。窗口中有個很長的方框,里面表現的是各個函數值區域的格點的量,那個豎條的位置對應的是當前等值面對應的函數值。點一下這個豎條來激活這個等值面,由于我們要繪制的是ELF=0.83的等值面,故在Volume Viewer窗口的level框里輸入0.83(或拉動豎條到恰當的位置),然后回車。由于這個格點文件格點數較多,程序為了顯示比較快而默認將Step值設為了2,相當于2*2*2=8個格點縮減為1個格點來表示。然而我們想讓圖像顯示得更細膩,故將Step值設為1。我們將純綠色作為此等值面圖的基本色彩,于是點Color右邊的框,把G拉到最右邊,R、B拉到最左邊,然后點close。目前Volume Viewer窗口如下圖所示

在Volume Viewer窗口里選tools-measure and color blobs。新窗口中,在Use mouse右邊的方塊中可以選擇以何種操作來選擇blob(在Chimera中,一個個不相連的等值面被稱為blob)。button 1、2、3對應于鼠標左鍵、中鍵、右鍵。默認的是ctrl button 3,也就是說按住ctrl然后點擊鼠標右鍵就可以選擇blob了。我們打算將氧的孤對電子對應的blob設為青色,于是點擊Color blob選項右邊的色彩框,把R拉到最小,G和B拉到最大。之后在等值面圖上按住ctrl并用鼠標右鍵點擊孤對電子區域的blob,顏色立刻生效了。類似地,把內核區域的blob設為藍色,C-O、C-C區域的blob設為桔黃色,結果如下所示,對應不同特征的ELF域區分得很清楚。

注意,一旦修改等值面函數值、對格點數據進行操作,或者更改某些顯示方式,自己設定的各個blob的著色方式就會失效,而全都恢復為基本色彩。
Chimera默認開啟了depth cueing效果,會使靠后方的等值面略暗。想關閉depth cueing的話,可以在主窗口選Tools-Viewing Controls-Effects,然后取消depth cueing。
如果想讓等值面透明,主窗口菜單選擇Actions-Surface-transparency-40%。如果讓背景變為白色,選擇Actions-Color-all options-background,然后點White框。
順帶一提,Chimera在顯示等值面方面其實很靈活很強大,有很多其它軟件不具備的功能。在Volume Viewer窗口中選Features,會看到一大堆選項,選哪個就會在Volume Viewer窗口中出現對應的一些選項,利用這些選項可以實現很多特殊目的、對圖像做精細調整。而在Tools當中有很多其它有用的工具,例如用Volume Eraser可以抹掉當前等值面中的指定一塊區域;利用Measure Volume and Area可以得到指定的blob的體積和面積。建議有空時自行玩弄。
另外要強調一下,ELF、LOL的basin(盆)和domain(域)的概念并不相同。域是指等值面包圍的區域,本文的例子作的是數值為0.83的ELF定域化域的圖像。盆是指的由ELF的零通量面劃分的區域,每個盆里面有個ELF極大點,所有的盆加和在一起就是整個分子的空間。雖然可以用面來表示盆對應的區域,但是這個面上各個位置的函數值一般并不相同,所以盆是不能用等值面來表現的,等值面展現的也不是盆。所以切勿把此例的圖說成是ELF盆的圖形。