计算化学公社

标题: 一个保存和加载VMD分子视角的简单脚本 [打印本页]

作者
Author:
TretopL    时间: 2025-11-17 14:03
标题: 一个保存和加载VMD分子视角的简单脚本
本帖最后由 TretopL 于 2025-11-17 16:58 编辑

最近要画一批蛋白质体系下包含等值面的图,一个个摆视角很麻烦(用简单的rotate等指令调整到我满意的视角也比较麻烦),故而想要找一个便捷的方法来保存/加载VMD的视角
查阅手册发现,vmd查看分子的的视角通过一些矩阵进行存储(包括center_matrix rotate_matrix scale_matrix global_matrix),并可以很方便地用molinfo xxx get指令得到,并用molinfo xxx set进行加载
但是实际操作中,molinfo xxx get/set的指令比较长,矩阵信息比较长故而复制起来比较麻烦,在多次程序启动时复用也不太方便


所以参考了
http://bbs.keinsci.com/thread-17814-1-1.html
http://bbs.keinsci.com/thread-43696-1-1.html
的实现思路
自己写了个简单的tcl脚本,简化一下流程。

这个脚本添加了sv(save view),lv(load view)两个指令,顾名思义,分别用于保存视角矩阵和加载视角矩阵。前者会把当前窗口中top分子的视角矩阵保存在指定目录下的txt文件中,后者从此文件中读取并对所有分子加载此视角。此外
workflow通常是:摆好分子朝向,sv,打开其他体系,lv

由于把视角写在了文件里,所以关闭vmd也并不会失去这些信息。

使用:
sv: 把当前top分子视角保存到槽位v1
sv 2: 把molid=2的分子视角保存到槽位v1
sv 2 v3: 把molid=2的分子视角保存到槽位v3
sv v2:把当前top分子视角保存到槽位v3
lv:从槽位v1读取视角,应用到所有分子
lv v2: 从槽位v2读取视角,应用到所有分子
lv v2 3: 从槽位v2读取视角,只用于molid=3的分子

安装:只需要在.vmdrc/vmd.rc中source此脚本即可,同时记得修改脚本里vp_file的路径为你机器上的路径(显然,这个路径必须有写入权限,否则将报permission denied错)。
i.e.
加入vmdrc:(当然,你直接把脚本内容复制进vmdrc也可以用,但是会让你的vmdrc很乱)
source {/path/to/slview.tcl}
修改脚本:
set ::vp_file "/path/to/vp.txt"


鄙人使用的VMD版本:LINUX_64 OPENGL, CUDA, OptiX, OSPRay
如果脚本有什么问题,欢迎各位老师同学指正。不胜感激。







作者
Author:
Uus/pMeC6H4-/キ    时间: 2025-11-17 14:21
单纯是保存与加载四个视角相关的矩阵的话,善用论坛搜索功能不难找到既往帖子……
http://bbs.keinsci.com/thread-17814-1-1.html
http://bbs.keinsci.com/thread-43696-1-1.html
作者
Author:
TretopL    时间: 2025-11-17 17:01
Uus/pMeC6H4-/キ 发表于 2025-11-17 14:21
单纯是保存与加载四个视角相关的矩阵的话,善用论坛搜索功能不难找到既往帖子……
http://bbs.keinsci.com ...

确实参考了这两篇帖子,不过脚本是两个月前写的,今天看到有人在群里问类似的问题才想起来分享,结果把参考给忙忘了。
于是把之前写了一半的功能更新弄完了,也算弥补一下尴尬的事实
感谢dalao指出




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3