计算化学公社

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

[辅助/分析程序] EasyShermo: 萌新的全自动用 Shermo 做批处理的脚本

[复制链接 Copy URL]

147

帖子

2

威望

1234

eV
积分
1421

Level 4 (黑子)

计算化学公社外门弟子

本帖最后由 kimariyb 于 2023-8-15 22:41 编辑

前言

各位老师好,学生是入门三个月的萌新。最近在捣鼓用量化计算热力学数据时,用到了卢老师开发的 Shermo 程序计算热力学数据。在拜读完卢老师博文《使用Shermo结合量子化学程序方便地计算分子的各种热力学数据》(http://sobereva.com/552) 后,尽管文中的第五节(5 通过shell脚本调用Shermo做批处理)介绍了如何使用 shell 脚本调用 Shermo 做批处理,但是有一个不足之处在于 getGall.sh 脚本是用 Shermo 直接处理优化和振动分析后的 out 文件。而优化和振动分析所用的级别都不会太高,因此直接这样处理得到的热力学数据精度可能不高。如果想要 Shermo 使用高精度单点来计算热力学数据,一是可以在 Shermo 的配置文件 settings.ini 中将 E= 后面的值修改为所研究体系的单点能;二是在命令行调用 Shermo 时写上 -E xxx 参数。很显然第二种方法更适合用脚本进行批处理,不过学生的 shell 水平不太行,所以用的 Python 来写这个脚本,以实现全自动用 Shermo 做批处理,学生将其命名为 EasyShermo。

实现思路

假如在 B3LYP/6-311G** 级别下做优化和振动分析后得到了 10 个 out 文件,分别为 n_opt.out (n = 1 ~ 10),并在优化好的结构的基础上在 CCSD(T)/cc-PVTZ 级别下做了单点计算,也得到了 10 个 out 文件,分别为 n_sp.out (n = 1 ~ 10)。下面是实现思路

1. 首先读取单点任务的输出文件 n_sp.out (n = 1 ~ 10) 中的最终能量。由于学生只用过 Gaussian 和 Orca 计算能量,所以只考虑了这两个程序。如果读取 Orca 输出文件的单点能,只需要写个正则表达式读取 FINAL SINGLE POINT ENERGY 之后的值就可以了。不过读取 Gaussian 输出文件的单点能就比较麻烦了,学生只考虑了三种情况,一、如果 archive 部分有 CCSD(T)= 则读取后面的值(对应使用 CCSD(T)  计算的情况);二、如果没有 CCSD(T)= 而有 MP2= 则读取 MP2= 后面的值(对应使用 MP2 和双杂化泛函计算的情况);三、如果没有 MP2= 而有 HF= 则读取 HF= 后面的值(对应使用普通泛函和 HF 计算的情况)。通过循环将读取到的每个输出文件能量存储在一个有顺序的容器中,方便 Shermo 之后调用。

2. 之后使用只需要实现如何通过命令行调用 Shermo 做批处理就可以了。例如需要批量执行 Shermo n_opt.out -E xxx,才能实现目的,其中 xxx 为 n_opt.out 对应结构的高精度单点能。由于之前是按照顺序将单点能保存在容器中,并且 n_opt.out 文件名和 n_sp.out 文件名格式上类似,这样就能使 Shermo 批量调用 n_opt.out 文件时,使 n_opt.out 能和 n_sp.out 的能量一一对应,不至于出现名字和内容不对应的情况。(当然这不是完美的解决方法,不过学生水平有限)

3. 最后读取 Shermo 输出的内容,并分别将读取到的内容,写入到和 n_opt.out 同名的文本文件 n_opt.txt 中。这样就完成了全自动调用 Shermo 做批处理。

使用方法

EasyShermo 安装简单,具体信息见 EasyShermo GitHub 主页:https://github.com/kimariyb/easy-Shermo 。EasyShermo 主要由 main.py、config.py、easyShermo.py、settings.ini 以及三个文件夹组成。main.py 不用多说,是调用主函数的,没什么内容。config.py 是读取配置文件 settings.ini 的文件。easyShermo.py 是脚本的业务逻辑具体实现的文件,包括如何读取单点、如何批量调用 Shermo。settings.ini 是用来配置 Shermo 运行时的参数的配置文件,内容 90% 和 Shermo 的 settings.ini 一致,好处在于不用修改 Shermo 本身的 settings.ini。EasyShermo 的 settings.ini 必须根据自身情况配置 Shermo 的可执行文件路径以及单点能的计算程序是 Gaussian 还是 Orca。
  1. ; The path to the Shermo executable file.
  2. shermoPath = D:\\environment\\Shermo\\Shermo.exe

  3. ; The program for performing a single point calculation task.
  4. ; 1. Gaussian
  5. ; 2. Orca
  6. spFile = 1
复制代码

学生这里有 5 个在 B3LYP/def2-TZVP 级别下优化和振动分析的结构:C_opt.out、H2_opt.out、C2H2_opt.out、C2H4_opt.out 和 CH4_opt.out,并用优化后的结构在 CCSD(T)/cc-PVQZ 级别下计算单点,同样得到 5 个输出文件 C_sp.out、H2_sp.out、C2H2_sp.out、C2H4_sp.out 和 CH4_sp.out。分别将优化和振动分析的 5 个文件放入 EasyShermo 的 opt 文件夹中,将单点的 5 个 文件放入 sp 文件夹中。由于单点是在 Gaussian 计算的,所以要将 spFile 设置为 1,如果是 Orca 算的,改成 2 就可以了。



将准备工作都完成之后,在项目文件目录下输入 Python main.py 就可以全自动调用 Shermo 了。EasyShermo 首先会输出基本的一些信息,然后输出 Shermo 的配置信息,接着输出在 sp 文件夹里读取到的单点能,最后批量调用 Shermo 并输出调用 Shermo 的命令。



在每个 Shermo 调用完之后,会在 EasyShermo 的 output 文件夹下写入一个文本文件用来记录调用 Shermo 的输出信息。例如执行完 EasyShermo 之后,就会在 output 文件夹输出 C_opt.txt 、H2_opt.txt、C2H2_opt.txt 、C2H4_opt..txt 和 CH4_opt.txt 5 个文件。这 5 个 txt 文件中的内容就和单独调用 Shermo 计算输出的内容一致,这样就能在 txt 文件中读取你感兴趣的热力学数据了。同时,也可以自己写一个 bat 或 shell 脚本批量读取 txt 文件里,你所感兴趣的热力学数据。不过学生水平有限,这里就没写这个脚本了。



最后

感谢卢老师开发的 Shermo 程序,同时也感谢各位老师、各位同学的浏览。帖中涉及到的优化振动分析、单点以及 EasyShermo 生成的 txt 文件均已附在附件 example.zip 压缩包里。通过 EasyShermo,可以实现全自动调用 Shermo,用户要做的只有计算、改文件名、改配置文件。不过学生水平有限,功能的实现、代码的质量必定有不足之处,还请见谅。


同时学生还用 Go 语言实现了相同的效果,编译成了可在 Windows 下运行的可执行文件,使用 Go 语言编译的可执行文件连 Python 都不用安装,双击 exe 文件即可运行。下载地址:https://github.com/kimariyb/easy ... .2.2/EasyShermo.zip,也可以直接下载附件 EasyShermo.zip

EasyShermo.zip (3.24 MB, 下载次数 Times of downloads: 43)
example.zip (104.06 KB, 下载次数 Times of downloads: 41)

评分 Rate

参与人数
Participants 7
威望 +1 eV +27 收起 理由
Reason
QRD + 4 赞!
alonewolfyang + 5 谢谢
anson + 5 好物!
妙角不脆 + 5 GJ!
sobereva + 1
zsu007 + 5 赞!
indec + 3 好物!

查看全部评分 View all ratings

KimariYB, Postgraduate, XiaMen University
School of Electronic Science and Engineering (National Model Microelectronics College)
Research interests: theoretical and computational chemistry and machine learning

311

帖子

0

威望

3711

eV
积分
4022

Level 6 (一方通行)

秦都王城守卫教头

2#
发表于 Post on 2023-8-28 14:14:13 | 只看该作者 Only view this author
本帖最后由 alonewolfyang 于 2023-8-28 15:08 编辑

有点愚蠢的经历,才发现Shermo必须为最新版的才能用
用心去观察这纷纷扰扰的红尘

147

帖子

2

威望

1234

eV
积分
1421

Level 4 (黑子)

计算化学公社外门弟子

3#
 楼主 Author| 发表于 Post on 2023-8-28 15:31:43 | 只看该作者 Only view this author
alonewolfyang 发表于 2023-8-28 14:14
有点愚蠢的经历,才发现Shermo必须为最新版的才能用

2.3.6 和最新的 2.4 版本应该都可以用,写这个脚本的时候用的是 2.3.6 版本
KimariYB, Postgraduate, XiaMen University
School of Electronic Science and Engineering (National Model Microelectronics College)
Research interests: theoretical and computational chemistry and machine learning

11

帖子

0

威望

178

eV
积分
189

Level 3 能力者

4#
发表于 Post on 2024-4-13 10:41:13 | 只看该作者 Only view this author
🐮的,膜拜

20

帖子

0

威望

357

eV
积分
377

Level 3 能力者

5#
发表于 Post on 2024-11-9 15:42:03 | 只看该作者 Only view this author
本帖最后由 manying 于 2024-11-9 16:13 编辑

我这使用2.6版本的Shermo软件,自己使用单个文件计算时可以正常使用,并且也可以在其文件夹中运行Shermo命令。在使用批量计算脚本却无法调用Shermo软件不知该如何解决

屏幕截图 2024-11-09 154122.jpg (234.86 KB, 下载次数 Times of downloads: 1)

屏幕截图 2024-11-09 154122.jpg

147

帖子

2

威望

1234

eV
积分
1421

Level 4 (黑子)

计算化学公社外门弟子

6#
 楼主 Author| 发表于 Post on 2024-11-9 22:22:37 | 只看该作者 Only view this author
manying 发表于 2024-11-9 15:42
我这使用2.6版本的Shermo软件,自己使用单个文件计算时可以正常使用,并且也可以在其文件夹中运行Shermo命 ...

尝试用 github 里 release 中的试试,帖子中的版本比较老了,没有更新上去。我个人平常用的是 Shermo2.6 和 release 中的可执行文件。如果是 ORCA 单点加 Gaussian 优化是没问题的。一次性处理 20 几个数据也很方便。
KimariYB, Postgraduate, XiaMen University
School of Electronic Science and Engineering (National Model Microelectronics College)
Research interests: theoretical and computational chemistry and machine learning

20

帖子

0

威望

357

eV
积分
377

Level 3 能力者

7#
发表于 Post on 2024-11-10 21:56:15 | 只看该作者 Only view this author
kimariyb 发表于 2024-11-9 22:22
尝试用 github 里 release 中的试试,帖子中的版本比较老了,没有更新上去。我个人平常用的是 Shermo2.6  ...

楼主编写的脚本没有问题,本人的电脑问题居多。后续经过自己尝试发现是easyShermo中的setting.ini文件与Shermo_2.6中的setting.ini,名字冲突,导致无法调用Shermo,自己改了easyShermo中的setting.ini文件名字,以及easyShermo.py中的相关部分就可以实现调用且速度很快。非常感谢楼主分享

202411102156081379..png (158.44 KB, 下载次数 Times of downloads: 1)

202411102156081379..png

本版积分规则 Credits rule

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

GMT+8, 2024-11-27 11:37 , Processed in 0.201905 second(s), 26 queries , Gzip On.

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