计算化学公社

标题: VMD选择语言作图的成键问题 [打印本页]

作者
Author:
mcruijff    时间: 2022-3-2 05:27
标题: VMD选择语言作图的成键问题
各位老师好! 本人是VMD新手,正在学习PDB文件的VMD可视化, 我尝试使用 VMD选择语言 可视化 氧化石墨烯的结构。遇到了以下问题:
我想将碳骨架上的碳原子(CX)与 羟基(H1A)上的氧原子(OL)相连 (距离限制为1.5A),
但是每次CX与OL相连时, 相邻两个羟基上的OL也会相连(我认为原因是OL与OL, 和 OL与CX 具有相同的距离, 因为一旦我提高距离限制,两种键都会消失)
请教:有没有语句可以只保留OL与CX的键。谢谢!

问题如图中情况 (青绿色:碳原子; 红色:氧原子; 白色: 氢原子)

作者
Author:
ggdh    时间: 2022-3-2 11:43
本帖最后由 ggdh 于 2022-3-2 11:46 编辑

1 弄清楚原子编号
2 topo addbond 1 2  给1 2 原子之间添加键
3 topo delbond 1 2 删除 12 原子之间的键
另外
"如果两个原子间没有被判断为成键,但你希望让它们之间显示键,就选择Mouse - Add/Remove Bonds,然后点击这两个原子的正中心,它们就连上了。如果你点击两个已经成键的原子,它们之间的键就会被去掉。" from谈谈VMD可视化程序的连接关系的判断和设置问题l

作者
Author:
mcruijff    时间: 2022-3-2 13:23
谢谢老师的建议!我同时也参考了这篇文章。现在纠结于批量添加类似的键,并排除相近氧原子之间成键。
我的PDB文件是自己写代码生成的,里面有用的信息有resname, type的信息。
结构比较大,类似的成键问题很多,手动估计不太行
作者
Author:
sobereva    时间: 2022-3-2 16:39
自己写个VMD tcl脚本,循环碳和氧,二者距离小于某个值就用topo addbond加上键就完了,这样不会牵扯到O-O

Tcl迅速入门教程 http://bbs.keinsci.com/thread-157-1-1.html

作者
Author:
mcruijff    时间: 2022-3-2 23:38
sobereva 发表于 2022-3-2 16:39
自己写个VMD tcl脚本,循环碳和氧,二者距离小于某个值就用topo addbond加上键就完了,这样不会牵扯到O-O
...

谢谢老师的建议和帖子!我仔细研究下。
作者
Author:
mcruijff    时间: 2022-3-20 10:34
回来update一下自己的帖子, 在老师的建议和帮助下, 我已经成功用tcl脚本解决了atom自连问题
方法是通过每次只考虑两种类型的原子是否成键,并设定成键的阈值(上限和下限),效果对比如图,部分代码如下:

topo clearbonds

set carbon [atomselect top "resname GGG"]
set cdx [$carbon get index]
set oxygen_ol [atomselect top "name OL"]
set ol_idx [$oxygen_ol get index]


foreach co $cdx {foreach olt $ol_idx {
set dist [measure bond "$co $olt"]
if {($dist>1.4187) && ($dist <= 1.492)} {topo addbond $co $olt}
}}

puts {CX-OL finished}



现在我遇到了一个新问题:由于我有一个结构特别大,大约包括250,000个atom,用上述方法 vmd会out of memory.
请问VMD有没有分区域画图(判断成键的方法), 或者我的代码还可以修改?  谢谢!

作者
Author:
Jerry_Fan    时间: 2025-3-25 16:18
mcruijff 发表于 2022-3-20 10:34
**** 作者被禁止或删除 内容自动屏蔽 ****

多帧的应该怎么办呢?每一帧也不会自动更新




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