计算化学公社

 找回密码 Forget password
 注册 Register
Views: 6833|回复 Reply: 2

[综合交流] 批量输出分子的HOMO-LUMO信息到txt并汇总

[复制链接 Copy URL]

312

帖子

1

威望

3108

eV
积分
3440

Level 5 (御坂)

发表于 Post on 2019-11-19 21:00:39 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 exity 于 2019-11-19 21:02 编辑

最近一段时间在做溶剂对各个分子的HOMO、LUMO能量、以及GAP的影响,Multiwfn查看这些内容固然方便,但是每次都要复制屏幕内容再手动添加到txt或者excel有点不舒服,就自己折腾了一下,实现了以下功能(也可能Multiwfn早就有了这个功能,但是俺没好好读手册)。

1 批量处理一系列的chk或gbw文件,把对应的HOMO LUMO 等内容输出到对应名字的txt里
2 把HOMO LUMO的内容再次集中汇总到一个txt里

具体实践如下,假设Multiwfn已经写入了你的系统路径

1. 新建批处理文件1.bat,内容如下:
for /f %%i in ('dir *.fchk /b') do (
Multiwfn %%i < HOMOLUMOGAP.mf > 1.txt
rename 1.txt %%~ni_GAP.txt
)

2. 新建一个txt文本文件,改名为HOMOLUMOGAP.mf(我习惯把Multiwfn批处理步骤的txt后缀改成mf,以示区别),内容如下(对,你没看错,一个0就可以了。):
0

3. 把计算好的fch,gbw文件和1,2两步的文件放入同一个文件夹,双击1.bat,就能得到一系列包含HOMO等信息的txt文件了(其实就是把Multiwfn查看分子的前2个屏幕输入到txt)

4. 再新建一个2.bat,内容如下
    @echo off
    pushd "%~dp0"
    Powershell -NoProfile -Command "Get-Item -Path .\*.txt | ForEach-Object { if ([System.IO.File]::ReadAllText($_.FullName, [System.Text.Encoding]::Default) -match 'Note:(?:.*\n){2}.*') { $_.BaseName; $Matches[0]; ''; } } | Set-Content -Path .\IAMfACkINGAWESOME.txt -Encoding oem "
    popd
    pause
    exit /b

5. 双击2.bat,就能在IAMfACkINGAWESOME里看到各个分子HOMO信息的汇总啦,看起来和下面是一样的(数据我乱改过,没用)。

PGRE_YDD_GAP
Note: Orbital   105 is HOMO, energy:   -1111111 a.u.   -1111111 eV
       Orbital   106 is LUMO, energy:   -0.1111111 a.u.   -0.1111111 eV
       HOMO-LUMO gap:    0.1111111 a.u.    11111119 eV    11111117 kJ/mol


REWAA_EtOH_GAP
Note: Orbital   105 is HOMO, energy:   -1111111 a.u.   1111111 eV
       Orbital   106 is LUMO, energy:   -1111111 a.u.   -1111111 eV
       HOMO-LUMO gap:    1111111 a.u.    1111111 eV    1111111 kJ/mol


HRTA_H2O_GAP
Note: Orbital   105 is HOMO, energy:   -11111116 a.u.   -111111118 eV
       Orbital   106 is LUMO, energy:   -11111111 a.u.   -111111128 eV
       HOMO-LUMO gap:    11111115 a.u.   11111110 eV    111111156 kJ/mol


HJWA_MeOH_GAP
Note: Orbital   105 is HOMO, energy:   -11111115 a.u.   -11111110 eV
       Orbital   106 is LUMO, energy:   1111111 a.u.   -11111114 eV
       HOMO-LUMO gap:    111111157 a.u.    111111156 eV    111111192 kJ/mol

PS:好吧,我承认,第二个bat俺是从“批处理之家”问来的......233333333


评分 Rate

参与人数
Participants 2
eV +11 收起 理由
Reason
Novice + 3 好物!
sobereva + 8

查看全部评分 View all ratings

2481

帖子

11

威望

6621

eV
积分
9322

Level 6 (一方通行)

发表于 Post on 2019-11-20 10:11:09 | 显示全部楼层 Show all
好~mo~ji~啊~

Linux系统下:
fs=` ls *.fchk`;for f in $fs;do ./Multiwfn $f < script.txt > $f_out.txt;done
fs=` ls *_out.txt`;for f in $fs;do grep -E 'HOMO|LUMO' $f  > $f_data.txt;done

312

帖子

1

威望

3108

eV
积分
3440

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2019-11-20 15:07:11 | 显示全部楼层 Show all
我本是个娃娃 发表于 2019-11-20 10:11
好~mo~ji~啊~

Linux系统下:

还没测试,但是肯定简洁又高效

本版积分规则 Credits rule

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

GMT+8, 2023-2-5 10:13 , Processed in 0.236935 second(s), 22 queries .

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