VMD的console是十分强大的,也提供了很多内置命令,这里把当年研究VMD内置命令的笔记的一小部分发上来。和user guide有相似之处,但是我都尽量写成例子的形式来说明,绝大部分都是亲自试过的。可能当时有些地方写的不准确,也不完整,但是现在也懒得check了。有疑问还是对照user guide中的严格说法。
*****一些额外内容***** VMD里面所有行为,都可以用命令描述出来。打开VMD之后运行log sdf.txt,接下来干你的事,你干的所有事的等价的命令行都被记录到sdf.txt当中,运行log off停止记录。 atomselect之后占用内存,选择范围的原子越多占得越大,应当用完之后删除,比如atomselect1 delete,内存就释放了。但是atomselect编号仍然继续往后延,并不会重新占用已经删了的。 修改TKconsole的设置,通过修改D:studyVMD186pluginsnoarchtclvmdtkcon1.0tkcon-modified.tcl。比如里面的font create tkconfixed -family Courier -size 12,把12改成20,字号就变成20了。 在.vmdrc或者vmd.rc里面有很多被注释掉的内容,也有没有被注释的,都是控制启动后vmd的默认设置,比如开哪些窗口,窗口位置,光源什么的 *****以下为正文***** animate dup 0 复制当前帧到最后新的一帧 animate dup frame 2 0 复制22帧到新的帧animate pause 暂停播放,按回车或者随便瞎输个命令就可继续animate forward/for向下播放animate reverse/rev向前播放animate prev/next 向前/向后一帧animate skip 设置播放时的stepanimate delete all 删除所有帧animate speed 0.3 设置速度为0.3,数值>=0,<=1animate style once/loop/rock 设置播放模式animate styles 显示可用的播放模式,其实就是显示once、loop、rockanimate goto start/end/n 回到开始帧、末尾帧、第n帧atomselect keywords显示所有可以选择的关键字 macro指的就是那些charged、acidic之类的整体。atomselect macro 显示所有macroatomselect macro charged 显示charged的定义atomselect delmacro ions 删除ions的macroatomselect macro sdfsdf {resname ALA and hydrogen} 定义一个新的macro,如果已经有定义了,则覆盖设好的macro在graphics representations-selection-singlewords里面也会出现atomselect 3 "resid 25" frame last 选择3号分子最后一帧的resid 25。分子可以是数字或者top,所选内容就是普通的selection,用双引号或者{}括住,帧号可以是数字、first、last、now。 选择之后,会出现比如atomselect0,然后可以运行: atomselect0 num 显示所选的内容有多少原子atomselect0 list 显示所选的内容的原子的编号atomselect0 text 显示所选内容表示的意义atomselect0 molid 显示所选内容的分子编号atomselect0 frame 显示所选内容的所在帧。atomselect0 frame x设置选择的帧为xatomselect0 delete 删除atomselect0函数。atomselect0 global 将atomselect0移入全局命名空间atomselect0 get mass 得到atomselect0所选范围的质量,还可以是{x y z}得坐标,{x}仅x坐标。get后面可以接任何属性,见manual p77atomselect0 get structure 可以得到结构中每个残基所处的二级结构实际上不管是在图形界面选择newcartoon还是文本控制台输入get structure,都要调用stride来计算atomselect0 getbonds 得到成键列表atomselect0 setbonds 按照成键列表成键,比如{ {2 5} {4 6}}atomselect0 move 4x4 matrix 根据矩阵移动atomselect0 moveby {1 1 6} 把所选原子向1,1,6向量方向和距离上移动atomselect0 lmoveby offset_list: move each atom by an offset given in the list.atomselect0 moveto { 3 6 5} 把所选内容移动到3,6,5位置atomselect0 moveto position_list: move each atom to a point given by the appropriate list elementatomselect0 writepdb a.pdb 把目前所选原子写到当前文件夹(vmd所在文件夹)的a.pdb中set kk [atomselect 0 {resname ALA}] 定义$kk变量,用echo $kk可以查看其代表的内容,比如得到atomselect0 set mass [$sel get mass] set mass [$sel get mass]set kkk 4incr kkk 把kkk加1$sel set beta 0 # all values are set to zero$sel set beta $mass # copy mass to beta axes locations 显示所有坐标轴可能显示的位置axes location 得到当前坐标轴的位置axes location < of | origin | lowerleft | lowerright | upperleft | upperright > 设置坐标轴情况color scale method RGB设置调节颜色方法为RGB,也可以是BGR、RWB之类 colorinfo scale methods得到所有颜色调节方法列表colorinfo scale method得到现在用的颜色调节方法colorinfo scale midpoint或min或max 得到这三种情况对应的数值,比如0.5,0.1,1.0colorinfo categories 显示所有颜色分类,比如Type之类colorinfo category Resname 显示某个颜色分类,比如Resname分类下包含的预置的对不同残基的颜色colorinfo colors 显示有多少种预置颜色,比如redcolorinfo index或rgb purple 显示purple颜色的序号或者rgb值(默认以1为最大)display update off 禁止屏幕刷新,display屏幕就卡住了 display resetview 重置display distance x 设置东西与屏幕的距离,越大则分子离屏幕越近,相当于放大。不可太小比如几十,否则有凸镜的效果display get eyesep | focallength | height | distance | antialias | depthcue | culling |rendermode | size | stereo | projection | nearclip | farclip 得到相应的信息mol new在分子列表中创建一个空分子 draw xxxx命令大多数情况下与graphics [molid] xxxx是等价的,draw只能在top层上绘图,而graphics可以自己指定,相对于draw是更底层的绘图命令。graphics不能自定义绘图命令比如vmd_draw_unitcell这样的。如果当前一层都没有,draw可以自动生成一层,graphics不行。以下的都可以用draw来代替。 graphics 3 {0 2 0} 在3号分子,0,2,0位置上画个点 graphics 3 {0 0 0} {3 4 5} 在0,0,0与3,4,5之间连线。几个坐标之间大括号必须有空格隔开graphics 5 cylinder {0 1 0} {3 14 0} radius 1 filled yes resolution 20 在5号分子这两个点之间画一个柱形,半径是1,里面都充满,否则从截面就一个壳。resolution越大,越圆滑。graphics 5 triangle {0 0 0} {5 5 5} {0 4 0} 指定三个点画一个三角draw sphere { 0 0 0 } radius 3 resolution 15 画一个球draw text { 0 0 0 } "haha" size 3 在某个点写字,无论怎么缩放,字的大小都不变draw color 4 graphics 4 color red3 设定颜色,不会对已经画好的物件生效,只管以后的。对几何和文字颜色都管用。draw material Glossy 设定绘制的物件的材质。即便是已经画好的,也立刻变成现在设定的。draw delete all 删除所有画的物件draw delete 0 每画完一个物件,都会立刻显示此物件的id,这里删的是id=0的物件draw list 列出现在所有物件的iddraw exists 4 检查id=4的物件是否存在,存在返回1,否为0draw info 2 显示创造2号物件时用的指令draw replace 3 接下来创造的物件的id=3,代替之前3号id的物件。即便是更改颜色、材质的操作,也算一个id。下面示例中label中只要是写Bonds的,都可以是Atoms|Bonds|Angles|Dihedrals之一 和分子ID不一样,并非固定,比如Bonds 3,如果在label里面把之前的Bond的label都删了,就成了Bonds 0了label list 显示所有的label分类label list Bonds 显示所有键的labellabel add Bonds 0/347 0/4440 设定index 347和index 4440的键的labellabel show/hide Bonds all 显示/隐藏所有键的label,all也可以是label号来具体控制label delete Atoms all 删除所有原子的label,all也可以是label号来具体控制用鼠标点,新生成的label号从0开始,1、2、3、4...,从Graphics-label里面能看到顺序label graph Bonds 0 [文件名] 显示0号Bond lable的长度,输出所有帧中的长度。如果写了文件名,则输出到文件中而不显示label textsize 2.2 把label文字设成2.2,所有文字立刻生效。默认是1.0light num 显示目前有多少个光源 注意光源编号是从0开始的,0-3 light 2 on/off 把2号光源开或者关light 0 status 显示0号光源的状态light 1 rot x 40 把0号光源根据x轴转40度light 0 pos 显示0号光源目前坐标light 1 default 显示1号光源默认坐标light 1 pos { 2 3 1.1 } 将1号光源移到2,3,1.1位置logfile sdf.txt 把log信息写入sdf.txt。注意只有使改变了状态的指令才会被写入,比如light 0 pos {1.1 1 1},而draw color red或者查询状态的命令都不会被写入。 logfile off 停止写入logfile console 把本来要写入文件的信息直接在console里显示出来material list 显示所有材质,比如Opaque之类的 material settings Steel 显示Steel代表的具体的材质控制参数,5个小数。代表ambient, specular, diffuse, shininess, opacitymaterial add ttt 新加一个叫ttt的材质,默认等价于Opaquematerial copy ttt 拷贝ttt成为一个新的材质,名字自动生成显示出来material rename ttt xxx 把ttt改名为tttmaterial delete ttt 删除ttt材质material change diffuse xx 0;99 把xx材质的diffuse属性设为0.99measure avpos atomselect3 first 1 last 300 step 1 得到atomselect3选择的原子的从1至300帧之间的每个原子的平均位置 measure center atomselect3 weight mass 得到atomselect3的中心,用mass属性来作为权重参考。weight后面可以接各种属性,在手册77页table 5.5里面。比如还可以x、radius之类measure contacts 5 atomselect3 atomselect4 得到在atomselect4中的任意原子的5埃范围内的atomselect3中的未与之成键的原子。如果只写一个atomselect3,则atomselect4等于atomselect3。measure fit atomselect5 atomselect6 得到作用在atomselect5上,能使之与atomselect6的RMSD最小的4x4变换矩阵,可以套进atomselect0 move用measure gofr 计算rdf等内容。见p103measure sumweights atomselect7 weight mass 把atomselect7的所有原子的质量加起来。如果atomselect top protein,那么得到的就是蛋白质总质量,若charge,得到的就是总电荷。measure hbonds 3.5 30 atomselect0 atomselect1 显示所有氢键,角度<30,距离<3.5A。!!!!!!如果两个atomselect都有,则认为0是donor,1是acceptor!!!!!!。得到的结果第一个列表是donor的index,第二个列表是acceptor的index,第三个是氢的index。两个atomselect都必须在一个ID内。donor可以是氢,也可以是氢连着的原子。measure inverse { {1 2 3 4} { 2 5 6 8} { 8 3 5 6} { 1 4 6 2}}得到4*4矩阵的逆矩阵measure rgyr atomselect0 weight mass 得到atomselect0的radius of gyrationmeasure minmax atomselect0 显示atomselect0里面x、y、z坐标最小和最大的原子坐标measure rmsf atomselect0 first 50 last 100 step 2 得到atomselect0的每个原子从50帧到100帧的rmsf,两帧取样一次。可以省略selection后面的,默认为从头到尾,step=1。measure rmsd atomselect0 atomselect1 weight mass 得到两个selection之间的rmsd并考虑质量权重,所选的这两个部分必须原子数相同。比如可以选不同的帧的同一个部分。measure sasa 1.4 atomselect1 以1.4埃为探测球的半径,得atomselect1的SASA。还可以加[-points varname] [-restrict restrictedsel] [-samples numsamples]参数,见P104。得到的结果和mm_pbsa得到的输出文件的surface area项基本一致。用这个方法算,两个部分不能相加,比如1的sasa和2的sasa之和不等于1和2的总sasamol命令用的分子号,可以是独立的一个mol ID,也可以是all, top, active, inactive, displayed, on, off, fixed, free。mol new 创建一个新的空分子mol new f:sustiva.pdb 创建一个新分子,读入此文件mol addfile f:sustiva.pdb 读入此分子到top分子中mol new和mol addfile后面都可以接参数,type pdb读入pdb类型,还支持其它的,包括轨迹等。first、last 、step 设置读入轨迹文件时读哪些以及间隔多少。autobonds on/off决定是否自动连键。molid 5读入到id=5的分子,只对addfile管用。 mol load pdb f:\sustiva.pdb 好像和mol new没区别,不能接其它参数mol urlload 从某个URL地址读取mol pdbload 2BBM 读取某个四个字母的pdb结构,从RCSB获得mol list 显示目前已读取的分子信息mol list 分子号 显示分子号包括的全部分子的详细信息,包括显示方式mol color Chain 将默认原子上色方式改为Chain,似乎不管用mol representation CPK 将默认原子显示方式改为CPK,似乎不管用mol selection [select_method] 改变默认选择方法mol modcolor 0 top Chain 将top分子的0号representation改成Chain上色方式mol modmaterial 0 top ghost 将top分子的0号representation改成Ghost风格mol modmaterial 0 top CPK 将top分子的0号representation改成CPK显示方式mol modselect 0 top {index 3} 将top分子0号representation选择内容为index 3mol addrep 0 给0号分子新增一个representationmol delrep 1 top 删掉top分子1号representationmol delete top 删掉top分子mol on/off 2 显示/不显示mol id=2的分子mol active/inactive 2 激活/取消激活mol id=2的分子mol default style 显示style的默认设置mol default style CPK 设置默认style为CPKmol modrep 1 top 将top分子的1号representation套用默认设置,似乎没用mol fix/free 2 设置molid=2的分子是否fix(固定)mol top 3 设置3号分子为top分子mol cancel 3 停止3号分子载入轨迹mol reanalyze 2 重新分析并输出2号原子的结构,比如成键情况mol ssrecalc top 重新计算top分子的二级结构mol rename top pppp 重命名top分子为pppppmol repname top 0 显示top分子0号representation的名字mol rename top rep0 显示top分子名为rep0的representation的序号,若得到-1,说明没那个名字mol selupdate/colupdate 0 top on/off 对top分子0号representation,开不开Update Selection或Color Every Frame的选项mol smoothrep top 0 12对top分子0号representation的smooth显示值设为12mol showrep top 0 on/off 设置top分子0号representation显示不显示mol scaleminmax top 0 0.3 4.6 设置top分子0号rep的color scale范围为0.3-4.6mol scaleminmax top auto 设置top分子0号rep的color scale为自动mol drawframes molecule_number rep_number [frame specification] 可以同时播放多个轨迹,见P108molinfo list 列出所有分子的ID。 分子即便删了,它的ID以后也不会再次被使用 molinfo num 显示分子数数目molinfo top 显示top分子的IDmolinfo index 3 显示第3个分子的IDmolinfo top get { frame numframes a filename} 得到top分子的当前帧号,总帧数,和cell的a边长,和文件名。大括号里面写多少都行(如果就一个可不写大括号),属性都会以空格来分隔输出。大括号里支持的keywords见Tabel 8.3molinfo 0 get { {rep 0} {color 0} {rep 1} {color 1} } 得到第1、2个representation的形式和参数(比如NewCartoon和其调节参数),和第1、2个图层用的Coloring Method意义(如name)。注意读入轨迹后,切换到不同帧,get得到的是当前帧的信息,比如molinfo molinfo top get {a b c alpha beta gamma}得到的是当前帧的盒子信息。mouse mode x 设置鼠标成为某种模式。x=0代表设为旋转,1平移,2缩放,3 N设置为旋转第N个光源。4 N,N可以是 0: query item 1: pick center 2: pick atom 3: pick bond 4: pick angle 5: pick dihedral 6: move atom 7: move residue 8: move fragment 9: move molecule 10: force on atom 11: force on residue 12: force on fragment 比如mouse mode 4 0 设鼠标为查询某个原子信息状态mouse rocking on/off 设置鼠标拉动分子后,是否让分子继续旋转mouse stoprotation 停止分子旋转,包括用鼠标拉动其自动旋转,和rock等命令让分子旋转所导致的render list 显示目前可以用的渲染方法,比如POV3 render options POV3 显示当前使用POV3渲染器时的命令比如povray +W%w ......render options POV3 sdfsdf 设置使用POV3渲染器时的命令是sdfsdfrender default VRML-1 显示默认使用VRML-1渲染器的命令render POV3 ppp.pov [command] 得到POV3渲染器的输入文件ppp.pov,如果加了[command]项,则紧接着运行[command]里面的内容,比如执行渲染指令,其中%s会被换为ppp.pov。rock x by 0.1 每次空闲时redraw的时候,绕x轴转0.1度,亘古不停 rock x by 0.001 10000 每次空闲时redraw的时候,绕x轴转0.001度,走10000步之后向相反的方向转,etc.rock off或者直接点鼠标就停下rockrotate x by/to 90 沿x轴转相对90度/转到以最初视角为起点的绝对的90度 不改坐标 rotate stop 停止旋转quit或exit 退出VMD wait 4 等待4秒钟,这4秒内不能输入任何指令。屏幕上的动画照常播放。 translate by/to 1 3 2 平移到相对/绝对坐标1,3,2 不改坐标 scale by/to 4 使放大尺度因子f为现在的4倍/设置f为4。 to 0.01就比较合适了 不改坐标 stage lcoation < off | origin | bottom | top | left | right | behind 〉设置挡板在哪个位置 stage location 显示挡板的当前位置stage locations 显示所有挡板的可用位置,就是上面那一串stage panels 4 设置场景中panels数为4,最大30。也就是指挡板的格子数stage panels 显示目前用的panels数vmdinfo version 显示版本号 vmdinfo versionmsg 显示完整的版本信息,最好不要用,会自动开一个vmdvmdinfo authors 显示全部作者vmdinfo arch 显示目前的架构vmdinfo options 显示被用于编译VMD的选项,结果一般是WIN32 TCLvmdinfo www 显示VMD主页vmdinfo wwwhelp 显示VMD帮助主页,结果和上面一样user print keys 显示所有快捷键 user add key a dir 在Display窗口中,按a,就相当于输入了dir,即自定义快捷键menu list 列出所有可以列出的菜单,这些菜单往往不直接出现在GUI上,但很有用 menu cliptool on 显示剪切工具,可以将分子按照某个平面切掉平面另一面的所有原子。menu main off/on 关掉/打开VMD Mainmenu pdbtool on 只有前两个能用,但没什么用,后面那堆网站都已经纳入收藏夹menu navfly 打开飞行窗口,但是没有用menu pdbtool status 显示pdbtool窗口现在是开是关menu main loc 显示VMD main窗口当前位置menu main move 33 44 把VMD main窗口移到33,44坐标位置 |