凡是按照本文的详细说明还绘制不出来的人,一定要精确严格重复视频里的操作!应先把视频里的示例体系重复一遍,连这个例子都重复不出来者注意看本文文末的文字
使用Multiwfn+VMD快速地绘制静电势着色的分子范德华表面图和分子间穿透图
Using Multiwfn+VMD to rapidly plot electrostatic potential colored molecular van der Waals surface map and penetration map between molecules
First release: 2018-Oct-13 Last update: 2025-Jun-30
按照以上说明配置后,就可以开始做下面的例子了。如果没成功重复出文中的图,说明要么没一个字一个字看上面的配置方式说明,要么没一个字一个字看下面的操作步骤。如果绘制某个体系的时候VMD里显示出了之前绘制过的其它体系,应当自行把VMD目录下相应的其它体系对应的pdb或cube文件删除。如果下文的透明的等值面显示得很诡异很难看,可能是显卡驱动和VMD不兼容而没能打开GLSL,尝试更新驱动或者用其它机子。
对于有的复杂体系,在默认的EdgyGlass材质下可能绘图效果不是很理想,比如下面这个团簇体系,画面看起来很乱,不容易看清楚体系表面静电势特征:
这个问题主要是透明度太高了。只要改一下材质即可。做法是进入Graphics - Materials,选择当前用的材质EdgyGlass,然后调节各个滑条,特别是Opacity(不透明度)。我们把材质改成下面的情况
此时看到的图像如下所示,看着清楚多了。
如果你不喜欢作图脚本用的蓝-白-红方式的色彩变化,可以进入Graphics - Colors - Color Scale,用Method下拉框将色彩变化方式设成别的。比如有很多文章用的是用红色代表负值部分,蓝色代表正值部分,为了与这种习俗对应,你就可以把Method设为RWB(Red-White-Blue)。
从VMD 1.9.4版开始支持更多的色彩刻度变化方式。如果想让着色的颜色更丰富,可以在使用iso命令显示出静电势着色等值面图之后运行以下命令将色彩刻度变化方式改为turbo并对材质进行恰当修改,这是按照彩虹色彩方式变化。命令中把色彩刻度下、上限分别改到了-0.06到0.06,应根据实际体系反复调节直到效果最好。color scale method turbomol scaleminmax 0 1 -0.060000 0.060000display projection Orthographicmaterial change outline EdgyGlass 0.590000material change outlinewidth EdgyGlass 0.340000material change opacity EdgyGlass 0.730000material change shininess EdgyGlass 0.80000material change diffuse EdgyGlass 0.800000material change specular EdgyGlass 0.250000
下面是对FOX-7分子使用以上命令修改作图设置后的效果,可见色彩很丰富重要提示:截止到2023-Jul-29,VMD 1.9.4正式版仍未发布,而非正式版bug奇多,还容易莫名其妙崩溃,个人建议在虚拟机里安装1.9.4非正式版。
如果想把色彩刻度轴显示出来,一个做法是进入Graphics - Colors,选择Color Scale标签页,然后把色彩刻度条截图截出来,用photoshop旋转、拉伸一下,然后把上下限数值标注上去即可。
可以在图上标注一下或者在图例里说明一下刻度的单位。对于通过iso命令显示静电势着色等值面的情况,由于静电势cube文件里的单位是a.u.,所以刻度条上的单位也是a.u.,也可以自行ps成对应的其它单位的数值。如果你是用pt命令显示的,如前所述,单位可能是kcal/mol也可能是eV。
我建议读者自行根据实际情况在VMD的Graphics - Representation的Trajectory标签页的文本框里调节色彩刻度的下限和上限,使得色彩可以尽可能充分地体现分子表面上不同区域静电势的差异。比如你感觉红、蓝颜色太淡,则应当把色彩刻度范围区间设小一点。如果有一大片地方全是相同的红色或相同的蓝色,因而区分不开差异,则色彩刻度范围需要设宽一些。需要考虑实际效果反复调节到最理想。
是否对各种体系总是适合使用表面静电势最负和最正值分别作为色彩刻度下限和上限呢?答案是否定的。虽然这么做能确保分子表面不同数值静电势的位置能对应不同颜色,但这往往不是什么好的选择,比如:(1)上、下限是个零碎的小数,令色彩刻度轴显得不够工整(2)上、下限不对称,导致白色的区域不是正好落在静电势为0的地方从而有碍判断。当然并不需要非得上下限对称,只不过不对称的时候需要自己确保色彩变化的中间颜色正好对应静电势零点,可以通过Graphics - Colors - Color Scale里的Midpoint进行调节。(3)视觉效果未必好。比如分子某处静电势特别负,若为了照顾这个位置而设置下限,可能导致静电势比较负的区域在着色上不容易区分差异。(4)横向对比一批分子表面静电势时,如果色彩刻度范围用得不统一,会造成误判。
本文的.bat批处理文件是Windows下的,如果想在Linux下也类似地通过脚本快速绘制,看Multiwfn手册4.A.13节的第9部分(此外,也可以手动在性能较好的Linux服务器上把VMD脚本绘图所需的文件算出来,然后自行拷到Windows的VMD目录下再用VMD的脚本绘图)。
本文介绍的绘制分子表面静电势图的方法算是目前最快、最好的绘制方法了,而且用到的Multiwfn和VMD都完全免费。相比之下,用GaussView绘制这类图的操作步骤多于此文,耗时远高于此文,效果也不如本文,而且程序是收费的而且挺贵,还没法把静电势极值点显示出来,也没法绘制穿透图,而且只能用fch/fchk作为输入文件,显然相对于本文介绍的方法来是不可取的。
还老有人问为什么画出来的分子表面图处处是白色的而不是彩色的,通常就两种可能:• 你的体系的分子表面各处的静电势都很接近0,而当前色彩刻度范围又偏大,导致各处静电势的差异无法通过颜色充分体现。解决方法就是恰当减小色彩刻度上下限直到色彩显著• 静电势的cube文件没能正常载入VMD。可能是静电势的cube文件本身就没被正常计算出来,应仔细看VMD目录下ESP开头的cub文件是否已经出现、仔细看VMD文本窗口里有没有载入失败的提示,应根据脚本的运行原理试图解决。也可能你的体系较大、静电势的cube文件也较大(如好几百MB甚至更大),而你用的是32bit的VMD,由于可用内存限制而导致无法载入这么大的cube文件,这种情况应改用64bit版VMD。