计算化学公社

 找回密码 Forget password
 注册 Register

VMD的错误measure dihed: empty atom index

查看数: 3001 | 评论数: 5 | 收藏 Add to favorites 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-6-8 22:00

正文摘要:

我要统计聚合物中每一帧的二面角,脚本如下 set a [atomselect top "name O1"] set l1 [$a get index] foreach ind $l1 { set b [atomselect top "name H1 and withinbonds 3 of index $ind"] set c [atom ...

回复 Reply

ZZU_SCU 发表于 Post on 2022-6-10 16:06:58
问题已解决。该脚本测量某一帧中所有酰胺键-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!"
复制代码

ZZU_SCU 发表于 Post on 2022-6-10 09:16:23
sobereva 发表于 2022-6-10 06:55
比如$b num,返回的数值为0就说明没选中任何原子

万分感谢
sobereva 发表于 Post on 2022-6-10 06:55:04
ZZU_SCU 发表于 2022-6-9 10:01
您可以详细说一下哪些命令?我学习一下,使用了llength $tmp=4,好像不能解决问题

比如$b num,返回的数值为0就说明没选中任何原子
ZZU_SCU 发表于 Post on 2022-6-9 10:01:31
sobereva 发表于 2022-6-9 08:02
检测b、c、d是不是空的,是就跳过这一轮

您可以详细说一下哪些命令?我学习一下,使用了llength $tmp=4,好像不能解决问题
sobereva 发表于 Post on 2022-6-9 08:02:30
检测b、c、d是不是空的,是就跳过这一轮

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

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

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