计算化学公社

 找回密码 Forget password
 注册 Register
Views: 7919|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

[VMD] 求助:博文http://sobereva.com/121操作遇到问题

[复制链接 Copy URL]

159

帖子

3

威望

1507

eV
积分
1726

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 liaorongbao 于 2020-11-27 18:37 编辑

http://sobereva.com/121是指导如何在.pdb文件中设好原子间键连方式然后用博文中的脚本读取后再让vmd软件原版显示出来由.pdb文件定义的键连方式图案的方法。我采用两个H2O分子作为练习的案例,两个水分子距离比较远,本来是没有氢键的。在练习中我假设需要用VMD软件显示第一个水分子的O与第二个水分子的H之间的氢键。
用gview制作2H2O.pdb文件如下:
REMARK   1 File created by GaussView 6.0.16
HETATM    1  O           0      -1.259  -1.631  -1.251                       O
HETATM    2  H           0      -0.299  -1.631  -1.251                       H
HETATM    3  H           0      -1.580  -0.726  -1.251                       H
HETATM    4  O           0      -3.541  -4.720  -0.665                       O
HETATM    5  H           0      -3.165  -5.154  -1.434                       H
HETATM    6  H           0      -2.870  -4.179  -0.242                       H
END
CONECT    1    2    3    6
CONECT    2    1
CONECT    3    1
CONECT    4    5    6
CONECT    5    4
CONECT    6    4    1
原子个数有6个,所以博文中的set natm 6应该是没问题的。
博文中set nskipline 后边跟着的数字比natm大1,但容易发现CONECT显示在第9行。
第一个问题:当前情况采用set nskipline 7还是set nskipline 8呢?

现在我已经在2H2O.pdb文件中设定第一个水分子的O原子与第二个水分子的H原子有单键(就当作代表氢键吧)。
博文中有个Tcl脚本,按2H2O.pdb体系设定脚本的原子数natm=6和跳过的行数nskipline=7(是不是应该写成8?),然后博文中.pdb文件的路径和名称改写成我的.pdb文件的路径和名称。
即为把原博文路径语句set rdpdbcon [open "D://CM//my program//Multiwfn//vtx.pdb" r]
改为我的2H2O.pdb文件的路径set rdpdbcon [open "E://Program Files (x86)//University of Illinois//VMD//2H2O.pdb" r]
这样改没问题吧?
第二个问题:目录符号是//而不是\,百度了一下编程语言中用//,是为了避免转义,是不是这样?


然后我就双击vmd.exe,把2H2O.pdb拖入 VMD main窗口,这个时候vmd.exe是不显示2H2O.pdb中设定的氢键的,因为Tcl脚本还没发力。
第三个问题:博文说:“下面这个Tcl脚本就是根据上述原理通过读取CONECT字段来设定VMD中原子间连接关系。拷贝到Tcl窗口下即可运行”。这句话也许对多数人不是问题但我却不知怎么操作
我的方法如下:
复制博文的脚本,按我的文件情况修改脚本。然后把修改好的脚本制作成connect.bat文件,把这个文件放到vmd.exe所在目录里。
在vmd.exe的黑色命令窗口执行source connect.bat,显示cannot read "self": no such variable
脚本语句[size=11.375px]scan [string range $line 6 84] "%d %d %d %d %d %d %d %d %d %d %d %d %d" self cn(1) cn(2) cn(3) cn(4) cn(5) cn(6) cn(7) cn(8) cn(9) cn(10) cn(11) cn(12)中有个self,是不是没有被赋值?也不知道怎么回事

如下是我的connect.bat文件
#Programmed by Sobereva, 2012-Jan-25
set natm 6
set nskipline 7
#itype=0 means reset connectivity by user-defined list, =1 means add self-defined connectivity list to the original one
set itype 1
set rdpdbcon [open "E://Program Files (x86)//University of Illinois//VMD//2H2O.pdb" r]
#set rdpdbcon [open "E:\Program Files (x86)\University of Illinois\VMD\2H2O.pdb" r]
#E:\Program Files (x86)\University of Illinois\VMD
#Skip other lines
for {set i 1} {$i<=$nskipline} {incr i} {
gets $rdpdbcon line
}

#Cycle each atom
set ird 1
for {set iatm 1} {$iatm<=$natm} {incr iatm} {

if {$ird==1} {
for {set i 1} {$i<=12} {incr i} {set cn($i) 0}
gets $rdpdbcon line
scan [string range $line 6 84] "%d %d %d %d %d %d %d %d %d %d %d %d %d" self cn(1) cn(2) cn(3) cn(4) cn(5) cn(6) cn(7) cn(8) cn(9) cn(10) cn(11) cn(12)

set tmplist {}
#Formation of connectivity list
for {set i 1} {$i<=12} {incr i} {
  if {$cn($i)==0} {break}
  lappend tmplist [expr $cn($i)-1]
}
}

if {$self==$iatm} {
#puts Atom\ serial:\ $iatm\ \ User-connectivity:\ $tmplist
set sel [atomselect top "serial $iatm"]
if {$itype==0} {
  $sel setbonds "{$tmplist}"
} else {
  set orglist [$sel getbonds]
  $sel setbonds "{[concat [lindex $orglist 0] $tmplist]}"
}
$sel delete
set ird 1
} else {
set ird 0
}

}
close $rdpdbcon













6万

帖子

99

威望

5万

eV
积分
120159

管理员

公社社长

2#
发表于 Post on 2020-11-27 18:12:39 | 只看该作者 Only view this author
把问题搞得太复杂了
直接在VMD里用mouse - add/remove bonds,点击相应两个原子就能连上键,然后保存成mol文件,以后再载入mol时成键关系还是你想要的状态。仔细看
谈谈VMD可视化程序的连接关系的判断和设置问题
http://sobereva.com/534http://bbs.keinsci.com/thread-16396-1-1.html

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
liaorongbao + 3 谢谢

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

159

帖子

3

威望

1507

eV
积分
1726

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2020-11-27 18:34:32 | 只看该作者 Only view this author
sobereva 发表于 2020-11-27 18:12
把问题搞得太复杂了
直接在VMD里用mouse - add/remove bonds,点击相应两个原子就能连上键,然后保存成mol ...

博文http://sobereva.com/534中那个简单的处理个别个连线的方法我也读到了。实际上我面对的体系有几十个原子需要在VMD中人工连线。2H2O.pdb这个案例只是为了简化问题。我不想按http://sobereva.com/534费力地在VMD中手动连接几十个原子。现在就是想学学批量处理的http://sobereva.com/121。求社长再回复一下具体怎么操作

6万

帖子

99

威望

5万

eV
积分
120159

管理员

公社社长

4#
发表于 Post on 2020-11-27 18:45:49 | 只看该作者 Only view this author
1 nskipline 8

2 tcl语言本来就那么规定的。用/或\\也可以

3 读取有问题,导致self没被赋值

评分 Rate

参与人数
Participants 1
eV +4 收起 理由
Reason
liaorongbao + 4 谢谢

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

159

帖子

3

威望

1507

eV
积分
1726

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2020-11-27 18:53:14 | 只看该作者 Only view this author
sobereva 发表于 2020-11-27 18:12
把问题搞得太复杂了
直接在VMD里用mouse - add/remove bonds,点击相应两个原子就能连上键,然后保存成mol ...

把上边的7改成8似乎就出现了,谢谢社长关注!

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-16 12:41 , Processed in 0.156619 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list