计算化学公社

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

[CP2K] 求助:怎样从cp2k轨迹文件(xyz)追踪并提取出小分子片段的数量随时间的变化

[复制链接 Copy URL]

62

帖子

0

威望

1104

eV
积分
1166

Level 4 (黑子)


         接触动力学有一段时间了,通过看文献经常能看到下边的图,就是大家从轨迹文件中提取出各个时间段对应的小分子数量,图片中的是关于甲烷燃烧的过程中各个分子的数量岁时间演化的数量,由于编程基础有点差,我一直不知道怎么才能从轨迹文件中采集这些数据,还希望各位老师和同学们能够指点迷津,有什么能够实现这种功能的脚本或者软件,能够解决我遇到的问题,谢谢啦!


496

帖子

11

威望

4277

eV
积分
4993

Level 6 (一方通行)

2#
发表于 Post on 2022-3-27 22:32:30 | 只看该作者 Only view this author
same fragment as {element C} && numbonds=1 CO
same fragment as {element C} && numbonds=4 CH4
same fragment as {element C} && numbonds=2 CO2
same fragment as {element O} && numbonds=2 H2O
same fragment as {element O} && numbonds=1 && not same fragment as {element C} O2
按照上述片段选择就可以定义CO、CH4、CO2等了,然后通过for循环统计每帧的片段数目就行了

评分 Rate

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

查看全部评分 View all ratings

自由发挥,野蛮生长

6万

帖子

99

威望

6万

eV
积分
125127

管理员

公社社长

3#
发表于 Post on 2022-3-28 10:35:17 | 只看该作者 Only view this author
还要注意在脚本中循环时必须实时更新连接关系,参考下文里的相关命令
VMD初始化文件(vmd.rc)我的推荐设置
http://sobereva.com/545http://bbs.keinsci.com/thread-16834-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

62

帖子

0

威望

1104

eV
积分
1166

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2022-3-28 11:12:28 | 只看该作者 Only view this author
丁越 发表于 2022-3-27 22:32
same fragment as {element C} && numbonds=1 CO
same fragment as {element C} && numbonds=4 CH4
same  ...

谢谢丁老师的回复

62

帖子

0

威望

1104

eV
积分
1166

Level 4 (黑子)

5#
 楼主 Author| 发表于 Post on 2022-3-28 11:13:04 | 只看该作者 Only view this author
sobereva 发表于 2022-3-28 10:35
还要注意在脚本中循环时必须实时更新连接关系,参考下文里的相关命令
VMD初始化文件(vmd.rc)我的推荐设置
...

谢谢卢天老师的回复

62

帖子

0

威望

1104

eV
积分
1166

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2022-4-30 14:46:17 | 只看该作者 Only view this author
本帖最后由 吞木木 于 2022-4-30 14:48 编辑
丁越 发表于 2022-3-27 22:32
same fragment as {element C} && numbonds=1 CO
same fragment as {element C} && numbonds=4 CH4
same  ...

老师你好,我写了几行tcl的代码,但是他报错很离谱,您能抽时间帮忙看一下怎么改吗?

set numframe [molinfo top get numframes]

for {set i 0} {$i <= $numframe} {incr i 1} {
   set a [atomselect top "same fragment as {element N} && numbonds=2"]
   $a frame $i
   $a update
  puts $i  $a;
}

它报错是提示{set i 0}这一行中的0,报错。我实在是不知道怎么改了,麻烦老师了


496

帖子

11

威望

4277

eV
积分
4993

Level 6 (一方通行)

7#
发表于 Post on 2022-5-11 08:26:35 | 只看该作者 Only view this author
本帖最后由 丁越 于 2022-5-11 12:07 编辑
吞木木 发表于 2022-4-30 14:46
老师你好,我写了几行tcl的代码,但是他报错很离谱,您能抽时间帮忙看一下怎么改吗?

set numframe [m ...

你看看TCL语法中puts是怎么用的,显然不是这么接的。
set numframe [molinfo top get numframes]
set a [atomselect top "same fragment as {element N} && numbonds=2"]
set fileid [open num.dat w]
for {set i 0} {$i <= $numframe} {incr i 1} {
   $a frame $i      
animate goto $i
  mol bondsrecalc all
    topo retypebonds
   $a update
   set N [$a num]
  puts $fileid "$i \t [expr double($N)/3]"
}
close $fileid

[expr double($N)/3]"除以3是我假设你的每个分子片段有三个原子






自由发挥,野蛮生长

62

帖子

0

威望

1104

eV
积分
1166

Level 4 (黑子)

8#
 楼主 Author| 发表于 Post on 2022-5-11 16:17:19 | 只看该作者 Only view this author
丁越 发表于 2022-5-11 08:26
你看看TCL语法中puts是怎么用的,显然不是这么接的。
set numframe [molinfo top get numframes]
set a ...

谢谢老师的批评指正!
我回去再好好学习一下TCL语法

本版积分规则 Credits rule

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

GMT+8, 2026-2-19 21:30 , Processed in 0.230211 second(s), 24 queries , Gzip On.

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