请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 976|回复: 3

[Multiwfn资源与经验] 使用Multiwfn一键批量产生各类光谱图

[复制链接]

2万

帖子

25

威望

2万

eV
积分
45931

管理员

公社社长

发表于 2019-4-29 14:35:10 | 显示全部楼层 |阅读模式
本文配有操作演示视频,强烈建议一看https://www.bilibili.com/video/av50818216

使用Multiwfn一键批量产生各类光谱图

文/Sobereva@北京科音  2019-Apr-29


0 前言

如果读者还没看过《使用Multiwfn绘制红外、拉曼、UV-Vis、ECD、VCD和ROA光谱图》(http://sobereva.com/224)请先看此文。波函数分析程序Multiwfn具有非常强大的光谱绘制功能,本文目的是介绍一个小技巧,使用批处理文件,仅通过一条命令就令Multiwfn把当前目录下所有输入文件转化为光谱图。这里说的输入文件是指Multiwfn绘制光谱图的功能支持的输入文件,比如Gaussian、ORCA等程序的电子激发计算、振动分析任务的输出文件等,详见上面提到的文章。

Multiwfn可在主页http://sobereva.com/multiwfn免费下载,读者务必使用2019-Apr-28及之后更新的程序包,否则没有本文中提到的文件。

在程序包的examples\spectra\indigo目录下有四个.out文件,都是Gaussian使用不同级别做电子激发计算的输出文件,我们以这四个文件为例,说明怎么一下子就把它们都转化成UV-Vis光谱图像文件。


1 在Windows下运行

这里首先假设读者用的是Windows版。将四个.out文件都拷到Multiwfn目录下,然后把examples\spectra目录下的UV-Vis.txt和batchspec.bat也拷到Multiwfn目录下。然后把Multiwfn目录下的settings.ini里的isilent设为1并保存文件。直接双击batchspec.bat,马上当前目录下就出现了四个与输入文件同名的png文件,是UV-Vis谱的图像文件,可见极其方便!

原理是什么?首先看batchspec.bat,这是一个Windows下的批处理文件,点击右键选编辑,就可以看到以下内容
for /f %%i in ('dir *.out /b') do (
Multiwfn %%i < UV-Vis.txt > NUL
rename DISLIN.png %%~ni.png
)

其中dir *.out显示当前目录下所有.out文件,利用for循环将每个文件名依次赋值给%%i,并对每个文件调用当前目录下的Multiwfn程序按照UV-Vis.txt文件里记录的指令进行处理。由于输出在屏幕上的信息不是我们需要的,所以将这些信息重定向到NUL,它相当于是个垃圾桶,定向到里面的信息都会消失不见。Multiwfn每次处理完一个文件后,会在当前目录下产生DISLIN.png文件,为了让文件名与输入文件相同,因此用rename重命名一下,%%~ni的写法代表把%%i变量记录的文件名的后缀去除。

再来看记录了在Multiwfn里输入的指令的UV-Vis.txt文件,内容如下,每一行对应在Multiwfn里敲入的一次指令,//后面是注释。如果还有不理解的,启动Multiwfn载入任意一个out文件,照着里面的命令敲一遍就肯定懂了
11  //光谱绘制功能
3  //绘制UV-Vis
0  //显示一次光谱,否则之后无法修改纵坐标
3  //修改横坐标设定
150,850,100  //初值,终值,步长
4  //修改左侧坐标轴(对应摩尔吸收系数)
0,45000,5000  //初值,终值,步长
y  //对右侧纵坐标做相应的缩放/平移
5  //修改右侧坐标轴(对应振子强度)
0,1.0,0.1  //初值,终值,步长
n  //不对左侧坐标轴做相应的缩放/平移
1  //产生图像文件

由于在选择选项0的时候光谱会在屏幕上弹出来,因此要把settings.ini里的isilent设为1使程序处于安静模式,这样就不会蹦出图像,免得到时候还得手动关闭了。

可见批量调用Multiwfn绘制光谱的机理非常简单易懂,想改什么,只要改相应内容就行了。一般需要改的就是坐标轴范围,可以先跑一下,发现范围不合理的话,改一下UV-Vis.txt里的坐标轴设置然后重新跑即可。

在examples\spectra目录下还有个IR.txt。如果你把此文件拷到Multiwfn目录,把batchspec.bat里的UV-Vis.txt改为IR.txt,那么双击batchspec.bat时就会把当前目录下所有.out文件转化为红外光谱的图像文件。IR.txt的内容就不再解释了,因为只要照着IR.txt里的指令在Multiwfn里敲一遍,对照屏幕上的提示,马上就能理解其中的内容。

想用Multiwfn批量绘制其它类型的光谱,如ROA、Raman、VCD、ECD、光电子谱,只要自己创建个记录了绘制命令的.txt文件,按照上述过程使用它来批处理即可。


2 在Linux下运行

如果你用的是Linux版Multiwfn,也想这样通过批处理绘图的话,先按照Multiwfn手册2.1.2节的步骤以正规方式安装Multiwfn,把examples\spectra中的batchspec.sh、UV-Vis.txt以及要绘图的文件都拷到当前目录下,然后在终端里输入./batchspec.sh运行之即可。如果提示没有可执行权限,先运行一下chmod +x ./batchspec.sh。

batchspec.sh是个Bash shell的脚本,内容为:
#!/bin/bash
for inf in *.out
do
Multiwfn ${inf} < UV-Vis.txt > /dev/null
mv -f dislin.png ${inf//out/png}
done

可见和batchspec.bat的内容大同小异,只不过命令改为了Linux下的情况。${inf//out/png}代表把$inf变量记录的文件名的out后缀替换为png。

为了用起来更方便,读者还可以把batchspec.sh和UV-Vis.txt放到比如/sob目录下,把./batchspec.sh里的UV-Vis.txt改为/sob/UV-Vis.txt,然后在~/.bashrc文件里增加一行
alias UV='/sob/batchspec.sh'
alias gUV='gedit /sob/UV-Vis.txt'

重新进入终端后,只要某个目录里有比如Gaussian的电子激发任务的输出文件,就在这个目录下运行UV命令即可将它们全都瞬间转化为UV-Vis光谱文件。如果发现坐标范围不合适,输入gUV命令就可以启动gedit编辑UV-Vis.txt的内容。


3 总结

希望读者举一反三,效仿本文的运行方式,使得Multiwfn实现其它任务的批量处理。笔者的很多与Multiwfn有关的博文都充分利用了批处理文件,比如《使用Multiwfn做空穴-电子分析全面考察电子激发特征》(http://sobereva.com/434)、《使用Multiwfn做自然跃迁轨道(NTO)分析》(http://sobereva.com/377)、《使用Multiwfn绘制跃迁密度矩阵和电荷转移矩阵考察电子激发特征》(http://sobereva.com/436)、《通过键级曲线和ELF/LOL/RDG等值面动画研究化学反应过程》(http://sobereva.com/200)等等,读者可参考之,写出功能更强的批处理脚本。

评分

参与人数 3eV +15 收起 理由
ezez + 5 赞!
zsu007 + 5 好物!
我本是个娃娃 + 5 大博士为小白们操碎了心

查看全部评分

北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群,1号:18616395,2号:466017436。达5000人,专门交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

4

帖子

0

威望

587

eV
积分
591

Level 4 (黑子)

发表于 2019-4-29 20:52:01 | 显示全部楼层
这个不错,什么时候升级一下一键绘制构象权重平均的光谱

108

帖子

0

威望

610

eV
积分
718

Level 4 (黑子)

发表于 2019-4-29 21:02:38 来自手机 | 显示全部楼层
太赞啦,谢谢sob老师!

2万

帖子

25

威望

2万

eV
积分
45931

管理员

公社社长

 楼主| 发表于 2019-4-30 04:22:24 | 显示全部楼层
Evanwill 发表于 2019-4-29 20:52
这个不错,什么时候升级一下一键绘制构象权重平均的光谱

我觉得没有好升级的,目前Multiwfn绘制构象平均光谱已经超级方便了
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群,1号:18616395,2号:466017436。达5000人,专门交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2019-9-22 00:19 , Processed in 0.140750 second(s), 25 queries .

快速回复 返回顶部 返回列表