|
本帖最后由 imasen 于 2023-9-25 12:40 编辑
更新 09/25/2023
之前的代码里为了方便,当前目录下没有Gaussian或ORCA的输入文件模板就会生成模板,调用后再删掉,导致不去自动调用输入文件的电荷和自旋多重度。现在已经修改了这个逻辑,仅当有模板时再调用。已更新下载链接。感谢用户@胡说 指出这个问题。
利用Multiwfn做批量文件格式转化可以借助类似这样的shell脚本完成。(参考一键把所有gjf文件转成xyz文件、把所有Gaussian输出文件转成gjf文件的脚本)
- #Convert all .log files to .xyz file by Multiwfn
- #!/bin/bash
- icc=0
- nfile=`ls *.log|wc -l`
- for inf in *.log
- do
- ((icc++))
- echo “Converting ${inf} to ${inf//log/xyz} ... ($icc of $nfile)”
- Multiwfn ${inf} << EOF > /dev/null 2>&1
- 100
- 2
- 2
- ${inf//log/xyz}
- 0
- q
- EOF
- done
复制代码 这个脚本十分简单,修改起来也很方便,进入Multiwfn主功能100/2,然后按提示操作,并将需要键入的内容替换上述脚本EOF部分内容即可。我也仿照上面写了很多格式转换的小脚本,但是总有遗漏,发现要用的还没写,慢慢累积的太多了。所以想索性写个脚本可以进行所有Multiwfn支持的化学结构文件和波函数文件之间的批量转化。
脚本下载(
Mconvert
(4.02 KB, 下载次数 Times of downloads: 28)
)
1. 环境设置
为了在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进行文件格式转换。
2. 使用说明
在需要进行文件格式转换的目录下打开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:
- Mconvert [input_file_type]2[output_file_type]
复制代码 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:
- Mconvert [input_file_name] [output_file_name]
复制代码 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的文件。记事本打开后内容如下:
- %chk=[name].chk
- #P B3LYP/6-31G*
- Generated by Multiwfn
- 0 1
- [geometry]
复制代码 将#P行替换成#p m062x/def2TZVP scrf=smd em=gd3。
b. 运行Mconvert log2gjf。这样就会调用模板内容生成所需的输入脚本,节约时间的同时规避了手动调整造成的关键词不一致。
产生ORCA输入文件的方法相似,运行Mconvert orca_template也会生成ORCA的输入模板。
3. 其他
暂时没有支持其他计算程序输入文件的格式化,主要原因是我不用。CP2K这样的程序输入文件格外复杂,生成模板再手动更改很不合理,可以向帖子开头的提到的脚本一样,将流程写入EOF,专门用一个脚本来操作。而其它程序借助模板来更改,也可以参考卢天老师用[geometry]这样的字段在模板里定位,然后用生成的单纯的坐标信息(比如xyz删去文件头)去替换,比较容易实现。
|
评分 Rate
-
查看全部评分 View all ratings
|