计算化学公社

 找回密码 Forget password
 注册 Register
Views: 18736|回复 Reply: 19

[Multiwfn资源与经验] 调用Multiwfn批量产生cube的脚本MCubeGen 1.0

[复制链接 Copy URL]

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

发表于 Post on 2020-8-1 11:28:32 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 ggdh 于 2020-8-7 12:11 编辑

O. 脚本简介与更新
MCubenGen脚本是python编写,目的就是调用Multiwfn批量产生cub文件。方面后面喂给vcube做渲染。(参见使用vmd批量渲染cube文件的tcl脚本vcube
其实有点linux基础的同学自己临时编写个shell脚本批量调用Multiwfn产生cub文件也挺方便。
这里主要实现用一个命令集成所有的产生cub的方法,并且顺便产生vcube识别的文件名。
Multiwfn产生的cube种类太多,脚本目前没有全部覆盖,但会持续更新,更新的内容放在这里。
大家有任何建议请及时反馈,比如你想用Multiwfn产生某种cube,发现本脚本中没有,记得回帖,我会优先更新


一、环境要求
1.可以在Linux或者windows下运行
2.需要PATH路径中有Multiwfn程序
3.需要有python3的运行环境,注意:不兼容python2版本,推荐anaconda(在这里下载:https://www.anaconda.com/products/individual),确保python命令在PATH变量中。
4.非必须,强烈推荐:把MCubeGen.py所在位置加入PATH变量中(LINUX系统或者WSL,纯windows系统无此便利),提供便利:可以在任意位置使用MCubeGen.py命令
5.非必需,推荐: g09  或者 g16在PATH变量中,提供便利:可以自动formchk,Multiwfn可以调用cubegen使得算静电势速度有一定提升。
6. 不知道怎么设PATH变量的看这个:PATH 环境变量

二、运行方法
LINUX环境:如果已经把本脚本加入PATH中可以直接在有fchk的文件夹下运行(上面第四步已设好)
  1. MCubeGen.py -选项 参数 *.fchk
复制代码
windows环境:把脚本拷贝到含有fchk文件的目录,shift+右键在弹出菜单中选择"在此处打开PowerShell窗口",然后输入命令
  1. python MCubeGen.py -选项 参数 *.fchk
复制代码
运行完成后当前目录下会产生一个MCUBEG文件夹,里面有所有的cube文件,命名方式是文件名_cube类型.cub
下面举例都以LINUX下的方式举例。

三、应用示例
1. 产生分子轨道cube:
  1. MCubeGen.py -n 20 -m 10GB -o H1-L1,10  *.fchk
复制代码
说明:
  • 要求Multiwfn使用20核并行(-n 20)
  • 使用10GB内存(-m 10GB)
  • 对当前目录下所有的fchk文件处理(*.fchk)
  • 产生HOMO-1,HOMO,LUMO,LUMO+1以及10号轨道(-o H1-L1,10)
  • 如果体系是开壳体系,那么会自动产生alpha和beta两套轨道的cube

2. 产生各种常用cube:
  1. MCubeGen.py  -c den,esp,esd,elf,lol,rdg,lmd  -g 2 *.fchk
复制代码
说明:
  • 要求Multiwfn产生各种类型的普通cub (-c 各种cube类型名称用逗号隔开)
  • 并且将格点质量设为2(-g 2格点质量定义同Multiwfn)
  • 其中各种cub名称含义如下:den:电子密度,esp:静电势,esd:自旋密度,elf:电子定域化函数,lol:英雄联盟(elf和lol的含义见电子定域性的图形分析),rdg:约化密度梯度,lmd:电子密度Hessian矩阵的第二大的本征值λ_2和电子密度的乘积(rdg和lmd的含义见使用Multiwfn图形化研究弱相互作用)。

3. 产生激发态的各种cube:
  1. MCubeGen.py -e s1,t1-3:ele,hole,td,cdd -g "4;0.2" *.fchk
复制代码
说明:
  • 产生激发态的cube需要计算激发态的log的文件,并且log文件名和fchk文件名相同
  • -e选项的格式为-e 设定激发态:设定cube类型,上面这个命令产生的是第一单重态,第一到第三三重态(s1,t1-3)的空穴hole,电子ele,跃迁密度td,电荷密度差cdd的cube文件,因为这个计算任务用了td(50-50),所以log文件中同时包含了单,三重态信息,如果只算了单重态,那么用选项-e 1,2:hole,ele可以直接产生第一和第二激发态的空穴电子cube。
  • -g "4;0.2" 选项将格点间距设为0.2。

4. 产生激发态电子密度下的各种cube:
  1. MCubeGen.py -d CI -c den,esp *.fchk
复制代码
说明:产生激发态下的电子密度和静电势cub。这里的-d选项指定了使用激发态下的电子密度。

5.产生nto轨道:

  1. MCubeGen.py -e 1-3:nto  *.fchk
  2. cd MCUBEG
  3. MCubeGen.py -o h,l  *.fchk
复制代码
产生NTO需要两步,第一步产生含有nto的fchk文件,第二步产生nto的cube文件。nto和空穴电子cube比没有任何优势,强烈不推荐。

四、选项说明和默认值
--help 查看所有选项的详细说明和使用示例(见下图)
-m 设定内存,默认值是系统内存的80%
-n 设定Multiwfn使用的核数,默认值是全部的物理核
-d 设定密度,默认是scf密度
-g 设定格点质量,默认是2
-o 设定轨道cube,无默认
-e 设定激发态cube,无默认
-c 设定普通cube,无默认
1.png


五、出错的解决方法
1.确保gaussian任务正常结束。
2.当前目录下会产生Multiwfn_com,Multiwfn_out,Multiwfn_err,分别是Multiwfn的输入,输出和报错文件。分别打开分析。
3.打开Multiwfn_com,照着里面的命令手动运行Multiwfn,看看具体那一步出错。
4.回帖或者联系我。

test.tar.gz 中是几个小的示例文件。可以运行本贴中的所有例子,手上没有现成fchk和log的同学可以下载尝试一下。

MCubeGen.py

25.39 KB, 下载次数 Times of downloads: 148

test.tar.gz

634.49 KB, 下载次数 Times of downloads: 86

评分 Rate

参与人数
Participants 13
威望 +1 eV +56 收起 理由
Reason
ChunLinX + 5 GJ!
lonemen + 5 太赞啦!
panernie + 5 我很赞同
YuhangJ + 5 赞!
philartist + 5 赞!
winnerwill + 5 GJ!
冰释之川 + 5 好物!
zsu007 + 5 好物!
mars936 + 3 赞!
朙天儿 + 5 赞!
sobereva + 1 精品内容
ldatea + 3 好物!
thanhtam + 5 GJ!

查看全部评分 View all ratings

57

帖子

0

威望

957

eV
积分
1014

Level 4 (黑子)

发表于 Post on 2020-8-4 19:43:42 | 显示全部楼层 Show all
将MCubGen.py放在环境变量里,还有可能会报其他错,哈哈哈,比如没装psutil, 直接pip install psutil ,装一个就好了,

2

2

3

3
(顺便查一下你用的是python3不)装完这个psutil仍然出错,找不到我的cubegenpath, 哈哈哈哈,原来是根据formchk 的位置来找我的g16 和cubegenpath,

4

4
谁让我的formchk乱放,又报错,只要你的formchk在g16目录下就不会有什么问题。。。

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
anlancx + 1

查看全部评分 View all ratings

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-8-4 22:55:24 | 显示全部楼层 Show all
TDHFjiang 发表于 2020-8-4 19:43
将MCubGen.py放在环境变量里,还有可能会报其他错,哈哈哈,比如没装psutil, 直接pip install psutil ,装 ...
你是不是没有装anaconda?
你有毒吧。。。你是为什么把formchk放到别处去了。。。。

1061

帖子

16

威望

5780

eV
积分
7161

Level 6 (一方通行)

計算化学の社畜

发表于 Post on 2020-8-5 14:23:41 | 显示全部楼层 Show all
本帖最后由 冰释之川 于 2020-8-5 14:26 编辑

钟叔大法好!
lol:英雄联盟
2333333
Stand on the shoulders of giants

82

帖子

4

威望

2161

eV
积分
2323

Level 5 (御坂)

发表于 Post on 2020-8-8 05:26:40 | 显示全部楼层 Show all
谢谢分享。
刚试了一下发现,如果Multiwfn的安装目录(刚好目录名也叫Multiwfn)及其上级目录同时存在于PATH变量中的时候,有可能取错成上级目录。把对应的exists改成isfile就通过了。
不知道钟老师有没有计划在生成cube文件的同时也提取可能整理成表格的数据?
不然还是要再另外运行一次提取数据

57

帖子

0

威望

957

eV
积分
1014

Level 4 (黑子)

发表于 Post on 2020-8-8 15:05:47 | 显示全部楼层 Show all
ggdh 发表于 2020-8-4 22:55
你是不是没有装anaconda?
你有毒吧。。。你是为什么把formchk放到别处去了。。。。

装了anaconda, 不过PSI4也有py3, 我。。。 formchk是有其他调用,我复制了一份,然后就识别了copy的那份,当然正常人应该没有这个操作,我已经删了,现在木有问题了

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-8-8 19:02:32 | 显示全部楼层 Show all
winnerwill 发表于 2020-8-8 05:26
谢谢分享。
刚试了一下发现,如果Multiwfn的安装目录(刚好目录名也叫Multiwfn)及其上级目录同时存在于PA ...

哈哈 感谢反馈。。
你理想中的表格大概是个什么样

82

帖子

4

威望

2161

eV
积分
2323

Level 5 (御坂)

发表于 Post on 2020-8-8 19:56:49 | 显示全部楼层 Show all
ggdh 发表于 2020-8-8 19:02
哈哈 感谢反馈。。
你理想中的表格大概是个什么样

觉得类似您TSM的那个输出形式就很赞,后续excel或者origin都能认的最好

351

帖子

0

威望

881

eV
积分
1232

Level 4 (黑子)

发表于 Post on 2020-8-18 23:45:48 | 显示全部楼层 Show all
老师,您好,我第一次接触python这个程序,按照上述进行设置,运行后出现如下所示:
1.2 GB memory avaialbe
2 physical cores detected
Use 2 cores and ompstacksize is set to 0.5 GB
Multiwfn found in C:\ProgramData\Anaconda3
Gaussian found in C:\ProgramData\Anaconda3
Traceback (most recent call last):
  File "MCubeGen.py", line 639, in <module>
    pm = prepareM(np=args.np, mem=args.mem)
  File "MCubeGen.py", line 297, in __init__
    self.check_gau_path()
  File "MCubeGen.py", line 383, in check_gau_path
    if os.path.exists(gau) and os.access(gau, os.X_OK):
UnboundLocalError: local variable 'gau' referenced before assignment
然后网上查找说全局变量错误,需要改一下代码,但是不知道从哪里可以看见代码,进行修改,辛苦老师了

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-8-19 16:05:02 | 显示全部楼层 Show all
本帖最后由 ggdh 于 2020-8-19 16:08 编辑
xxzj 发表于 2020-8-18 23:45
老师,您好,我第一次接触python这个程序,按照上述进行设置,运行后出现如下所示:
1.2 GB memory avaial ...

你的系统里面是不是装的g03  或者是windows版本的?,你为啥把Multiwfn和formchk放到Anaconda目录下了?

351

帖子

0

威望

881

eV
积分
1232

Level 4 (黑子)

发表于 Post on 2020-8-19 16:46:27 | 显示全部楼层 Show all
本帖最后由 xxzj 于 2020-8-19 17:29 编辑
ggdh 发表于 2020-8-19 16:05
你的系统里面是不是装的g03  或者是windows版本的?,你为啥把Multiwfn和formchk放到Anaconda目录下了?

嗯呢,是的,因为刚接触,就乱放位置了然后我系统是windows。现在还么有解决问题,辛苦老师了

82

帖子

4

威望

2161

eV
积分
2323

Level 5 (御坂)

发表于 Post on 2020-8-19 21:21:22 | 显示全部楼层 Show all
xxzj 发表于 2020-8-18 23:45
老师,您好,我第一次接触python这个程序,按照上述进行设置,运行后出现如下所示:
1.2 GB memory avaial ...

估计你把脚本里面出错的地方对应的os.path.exists改成os.path.isfile就好了。
应该跟我之前发现的情形类似。

248

帖子

0

威望

2008

eV
积分
2256

Level 5 (御坂)

发表于 Post on 2021-4-16 17:31:35 | 显示全部楼层 Show all
老师,把Multiwfn和脚本都安在集群上了,但那是运行脚本出错,
能帮忙看下这是什么原因么?谢谢!

[YS_zhang@041 Multiwfn_3.8_dev_bin_Linux]$ mcubegen.py -n 12 -m 10GB -o H1-L1,10  *.fchk
32.0 GB memory avaialbe
12 physical cores detected
Use 12 cores and ompstacksize is set to 0.7 GB
Multiwfn found in /home-ys/users/YS_zhangzw/software/Multiwfn_3.8_dev_bin_Linux
Gaussian found in /home-ys/users/YS_zhangzw/software/g16
Traceback (most recent call last):
  File "/home-ys/users/YS_zhangzw/software/MCubeGen/mcubegen.py", line 639, in <module>
    pm = prepareM(np=args.np, mem=args.mem)
  File "/home-ys/users/YS_zhangzw/software/MCubeGen/mcubegen.py", line 298, in __init__
    self.modify_Mwfn_ini()
  File "/home-ys/users/YS_zhangzw/software/MCubeGen/mcubegen.py", line 396, in modify_Mwfn_ini
    shutil.copyfile(inifile, 'settings.ini')
  File "/home-yw/soft/packagedir/anaconda3/install/lib/python3.6/shutil.py", line 104, in copyfile
    raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home-ys/users/YS_zhangzw/software/Multiwfn_3.8_dev_bin_Linux/settings.ini' and 'settings.ini' are the same file

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2021-4-17 11:38:01 | 显示全部楼层 Show all
万卷书万里路 发表于 2021-4-16 17:31
老师,把Multiwfn和脚本都安在集群上了,但那是运行脚本出错,
能帮忙看下这是什么原因么?谢谢!

额 这是程序的一个bug,不要在Multiwfn的目录下运行此脚本。

248

帖子

0

威望

2008

eV
积分
2256

Level 5 (御坂)

发表于 Post on 2021-4-17 11:53:05 | 显示全部楼层 Show all
ggdh 发表于 2021-4-17 11:38
额 这是程序的一个bug,不要在Multiwfn的目录下运行此脚本。

哦哦好的,谢谢钟老师!换个目录就可以了~感谢!!

本版积分规则 Credits rule

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

GMT+8, 2023-2-2 23:40 , Processed in 0.218427 second(s), 25 queries .

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