计算化学公社

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

[辅助/分析程序] banedata-Gaussian日志文件解析程序

[复制链接 Copy URL]

712

帖子

13

威望

2933

eV
积分
3905

Level 5 (御坂)

鸩羽

本帖最后由 wal 于 2026-2-5 20:23 编辑

这是什么程序?
banedata和baneplot是同时期的作品,用了同一个homemade解析库,致力于避免直接下载/打开Gaussian日志文件,直接在命令行获取想要的信息。本程序的功能范围以笔者研究方向为圆心展开,所以也许有一些比较基础的功能因为笔者不怎么接触所以未在本程序中实现。
可能有bug,欢迎反馈。
banedata (4.01 MB, 下载次数 Times of downloads: 7)

功能介绍
banedata的功能很碎,不过帮助信息里写的较为详细:
  1. root@login:~$ banedata -h
  2. Author: Bane Dysta
  3. FeedBack: http://bbs.keinsci.com/forum.php?mod=viewthread&tid=58180&fromuid=63020
  4. or Email  banerxmd@gmail.com
  5. 用法:
  6.     banedata <log> [option] <mode>

  7. 选项:
  8.   -h, --help             显示帮助信息
  9.   -q, --quiet            纯净输出模式,对大部分选项只输出数值不输出描述性文本
  10.   -a, --all [mode]       处理所有数据块,而不仅是最后一个
  11.                          mode: all (默认,处理所有数据块)
  12.                                conv (只处理收敛的数据块)
  13.     -t, --title <标题>   需要配合-a使用,指定输出表头的第二列标题
  14.   -o, --orbital <索引>   输出指定轨道的能量
  15.                          支持的索引格式:
  16.                          - 单个轨道: 1, 2, h, l, h-1, l+2
  17.                          - 轨道范围: 1-3,6-8
  18.                          - 多个轨道: 1,3-4,h (逗号分隔)
  19.   -i, --nimag            输出虚频数
  20.   -f, --freq [mode]      频率分析
  21.                          mode: imag   - 输出虚频序号及虚频值
  22.                                all    - 输出全部序号及频率值
  23.                                <数字> - 输出指定频率值及xyz格式振动矢量
  24.   -e, --energy [mode]    输出能量信息
  25.                          mode: scf    - 输出SCF能量 (默认)
  26.                                td     - 输出TDDFT能量
  27.                                free   - 输出自由能(SCF+热校正)
  28.                                all    - 输出所有类型能量
  29.   -sc, --structure-calculate [atom1] [atom2] ... <atomN>
  30.                         计算结构参数
  31.                         - 2个原子: 计算键长
  32.                         - 3个原子: 计算键角
  33.                         - 4个原子: 计算二面角
  34.                         - 5个及以上原子: 计算键序交替
  35.   -x, --xyz [mode] <output.xyz>
  36.                         提取几何结构到xyz文件
  37.                         mode: last (默认,提取最后一帧)
  38.                               all  (提取所有帧)
  39.                               conv (只提取收敛帧)
  40.                               irc  (提取IRC路径,顺序为path2末点-> TS->path1末点)
  41.                               <数字> (提取指定帧号的结构,从1开始计数)
  42.                               freq <mode_number> [frame_count] (生成振动模式轨迹)
  43.     --wrtconv           配合-x使用,在xyz文件第二行写入收敛判据和能量信息
  44.                         格式: MaxF=1.2E-4 RMSF=8.5E-5 MaxD=2.3E-3 RMSD=1.1E-3 E=-123.456789
  45.   -c                    输出电荷
  46.   -m                    输出自旋多重度
  47.   -cm                   同时输出电荷和自旋多重度,Gaussian格式
  48.   -td, --tddft [mode] [参数]  TDDFT分析
  49.                         mode: 无参数 - 返回最后一个激发态块中第1激发态的能量(nm)+振子强度+轨道对
  50.                               <数字> - 返回最后一个激发态块中第<数字>激发态的能量(nm)+振子强度+轨道对
  51.                               <数字1>-<数字2> - 返回最后一个激发态块中从<数字1>到<数字2>的所有激发态信息
  52.                               ee <数字> - 返回最后一个激发态块中第<数字>激发态的能量(eV);无数字默认第1激发态
  53.                               to <数字> - 返回最后一个激发态块中第<数字>激发态的轨道跃迁对;无数字默认第1激发态
  54.                               f <数字> - 返回最后一个激发态块中第<数字>激发态的振子强度;无数字默认第1激发态
  55.     --tddft-threshold <value>    设置TDDFT轨道跃迁对组态系数的阈值 (默认: 0.1)
  56.                                  只输出绝对值大于等于该阈值的轨道跃迁对
  57.   -tsm, --tsmonitor [参数]  输出优化过程中的本征值和特征向量信息
  58.                             默认输出最后一个优化块的前4个本征值和前5个特征向量标签
  59.                             参数: all - 输出所有本征值和特征向量(包含数值)
  60.                                   "数字范围" - 显示指定特征向量对应的内坐标贡献 (如"1-2,4,6-8")
  61.                             与-a联用: 输出所有优化块而不仅是最后一个
  62.   -ic, --internal-coord     <参数>  查找内坐标信息
  63.                             若参数为数字: 查找与该原子相关的所有内坐标
  64.                             若参数为字母开头: 查找构成该内坐标的原子编号
  65.                             输出格式: 原子编号用逗号分隔
复制代码

这里挑几个笔者最常用的介绍。

提取结构到xyz文件
此功能是笔者最常用的,最基本的功能是将最后一帧写入xyz文件:
  1. root@login:~$ banedata -x
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. [INFO] 几何结构已保存到: last_re-td-NH2-BODIPY.xyz
复制代码

将每一帧写入xyz文件:
  1. root@login:~$ banedata -x all
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. [INFO] 几何结构已保存到: all_re-td-NH2-BODIPY.xyz
复制代码

将柔性扫描中每个收敛结构写入xyz文件:
  1. root@login:~$ banedata -x conv
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. [INFO] 几何结构已保存到: conv_re-td-NH2-BODIPY.xyz
复制代码

配合--wrtconv选项,还可以在注释行写入收敛信息:
  1. root@login:~$ banedata -x all --wrtconv
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. [INFO] 几何结构已保存到: all_re-td-NH2-BODIPY.xyz
复制代码

说到这里,往xyz文件写入收敛信息,这有什么用呢?这就不得不提笔者的xyz剪切板艺术了╰(*°▽°*)╯以上导出的所有类型xyz文件,无论是单帧还是多帧,均将内容可直接复制到剪切板,然后用xyz_monitor一个快捷键直接转移到gview!--wrtconv写入的收敛信息,也可以在gview中直接查看(~ ̄▽ ̄)~


提取轨道能量
前线轨道通常是实(gen)验(ben)党(mei)比(shen)较(me)关(niao)心(yong)的,笔者也经常要提取。banedata的-o flag是管这个的,可以用基于h,l的index,也可以直接给轨道号。输出已经转换为电子伏特单位。
  1. root@login:~$ banedata -o h-1,h,l,l+1
  2. [INFO] 使用当前目录下的log文件: cb3_opt_HC-423-Hd.log
  3. 序号      能量(eV)
  4. ------------------
  5. 209        -7.003667
  6. 210(H)     -6.471956
  7. 211        -2.447936
  8. 212        -1.029951
复制代码

检查虚频数
原先比较常用这个看虚频数的功能,后来懒狗笔者整合了一个自动处理虚频的g16套壳,这个就不怎么常用了:
  1. root@login:~$ banedata TS6215_si-pyrymt.log -i
  2. 1
复制代码

提取能量
刚性扫描提取轨迹能量的时候常用这个功能。不过banedata一次只处理一个文件,要做个do循环:
  1. root@login:~$ for log in *.log; do echo "$log $(banedata $log -e -q)"; done
  2. TS6215_si-pyrymt.log -2169.26766524
  3. TS_L.log -876.97498261
复制代码

这样输出的文本直接拿excel分个列就可以绘图了。
还有一个常用场景,是提取轨迹能量。比起gview,banedata不仅可以提取总能量,还可以在tddft扫描时提取SCF能量,这在绘制激发态柔性扫描曲线图时很有用。使用-a conv滤出来所有收敛帧的能量:
  1. root@login:~$ banedata PES-td_opt_HC-3-H2.log -e -a conv
  2. index SCF_energy_hartree
  3. 2 -2455.70857359
  4. 14 -2455.70837772
  5. 48 -2455.70769121
  6. 56 -2455.70669438
  7. 68 -2455.70626132
  8. 75 -2455.70700590
  9. 84 -2455.70807830
  10. 93 -2455.70874752
  11. 99 -2455.70860532
  12. 107 -2455.70771214
  13. 117 -2455.70669135
  14. 128 -2455.70534110
  15. 136 -2455.70417618
  16. 147 -2455.70375082
  17. 158 -2455.70415022
复制代码

结构属性计算
除经典的键长键角二面角之外,还可以计算键序交替(BLA):
  1. root@login:~$ banedata -sc 2 3 5 6 7 8 10 9
  2. [INFO] 使用当前目录下的log文件: Hat.log
  3. 键长详情: bond(1-2)=1.399145, bond(2-3)=3.207657, bond(3-4)=1.413455, bond(4-5)=1.390357, bond(5-6)=1.425442, bond(6-7)=2.436292, bond(7-8)=1.374247
  4. 奇数位置键长平均值: 1.403072 Å
  5. 偶数位置键长平均值: 2.344769 Å
  6. 键序交替值: -0.941696 Å
复制代码

结合-a,可以计算某内坐标在一串轨迹中的变化:
  1. root@login:~$ banedata -a -sc 2 3
  2. [INFO] 使用当前目录下的log文件: Hat.log
  3. index bond_2-3
  4. 1 1.2584
  5. 2 1.2226
  6. 3 1.1510
  7. 4 1.2093
  8. 5 1.2116
  9. 6 1.2045
  10. 7 1.1974
复制代码

联动baneplot,还可以立即将该输出绘成图:
  1. banedata -a -sc 2 3 > 1.txt
  2. baneplot -d 1.txt
复制代码

TD-DFT属性提取
TDDFT的参数很多,banedata -td后面跟不同的选项可以输出不同的属性。具体可以看帮助,笔者讲一下个人用法。如果什么选项都不加,默认输出最后一帧的波长,振子强度,主导跃迁对:
  1. root@login:~$ banedata -td
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. 398.79 0.671200 53->54
复制代码

想看更多激发态的属性,可以用index范围:
  1. root@login:~$ banedata -td 1-3
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. 激发态 1 (Singlet-A): 398.79 nm, f=0.67
  4. 轨道跃迁对:
  5.   53->54 -0.70039

  6. 激发态 2 (Singlet-A): 281.12 nm, f=0.31
  7. 轨道跃迁对:
  8.   50->54 0.10864
  9.   52->54 0.69357

  10. 激发态 3 (Singlet-A): 280.69 nm, f=0.08
  11. 轨道跃迁对:
  12.   51->54 -0.70235
复制代码

想看扫描过程/优化过程等轨迹中某激发态的属性变化,可以结合-a:
  1. root@login:~$ banedata -td -a
  2. [INFO] 使用当前目录下的log文件: re-td-NH2-BODIPY.log
  3. Block 1, 激发态 1 (Singlet-A): 379.95 nm, f=0.693600
  4.   53->54 0.70011
  5. Block 2, 激发态 1 (Singlet-A): 384.66 nm, f=0.690000
  6.   53->54 0.70019
  7. Block 3, 激发态 1 (Singlet-A): 405.94 nm, f=0.698000
  8.   53->54 0.70056
  9. Block 4, 激发态 1 (Singlet-A): 402.23 nm, f=0.644800
  10.   53->54 0.70040
  11. Block 5, 激发态 1 (Singlet-A): 407.41 nm, f=0.679700
  12.   53->54 0.70054
  13. Block 6, 激发态 1 (Singlet-A): 394.40 nm, f=0.680900
  14.   53->54 0.70034
  15. Block 7, 激发态 1 (Singlet-A): 398.51 nm, f=0.668300
  16.   53->54 0.70038
  17. Block 8, 激发态 1 (Singlet-A): 398.79 nm, f=0.669700
  18.   53->54 0.70038
  19. Block 9, 激发态 1 (Singlet-A): 398.91 nm, f=0.670700
  20.   53->54 -0.70039
  21. Block 10, 激发态 1 (Singlet-A): 398.81 nm, f=0.671100
  22.   53->54 0.70039
  23. Block 11, 激发态 1 (Singlet-A): 398.79 nm, f=0.671200
  24.   53->54 -0.70039
  25. Block 12, 激发态 1 (Singlet-A): 398.79 nm, f=0.671200
  26.   53->54 -0.70039
复制代码


TSmonitor
某日笔者发现了ggdh老师的TSmonitor,觉得非常好用,于是偷偷把里面的内容借鉴过来了(*/ω\*)
TSmonitor5有bug,本程序对标的是TSmonitor4:
  1. root@login:~$ banedata TS6215_si-pyrymt.log -a -tsm 69
  2. Note: banedata -tsm is quoted from TSmonitor4 by ggdh@http://bbs.keinsci.com/thread-14081-1-1.html.
  3. Note: Eigenvector values are multiplied by 100 to save display space.
  4. stp EV1 EV2 EV3 EV4 Vec1 Vec2 Vec3 Vec4 Vec5
  5. 1 -2.61 0.07 0.08 0.10 R30 R69 A121 A123 D84
  6. 2 -2.65 0.07 0.08 0.10 R30 R69 A121 A123 D84
  7. 3 -2.66 0.07 0.08 0.10 R30 R69 A121 A123 D84
  8. 4 -2.73 0.07 0.08 0.10 R30 R69 A121 A123 D84
复制代码

这里的本征向量主导内坐标可以用banedata -ic来查:
  1. root@login:~$ banedata TS6215_si-pyrymt.log -ic R69
  2. 62,64
复制代码

具体思想和用法可以看ggdh老师的帖子。







评分 Rate

参与人数
Participants 2
威望 +1 eV +3 收起 理由
Reason
hebrewsnabla + 3
sobereva + 1

查看全部评分 View all ratings

某不知名实验组从苞米地里长出来的计算选手

本版积分规则 Credits rule

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

GMT+8, 2026-2-16 17:02 , Processed in 0.229590 second(s), 34 queries , Gzip On.

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