计算化学公社

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

[VMD] VMD 用于测算结冰速率的tcl脚本出错

[复制链接 Copy URL]

7

帖子

0

威望

476

eV
积分
483

Level 3 能力者

本帖最后由 ysrhhhh 于 2024-4-22 20:54 编辑

本人目前想通过tcl脚本来计算结冰的速率,在群中咨询了之后,编写了一个通过O-O键来判断当前水分子是属于冰晶分子还是自由水分子的脚本,但是在加载到VMD之后出现了报错,以下是tcl脚本的具体内容,由于之前没有编写过tcl脚本还请大家指出错误,我自己的想法是:通过判断O-O之间的距离是否在2.5A内,在这个范围内则为水分子,不在则是冰晶分子,因为查到的1h冰晶的O-O键长为2.7A,最终获得自由水分子个数,模型中用的tip4p水分子。
set outfile [open growthrate.dat w]
set oxygen_sel [atomselect top "name OW"]
#在某一帧上进行循环
set nf [molinfo top get numframes]
proc analyze_frame {} {
    global oxygen_sel outfile
    set num_oxygen_atoms [$oxygen_sel num]
    set frame_sum 0
    for {set i 0} {$i < $num_oxygen_atoms} {incr i 1} {
        set atom1 [$oxygen_sel get $i]
        set neighbors [$oxygen_sel within 2.5 of $atom1]
        set num_neighbors [llength $neighbors]
        if {$num_neighbors > 1} {
            incr frame_sum
        }
    }
    puts $outfile $frame_sum
}
#在每一帧上进行循环
animate goto 0
for {set i 0} {$i < $nf } {incr i} {
    animate goto $i
    analyze_frame
}
#关闭文件
close $outfile
puts "All Done!"

错误信息:


还请大家帮忙看一下哪里出错了

6万

帖子

99

威望

6万

eV
积分
125189

管理员

公社社长

2#
发表于 Post on 2024-4-23 08:44:42 | 只看该作者 Only view this author
atomselect对象根本没有get后面跟上一个序号的用法

参考北京科音分子动力学与GROMACS培训班(http://www.keinsci.com/workshop/KGMX_content.html)的ppt了解get该怎么用:
北京科音自然科学研究中心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

7

帖子

0

威望

476

eV
积分
483

Level 3 能力者

3#
 楼主 Author| 发表于 Post on 2024-4-23 21:23:33 | 只看该作者 Only view this author
sobereva 发表于 2024-4-23 08:44
atomselect对象根本没有get后面跟上一个序号的用法

参考北京科音分子动力学与GROMACS培训班(http://www ...

谢谢社长,我重新修改了一下,但还是出现了问题,以下是我修改后的文件,这次是within这里出现了报错(invalid command name),但是反复尝试了其他表示,还是没有解决,还请指点,还有修改了上次的错误部分没出现报错,但是还是没有完整运行下来,也烦请再看下是否合理
set outfile [open growthrate.dat w]
set oxygen_sel [atomselect top "name OW"]
#在某一帧上进行循环
set nf [molinfo top get numframes]
proc analyze_frame {} {
    global oxygen_sel outfile
    set num_oxygen_atoms [$oxygen_sel num]
    set frame_sum 0
    for {set i 0} {$i < $num_oxygen_atoms} {incr i 1} {
        foreach j [$oxygen_sel list] {
            set coordinate($j) [atomselect top "index $j"]
        set neighbors [ $oxygen_sel within 2.5 of $coordinate($j)]
        set num_neighbors [llength $neighbors]
        if {$num_neighbors > 1} {
            incr frame_sum
        }
      }
    }
    puts $outfile $frame_sum
}
#在每一帧上进行循环
animate goto 0
for {set i 0} {$i < $nf } {incr i} {
    animate goto $i
    analyze_frame
}
#关闭文件
close $outfile
puts "All Done!"

1562

帖子

0

威望

5007

eV
积分
6569

Level 6 (一方通行)

4#
发表于 Post on 2024-4-23 21:45:47 | 只看该作者 Only view this author
https://www.bilibili.com/video/B ... arch-card.all.click      

你看这个教程更合适。
又菜又爱玩

6万

帖子

99

威望

6万

eV
积分
125189

管理员

公社社长

5#
发表于 Post on 2024-4-24 06:31:01 | 只看该作者 Only view this author
ysrhhhh 发表于 2024-4-23 21:23
谢谢社长,我重新修改了一下,但还是出现了问题,以下是我修改后的文件,这次是within这里出现了报错(inv ...

明显用法不对
within只能出现在选择语句里,而$oxygen_sel是个atomselect对象,后面显然不能直接接一个选择语句,根本没有这种用法
北京科音自然科学研究中心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

本版积分规则 Credits rule

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

GMT+8, 2026-2-26 07:30 , Processed in 0.216020 second(s), 23 queries , Gzip On.

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