计算化学公社

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

[VMD] VMD编写tcl脚本求助

[复制链接 Copy URL]

490

帖子

2

威望

5306

eV
积分
5836

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
通过模拟得到了一个二元混合体系(分别记为分子1和分子2),现在我想以某个分子(分子1)为中心,把它周围一定距离范围内的所有分子2都选出来,以便后续计算。

现在写出来的tcl脚本能实现找到所有满足条件的分子2,问题是:能否把这些分子的元素符号以及x、y、z坐标输出成一个坐标文件以便VMD可以直接打开。

我是通过atomselect0 get {name x y z}这样的方式,但是这样的问题就是一行出现很多次元素名称以及坐标,没有换行。

6万

帖子

99

威望

6万

eV
积分
125152

管理员

公社社长

2#
发表于 Post on 2018-3-28 15:11:57 | 只看该作者 Only view this author
用lindex命令把列表里的元素提出来之后再输出
北京科音自然科学研究中心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

490

帖子

2

威望

5306

eV
积分
5836

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2018-3-29 08:48:34 | 只看该作者 Only view this author
sobereva 发表于 2018-3-28 15:11
用lindex命令把列表里的元素提出来之后再输出

OK,搞定了。之前没弄明白列表里具体的信息。
谢谢sob老师~

490

帖子

2

威望

5306

eV
积分
5836

Level 6 (一方通行)

4#
 楼主 Author| 发表于 Post on 2018-3-29 19:14:06 | 只看该作者 Only view this author
sobereva 发表于 2018-3-28 15:11
用lindex命令把列表里的元素提出来之后再输出

sob老师您好,再请问您一下:能否将选中的结构输出成一个gro文件呢?  还是说只有先提取了各部分内容,然后另外写程序来输出。

6万

帖子

99

威望

6万

eV
积分
125152

管理员

公社社长

5#
发表于 Post on 2018-3-29 20:21:05 | 只看该作者 Only view this author
可以用$sel writegro citrus.gro来把$sel对应的原子保存出gro文件
北京科音自然科学研究中心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

31

帖子

0

威望

362

eV
积分
393

Level 3 能力者

6#
发表于 Post on 2020-12-14 14:11:35 | 只看该作者 Only view this author
楼主您好!我也想统计给定距离范围内的这样一个二元或三元的dimer,但由于本人才疏学浅,尝试后还是不会写tcl脚本,您方便的话可以分享一下吗?感谢!

490

帖子

2

威望

5306

eV
积分
5836

Level 6 (一方通行)

7#
 楼主 Author| 发表于 Post on 2020-12-14 18:16:41 | 只看该作者 Only view this author
本帖最后由 让你变成回忆 于 2020-12-14 18:17 编辑
HJC 发表于 2020-12-14 14:11
楼主您好!我也想统计给定距离范围内的这样一个二元或三元的dimer,但由于本人才疏学浅,尝试后还是不会写t ...

这个脚本年代有些久远了,后来我用了其他语言实现该功能(不过由于这里面调用了别人的一些代码,所以不方便公开代码,抱歉),就再也没用过这个tcl脚本了。
我大概找了一下,你可以试试下面的代码:
  1. set nmol [llength [lsort -unique [[atomselect top all] get residue]]]
  2. set guest [atomselect top "resid 1400"]
  3. set gcom [measure center $guest weight mass]
  4. set x0 [lindex $gcom 0]
  5. set y0 [lindex $gcom 1]
  6. set z0 [lindex $gcom 2]

  7. for {set imol 1} {$imol <= $nmol} {incr imol} {
  8. set sel [atomselect top "resid $imol"]
  9. set COM [measure center $sel weight mass]
  10. set x($imol) [lindex $COM 0]
  11. set y($imol) [lindex $COM 1]
  12. set z($imol) [lindex $COM 2]
  13. }


  14. $sel delete

  15. set crit 20

  16. set output [open ./output w]
  17. for {set i 1} {$i <= $nmol} {incr i} {
  18. set sel [atomselect top "resid $i"]
  19. set dx2 [expr ($x($i)-$x0)**2]
  20. set dy2 [expr ($y($i)-$y0)**2]
  21. set dz2 [expr ($z($i)-$z0)**2]
  22. set dist [expr sqrt($dx2+$dy2+$dz2)]
  23. if {$dist <= $crit} {
  24.         set data [$sel get { resid resname name serial x y z}]
  25.         set numh [$sel num]
  26.         for {set j 0 } {$j < $numh} {incr j} {
  27.                 puts $output [lindex $data $j]
  28.         }
  29. }
  30. }
  31. close $output
复制代码


31

帖子

0

威望

362

eV
积分
393

Level 3 能力者

8#
发表于 Post on 2020-12-14 19:51:50 | 只看该作者 Only view this author
让你变成回忆 发表于 2020-12-14 18:16
这个脚本年代有些久远了,后来我用了其他语言实现该功能(不过由于这里面调用了别人的一些代码,所以不方 ...

谢谢您的帮助!我尝试一下,如果还是不会想等您空闲时,与您再进行交流~

1

帖子

0

威望

45

eV
积分
46

Level 2 能力者

9#
发表于 Post on 2021-12-23 21:43:14 | 只看该作者 Only view this author
您好,我想从钙钛矿体系中选出甲胺分子,您有类似的脚本可以分享一下吗

6万

帖子

99

威望

6万

eV
积分
125152

管理员

公社社长

10#
发表于 Post on 2021-12-24 01:35:10 | 只看该作者 Only view this author
wdp 发表于 2021-12-23 21:43
您好,我想从钙钛矿体系中选出甲胺分子,您有类似的脚本可以分享一下吗

结合实际情况举一反三
VMD里原子选择语句的语法和例子
http://sobereva.com/504http://bbs.keinsci.com/thread-14267-1-1.html
北京科音自然科学研究中心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-23 16:54 , Processed in 0.456924 second(s), 26 queries , Gzip On.

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