计算化学公社

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

[VMD] VMD的错误measure dihed: empty atom index

[复制链接 Copy URL]

146

帖子

0

威望

3379

eV
积分
3525

Level 5 (御坂)

我要统计聚合物中每一帧的二面角,脚本如下

  1. set a [atomselect top "name O1"]
  2. set l1 [$a get index]
  3. foreach ind $l1 {
  4. set b [atomselect top "name H1 and withinbonds 3 of index $ind"]
  5. set c [atomselect top "name N1 and withinbonds 2 of index $ind"]
  6. set d [atomselect top "name C4 and withinbonds 1 of index $ind"]
  7. set l2 [$b get index]
  8. set l3 [$c get index]
  9. set l4 [$d get index]
  10. set tmp [list $ind $l2 $l3 $l4]
  11. set result [measure dihed $tmp]
  12. puts "$ind $l2 $l3 $l4 $result"
  13. }
  14. puts "All Done!"
复制代码
有空白数据报错,measure dihed: empty atom index就停止了。怎么忽略这些数据呢,继续运行呢?


146

帖子

0

威望

3379

eV
积分
3525

Level 5 (御坂)

6#
 楼主 Author| 发表于 Post on 2022-6-10 16:06:58 | 只看该作者 Only view this author
问题已解决。该脚本测量某一帧中所有酰胺键-NH-CO-的二面角。把最终tcl脚本放出来,请大佬批评指正,和同僚互相学习
  1. set a [atomselect top "name O1"]
  2. set myfile [open Dihedral.dat w]
  3. set l1 [$a get index]
  4. foreach ind $l1 {
  5. set b [atomselect top "name H1 and withinbonds 3 of index $ind"]
  6. set c [atomselect top "name N1 and withinbonds 2 of index $ind"]
  7. set d [atomselect top "name C4 and withinbonds 1 of index $ind"]
  8. if {[$b num]==1 && [$c num]==1 && [$d num]==1} {
  9. set l2 [$b get index]
  10. set l3 [$c get index]
  11. set l4 [$d get index]
  12. set tmp [list $ind $l2 $l3 $l4]
  13. #puts $myfile "$ind $l2 $l3 $l4"
  14. set result [measure dihed $tmp]
  15. puts $myfile "$ind $l2 $l3 $l4 $result"
  16. }
  17. }
  18. puts "All Done!"
复制代码

146

帖子

0

威望

3379

eV
积分
3525

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2022-6-10 09:16:23 | 只看该作者 Only view this author
sobereva 发表于 2022-6-10 06:55
比如$b num,返回的数值为0就说明没选中任何原子

万分感谢

6万

帖子

99

威望

6万

eV
积分
125155

管理员

公社社长

4#
发表于 Post on 2022-6-10 06:55:04 | 只看该作者 Only view this author
ZZU_SCU 发表于 2022-6-9 10:01
您可以详细说一下哪些命令?我学习一下,使用了llength $tmp=4,好像不能解决问题

比如$b num,返回的数值为0就说明没选中任何原子
北京科音自然科学研究中心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

146

帖子

0

威望

3379

eV
积分
3525

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2022-6-9 10:01:31 | 只看该作者 Only view this author
sobereva 发表于 2022-6-9 08:02
检测b、c、d是不是空的,是就跳过这一轮

您可以详细说一下哪些命令?我学习一下,使用了llength $tmp=4,好像不能解决问题

6万

帖子

99

威望

6万

eV
积分
125155

管理员

公社社长

2#
发表于 Post on 2022-6-9 08:02:30 | 只看该作者 Only view this author
检测b、c、d是不是空的,是就跳过这一轮
北京科音自然科学研究中心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

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

GMT+8, 2026-2-24 09:25 , Processed in 0.168951 second(s), 24 queries , Gzip On.

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