计算化学公社

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

[VMD] 关于在VMD中利用脚本输出一定范围内原子的成键信息

[复制链接 Copy URL]

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

本人自己编写了一个简单的tcl脚本用于判断选中原子是否成键,但是在运行时出现错误:invalid bareword "get"
in expression "(sqrt(($i _@_get x-$j get x)*($i ge...";
should be "$get" or "{get}" or "get(...)" or ...
我自己修改的一段时间问题没有解决!特此发帖请各位高手帮帮忙!!!!谢谢大家了
  1. mol load gro cntsol_md.gro
  2. set outfile [open ruanyang.dat w]
  3. set a [atomselect top "resname gri and y > 25.389998"]
  4. puts $outfile [$a get resid]
  5. close $outfile
  6. set list_1 {}
  7. set list_2 {}

  8. foreach {i j} {open ruanyang.dat r} {
  9.   set x1 {$i get x}
  10.   set y1 {$i get y}
  11.   set z1 {$i get z}
  12.   set x2 {$j get x}
  13.   set y2 {$j get y}
  14.   set z2 {$j get z}
  15.   
  16.   set list_1 [expr (sqrt(($x1-$x2)*($x1-$x2)+($y1-$y2)*($y1-$y2)+($z1-$z2)*($z1-$z2)))]
  17.   
  18.   if {$list_1 < = 1.42 && $list_1 > 1.40} {
  19.    lappend list_1 $i $j
  20.    } else {
  21.    lappend list_2 $list_1
  22.   }
  23. }

  24. mol top delete
复制代码


评分 Rate

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

查看全部评分 View all ratings

5万

帖子

99

威望

5万

eV
积分
112351

管理员

公社社长

2#
发表于 Post on 2015-4-3 17:08:42 | 只看该作者 Only view this author
暂时太忙没时间仔细看,貌似set x1 {$i get x}应该为set x1 [$i get x]
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2015-4-3 18:12:15 | 只看该作者 Only view this author
谢谢Sob老师的回帖,问题解决的差不多了!你说的那个地方是有错误!等我改好了,把正确的脚本传上来!给大家做个参考 Sob老师的量化培训班一定会很精彩的

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

4#
 楼主 Author| 发表于 Post on 2015-4-4 14:28:30 | 只看该作者 Only view this author
已顺利解决这个问题,其实这个脚本不仅可以得到键的信息,也可以得到角,二面角的信息!(只要进行适当的修改)。这个是第一次写TCL脚本,其中有不少不足的地方!(特别是在数学计算的地方,可以利用  向量的计算代替,可以提高计算效率)!希望有懂TCL的坛友们,将这个脚本进行完善! 谢谢

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2015-4-4 14:29:09 | 只看该作者 Only view this author
  1. mol load gro xxx.gro
  2. set a [atomselect top "resname gri and y > distance"]
  3. set resnb [$a get resid]
  4. set xyz [$a get {x y z} ]
  5. set b {}
  6. set d {}

  7. set out_in [open bond.txt w]
  8. set out_ry [open bond_out.txt w]


  9. foreach i $resnb {
  10.         foreach j $resnb {
  11.            if $j>$i {
  12.                         set x1 [[atomselect top "resid $i"] get x]
  13.                         set y1 [[atomselect top "resid $i"] get y]
  14.                         set z1 [[atomselect top "resid $i"] get z]
  15.                         set x2 [[atomselect top "resid $j"] get x]
  16.                         set y2 [[atomselect top "resid $j"] get y]
  17.                         set z2 [[atomselect top "resid $j"] get z]
  18.                         set r [expr {sqrt(($x1-$x2)*($x1-$x2)+($y1-$y2)*($y1-$y2)+($z1-$z2)*($z1-$z2))}]
  19.                         if {$r < 1.43&&$r > 1.40} {
  20.                                 lappend b "$i $j $r \n"
  21.                         } else {
  22.                                 lappend d "$i $j \n"
  23.                         }
  24.                 }
  25.         }
  26. }

  27. puts $out_in $b
  28. puts $out_ry $d
  29. close $out_in
  30. close $out_ry

  31. mol delete top
复制代码


评分 Rate

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

查看全部评分 View all ratings

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 09:42 , Processed in 0.170485 second(s), 22 queries , Gzip On.

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