type
status
date
slug
summary
category
tags
icon
password
Created Date
本文介绍了如何利用Multiwfn进行批量化学结构文件转换和格式化Gaussian与ORCA输入文件。主要内容包括:
- 使用shell脚本和Multiwfn进行批量文件格式转换
- 环境设置,包括安装cmder和配置PATH环境变量
- Mconvert脚本的使用方法,支持批量转换、单文件转换和生成模板
- 利用模板批量生成格式化的Gaussian和ORCA输入文件
- 脚本的局限性和未来可能的扩展
这个工具可以大大提高计算化学工作流程的效率,特别是在处理大量文件时。
介绍
利用Multiwfn做批量文件格式转化可以借助类似这样的shell脚本完成。(参考一键把所有gjf文件转成xyz文件、把所有Gaussian输出文件转成gjf文件的脚本)
这个脚本十分简单,修改起来也很方便,进入Multiwfn主功能100/2,然后按提示操作,并将需要键入的内容替换上述脚本EOF部分内容即可。我也仿照上面写了很多格式转换的小脚本,但是总有遗漏,发现要用的还没写,慢慢累积的太多了。所以想索性写个脚本可以进行所有Multiwfn支持的化学结构文件和波函数文件之间的批量转化。
环境设置
脚本下载
为了在Windows下更便捷地使用这个脚本,需要做一些准备,首先需要安装cmder,安装设置可以参考(量子化学程序ORCA的安装方法),安装并设置好后就可以在任意目录下右键cmder here打开cmder命令行窗口了。
另外还需要进行以下任意一种操作:
- 将Mconvert拷贝置Multiwfn的主目录,然后将Multiwfn的主目录添加到PATH环境变量。具体操作为右键我的电脑/属性/高级系统设置/环境变量/系统变量中选择Path/编辑/新建/将Multiwfn的主目录复制进去/确定/确定/确定。这样就可以在终端/shell脚本中直接使用Multiwfn和Mconvert而不用在前方加上绝对路径。
- 分别将Multiwfn和Mconvert路径添加到PATH环境变量。
- 将Mconvert路径添加到PATH环境变量,用记事本打开Mconvert,将Multiwfn=Multiwfn等式右侧改为Multiwfn的绝对路径。
以上设置是为了在任意目录下都能方便快捷地调用Multiwfn进行文件格式转换。
使用说明
在需要进行文件格式转换的目录下打开cmder命令行,输入Mconvert可查看使用说明,内容如下:
Multiwfn-assisted Chemical Structure and Wavefunction File Batch Conversion Tool
Below paper Should Be Cited if this help:
Tian Lu, Feiwu Chen, J. Comput. Chem., 33, 580-592 (2012)
To batch convert files in the current directory, you can use the following command:
e.g. Mconvert log2oif
(oif stands for orca input file in Mconvert, the output file name will use .inp instead of .oif suffix)
To convert a single file in the current directory,
you can use the following command:
e.g. Mconvert Benzene.fchk Benzene.molden
When files <template.gjf> or <orca_template.inp> exist in the current directory, the template will be used when generating the Gaussian/ORCA input file.
You can generate the template through the following command and modify it manually:
主要分为三个部分,内容相当简单。
- 文件格式的批量转换。比方说当前目录下有大量几何优化完的Gaussian输出.log/.out文件,想在chimeraX中打开作图,就可以在命令行中cd到当前目录,再输入Mconvert log2pdb,就会在当前目录下生成同名的pdb文件。
- 单个文件的格式转换。运行Mconvert [输入文件名] [输出文件名] 就行了。
其中转换成orca的输入文件需要输入的是oif(ORCA input file)而不是inp,主要是为了让用户把它和其他程序的输入文件区分开,实际生成时的后缀还是inp。
- 批量格式化生成Gaussian/ORCA的输入文件。比方说当前目录下存在大量在B3LYP/6-31G**精度下完成的几何优化输出.log文件,现在需要去做高精度单点,就可借用Mconvert调用Multiwfn快速完成,以下为使用步骤。
a. 运行 Mconvert gau_template,在当前目录下会生成一个template.gjf的文件。记事本打开后内容如下:
将#P行替换成#p m062x/def2TZVP scrf=smd em=gd3。
b. 运行Mconvert log2gjf。这样就会调用模板内容生成所需的输入脚本,节约时间的同时规避了手动调整造成的关键词不一致。
产生ORCA输入文件的方法相似,运行Mconvert orca_template也会生成ORCA的输入模板。
其他
暂时没有支持其他计算程序输入文件的格式化,主要原因是我不用。CP2K这样的程序输入文件格外复杂,生成模板再手动更改很不合理,可以向帖子开头的提到的脚本一样,将流程写入EOF,专门用一个脚本来操作。而其它程序借助模板来更改,也可以参考卢天老师用[geometry]这样的字段在模板里定位,然后用生成的单纯的坐标信息(比如xyz删去文件头)去替换,比较容易实现。