基本信息
VMD软件界面
VMD启动后会看到三个窗口:
- VMD Main:VMD的主窗口
- 若碰到VMDMain窗口显示不出来的情况,尝试在命令行窗口输入
menu main on。如果还不行,输入menu main move 100 100再试。
- 若碰到VMDMain窗口显示不出来的情况,尝试在命令行窗口输入
- 图形窗口:观看体系结构
- 命令行窗口:也叫Console窗口,VMD的一些状态信息、提示信息会显示在其中,并且可以在其中使用操作系统和VMD的内置命令,以及运行Td分析脚本

VMD main窗口

- 菜单栏下面的标题栏:
- ID:载入的每个体系自动分配唯一的ID,依次顺延
- Frames:包含的帧数
- Vol:体数据数目
- 每个体系有T,A,D,F状态,双击可以切换状态,黑色/红色对应开启/关闭。也可以在菜单栏“Molecule”中操作。
- T:代表Top。如果载入了多个体系,T在哪个上面,进度条的范围就由哪个体系决定
- A:代表Active,即允许播放轨迹
- D:代表Display,即显示此体系
- F:代表Fixed,即调整视角时保持不动
- ⇤,⇥:切换到第一帧或最后一帧
- ◀、▶:逆向播放或正向播放
- ↤、↦:向前或向后移动一帧
- Loop:轨迹播放方式
- step:轨迹播放步长
- speed:轨迹播放速度
载入结构
Windows有两种方法载入结构:
对于结构文件,可以直接把文件拖入到VMD Main窗口,文件类型会根据后缀名自行判断。
标准的载入方式是用“File(或在空白的地方点右键)-> New Molecule”,然后选择要载入的文件。
- 此时目录名不可有中文。如果没有正确判断出文件类型应当自行选择。


载入后将在VMDMain窗口产生一个新的ID。
Linux下可以用比如vmd foo.pdb在启动时直接载入文件。
载入轨迹
载入GROMACS的轨迹文件(trr/xtc)前需要先载入对应的gro或者pdb文件以提供原子信息。然后可以通过两种方式:
- “选中文件右键→Load Data into Molecular”
- 在Molecule File Browser窗口(“FIle→New Molecular”)。 确认和选择load files for:对应0:pull.gro名称; 点击 Browse 找到pull.xtc文件。 最后点击load。
- 左下角的Frames:可以设定只载入轨迹哪些帧号范围以及载入间隔
- 更好、更快的载入方式是选上 Load all at once后载入。
其他:
- 载入较长轨迹的过程中建议在Graphics - Representation中把默认的表示取消显示,这样会显著加快载入速度。
选中文件右键:
- Rename:修改体系名称。默 认名是一开始载入的文件的路径名
- Delete Frames:可以将轨迹中指定范围删除,也可以指定每隔凡帧删除一次。
- Abort FileI/O:载入过程中选择此选项可以终止载入。
载入GROMACS轨迹的标准方式
- 载入gro文件,假设此时体系D=i(gro文件具体是哪个任务产生的无所谓,但里面的原子数、原子顺序需要和被载入的轨迹文件完全相同)
- 删除ID=i的仅有的一帧(即gro里的结构)
- 将轨迹载入到ID=的体系当中
图形界面载入大轨迹速度比较慢,建议通过命令行载入大轨迹:vmd em.gro md.xtc。代表载入em.gro后,再把md.xtc里的轨迹载入进去。之后应手动删除第0帧。
载入轨迹时内存不足导致崩溃的解决办法
在载入轨迹过程中,VMD的内存占用率会不断上升。当64bit版VMD的内存占用超过剩余物理内存,或者32bit版VMD占用内存达到约2GB时,VMD就会崩溃。解决办法:
- 如用的Windows 32 bit版VMD,用Linux 64 bit版VMD。
- 1.9.4测试版也有官方的Windows 64 bit版但bug巨多,1.9.3有第三方编译的Windows 64 bit版:http://bbs.keinsci.com/thread-23119-1-1.html
- 每隔一定帧数载入一帧(载入界面里通过stride设置)。内存占用量与载入的轨迹帧数成正比
- 去掉轨迹中不感兴趣的原子。例如蛋白质+水体系可以通过gmxtjconv工具去掉水分子部分后再载入
- 一次分析一部分轨迹。可以自行分割轨迹,也可以载入轨迹时通过First和Last指定载入哪部分轨迹
保存轨迹
VMDMain窗口中选中某个体系,点右键之后选Save Coordinates,可以把当前结构或者轨迹中的指定部分保存成新文件。VMD因此也能起到格式转换的作用。
常用的记录分子结构的xyz、pdb文件也可以用来储存轨迹,并且载入这样的轨迹文件前不用先载入结构文件。不过缺点是体积比较大。

从上往下:
- Save data from:保存轨迹的体系
- Selected atoms:保存的原子范围。可以用VMD的选择语句指定,填all会保存所有原子
- File type:新文件的类型
- Frames:要保存的帧号范围和间隔
Mouse

三个基本模式
RST:
- 旋转模式(R),默认模式:在VMD Main->Mouse->选择Rotate Mode; 或者在Display窗口,按R或者r 进行切换。
- 平移模式 (T):在VMD Main->Mouse->选择Translate Mode; 或者在Display窗口,按T或者t 进行切换。
- 缩放模式(S):在VMD Main->Mouse->选择Scale Mode; 或者在Display窗口,按S或者s 进行切换。
旋转模式下(R):
- 按住鼠标左键:上下左右自由旋转;
- 滚动鼠标中键可以进行缩放,或者缩放模式下(S)。
- 按住鼠标右键、左右拖动:垂直于屏幕旋转
平移模式下(T):
- 按住鼠标左键:上下左右自由移动;
- 滚动鼠标中键:进行缩放;
- 按住鼠标右键:前后移动,较少使用;
缩放模式下(S):
- 按住鼠标左、中、右键,左右移动鼠标都可以缩放,右键的幅度会更大。
恢复视图:Display -> Reset View或按=:将当前显示的对象居中
Center:C
按c键后点击一个原子:之后旋转视图绕这个原子旋转
结构的测量
Label 0123:原子、键、键角、二面角的测量和标记
- 0:激活图形窗口井按数字键0进入原子查询模式后, 点击某个原子,在文本窗口就会显示原子的各种信 息,如坐标、编号、原子名、所属残基等。
- 1、2、3:选择Mouse - Label 里的相应项目或者点键盘上相应数字键后, 点击相应数目的原子,就会把 原子、键长、键角、二面角标 注出来.距离单位为埃。
风格编辑:
- 在Graphics→Labels中,可以检阅被标记的原子的详细信息,还可以把标记的键长/键角/二面角进行作图,并且导出数据。也可以隐藏/删除标记

- 颜色的修改见Graphics→Colors
- VMD的一个缺点是没法显示所有原子的序号。但可以通过VMD的脚本来实现,详见卢天的脚本atmlab.fcl和博文。
播放周期性计算的轨迹时往往出现胡乱连键的现象。这是因为VMD是按照最开始载入的结构依据原子间距离判断的成键,但随着模拟进行,有的原子穿越盒子后向到另一头,成键就混乱了。解决方法:
- 用
gmx trjconv命令接-pbc mol转换轨迹,使分子保持完整 - 用DynamicBonds绘制风格显示
- 命令行窗口执行
mol bondsrecalc all;mol reanalyze all,会对当前帧、所有体系所有原子重新判断成键,但只解决当前一帧的问题(all改为top可只对top体系更新)
结构的修改
VMD不是专门的建模、体系结构编辑程序,只能做简单的结构调整。
Move 5678:
- 在Mouse-Move菜单中选择相应项目,或者直接按键盘上的相应数字键,然后点击原子进行拖动,可以平移相应部分。
- 如果按住shif键后进行拖动,则可以旋转相应部分。
点击Add/Remove Bonds后再点击两个原子,可以使它们成键或取消原先的键连。
Graphics
Labels
- 选择Graph:可以选择项目后,勾选show preview,可以预览键长键角的变化,还可以Save导出为文本文件。

标签尺寸、粗细、颜色、相对于原子核位置都可以调。

- 标签里的属性:
- %a:atom name
- %d:resid
- %i:atom index (0-based)
- %1: atom index (1-based)
- %e:atomic element
- %b:beta
- %c:chain
- %C:conformation
- %f:user-applied force
- %F:current trajectory frame
- %m:mass
- %n:molecule index
- %N:molecule name
- %o:occupancy
- %p:atom periodic element number
- %q:atom charge
- %R:resname in upper-case
- %1: 1-char resname in upper-case
- %r:resname in camel case
- %s:segname
- %t:atom type
- %T:physical time
- %x, %y, %z
- 标签里的属性:
Representation
界面介绍

- Selected Molecule:选择哪个ID设定显示方式
- Create Rep:创建新的表示 (Representation) ,可创建无数多,效果会叠加
- Delete Rep:删除当前表示
- Seleted Atoms:被选择的原子
- Coloring Method:着色方式
- Material:材质
- Drawing Method:绘制风格
- 后面是不同绘制风格的具体设定
- Apply Changes Automatically:调整设定后立即见效,默认为开启
Drawing Style选项卡
常用着色方式
- Name:按照原子名着色
- Element:按照元素着色
- ResName/Type/ID:按照残基名、残基类型、残基序号着色
- Chain:按照链名着色
- Secondary Structure:根据二级结构着色
- ColorID:直接指定颜色ID
- Beta:根据pdb的B因子(bet字段)数值着色
- Position:根据x/y/z或径向坐标大小着色
- Fragment:根据所属片段着色
- Index:按照原子序号着色
- Backbone:将蛋白质骨架和侧链分开着色
- Volume:按照格点数据的数值着色
常用绘制风格(Trace到NewCartoon专门用于显示蛋白质、核酸)
- Lines:用细线描绘结构,显示速度最快
- Bonds:用空心圆柱显示化学键
- DynamicBonds:同上,但是不是根据VMD在载入分子结构时对成键的判断来显示,而是根据当前坐标实时判断成键
- HBonds:虚线显示体系中的氢键(不管是什么原子,带着氢的就被视为氢键给体原子,不带氢的就被视为氢键受体原子)
- Points:用圆点显示原子
- VDW:将原子用范德华球描绘
- CPK:用球棍方式显示
- Licorice:很常用,比Bonds更好看,因为键的末端是半圆型封闭的
- QuickSurf:快速方式显示分子表面
- VolumeSlice:显示格点数据的截面图
- Beads:相邻原子一起用较大圆球显示
- Isosurface:显示格点数据等值面图
Selection 选项卡

Singlewords中双击可以使用,Apply是应用选择语句,Reset是清空选择语句,Macro definition是具体的定义
- all:所有原子
- none:无原子
- noh:氢以外的原子
- ion:离子
- water:水
- backbone:生物大分子骨架
- sidechain:生物大分子侧链
- protein:蛋白
- nucleic:核酸
- helix:螺旋
- alpha_helix:alpha螺旋(是helix中的子集,较长一段螺旋才算)
- sheet:折叠
- turn:转角
coil:盘绕
alpha:蛋白质的alpha碳
- acidic:pH=7时带负电氨基酸
- basic:pH=7时带正电氨基酸
- charged:acidic和basic的并集
- neutral:电中性氨基酸
- polar:极性残基
- hydrophobic:疏水性残基
- bonded:成键的原子
- hetero:非蛋白质和核酸的部分
- carbon, hydrogen, oxygen,nitrogen、sulfur:相应元素
还有些关键词是需要后面接具体参数的,如name CA、x>5。在此窗口中可以看到对于当前体系可以接的参数。

- name:原子名
- index:原子序号(从0开始)
- serial:原子序号(从1开始)
- type:原子类型
- element:元素名
- resname:残基名
- residue:残基编号,从O开始
- resid:残基编号,从1开始。若结构文件里有残基号则与之一致
- chain:链名
- fragment:片段编号。VMD在载入结构时会对每个键连的片段设定一个编号
- numbonds:成键数目
- structure:二级结构
- x,y,z:X/Y/Z坐标
- vx,vy,vz:X/Y/Z速度
- beta:pdb文件中的beta值
- mass:原子质量
- charge:原子电荷
范围选择语句基本语法
- 可以用
()或{}指定语句处理的优先顺序 - 对
双引号内的字符可以使用正则表达式。 - 用
单引号则里面的字符可以避免被转义 - 判断语句:
<、<=、=、>=、>、!= - 与、或、非:
and、or、not - 函数:sqr(平方)、sqrt(开根号)、abs、sin、cos、tan、atan、asin、acos、 sinh、 cosh、tanh、exp、 log、 log10
运算符:
+、-、*、1,也可以用^或**来表示多少次方within 5 of AAA:距离AAA 5埃以内的原子。用pbwithin则考虑周期边界条件exwithin 5 of AAA:同上,但不包含AAA自身withinbonds 2 of AAA:距离AAA≤两个键的原子same p as AAA:与AAA选区的p属性相同的部分ringsize 5 from AAA:处于AAA中五元环上的原子maxringsize 6 from AAA:处于AAA中≤六元环的原子
例子:
范围选择语句实例
Chain B:B链的原子numbonds=2:形成了两个键的原子index 5 to 200 210:序号在5~200内的原子以及210号原子protein or nucleic:蛋白质与核酸的原子resname ALA CYS ARG:丙氨酸、半胱氨酸、精氨酸原子backbone not helix:除了螺旋区域以外的骨架原子name CA CB或name "CA|CB"或name "C[AB]"或name "C(A|B)":名为CA和CB的原子name"C.":名字为两个字符且第一个字符为C的原子name"CG.*":名为CG或开头字符为CG的所有原子name"CE[1-3]":名字为CE1、CE2、CE3的原子name "C[6-9]" or name "C[12][0-9]" or name "C3[01]": 名字从C6到C31的原子name'O5*':个别原子名带星号,选取时要用单引号括住resname 'CA2+'或resname "CA2\+":带正负号的也要用单引号括住以免转义,或者括在双引号里并加上斜杠mass>5:质量大于5的原子abs(charge)>1:电荷大小超过1的原子serial%2=0:序号为偶数的原子x<6 and x>3:选择x在3~6埃区域内的一层原子x>1 and x<8 and y>24 and y<35 and z>1 and z<5:一个矩形区域内的原子sqr(x-5)+sqr(y+4)+sqr(z) < sqr(5): 以(5,-4,0)点为中心半径5埃以内的原子((x-33)2+(y-14.5)^2)<12^2 and z<40 and z>10:选择以x=33、y=14.5埃为中心,半径为12埃,z范围在10-40埃的柱形区域x+y+z<80:斜切面内侧的原子not {oxygen and numbonds=0}:扣除孤立的氧原子(可以用于去除X光衍射pdb文件里的结晶水)within 6 of protein:距离蛋白质6埃以内的原子not within 5 of resname ADP:距离名为ADP的分子5埃以外的原子water within 5 of residue 8 to 44:距离8-44号残基5埃以内的水中的原子withinbonds 2 of index 31:距离编号为31原子的两个键及以内的原子maxringsize 6 from protein:蛋自当中所有六元及六元以下环上的原子same resname as resid 33:所有与33号残基相同名称的残基same residue as {protein within 5 of nucleic}: 与核酸的原子相距5埃以内的蛋白的原子,并且把被截断的残基保留完整x > 15 and not same fragment as {exwithin 8 of protein}:蛋白质以及蛋白质8埃范围以外的原子,保留完整片段,同时x坐标得大于15埃
选择范围的更新:
使用诸如x<20这样的涉及到空间范围的选择语句时,原子是在刚输入此命令时候按照指定规则选定的,之后不会随着帧号的改变而更新。只有选择Update Selection Every Frame后才会在播放轨迹时每一帧都重新按照指定规则确定被选择的原子。当取消这个选项后,选定的原子范围将维持在最后一次更新的情况。

Periodic
显示周期镜像Graphics - Representation界面中可以点击Periodic标签页的相应复选框来将相应方向的镜像盒子显示出来。

Color
Graphics-Colors里面可以对颜色进行自由的设定,比如背景色、对每种元素/残基/二级结构等等的着色(必须着色方式选了相应项才能看到效果)
修改背景颜色:

如果希望默认就是白背景,在vmd.rc最后加入
color Display Background white