计算化学公社

 找回密码 Forget password
 注册 Register
Views: 7306|回复 Reply: 0

[VMD] 用VMD的TCL脚本把Multiwfn的结果标记到原子上的方法

[复制链接 Copy URL]

877

帖子

36

威望

4803

eV
积分
6400

Level 6 (一方通行)

发表于 Post on 2019-1-4 12:30:59 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 ggdh 于 2020-6-15 15:15 编辑

在vmd中标记原子的方法参考:
在VMD中显示原子序号的方法
Multiwfn可以产生各种划分到原子上的信息,比如轨道分布,原子电荷等等。如果能把这些信息标记到原子上,一目了然。如果嫌直接显示标签太乱,看不清,可以使用
使用Multiwfn+VMD以原子着色方式表现原子电荷、自旋布居、电荷转移、简缩福井函数

这里记录,如何把HOMO轨道的分布标记到原子上的过程:
1.进行Gaussian运算,产生fchk。
2.用Multiwfn处理fchk文件,使用8 2 功能对HOMO轨道做SCPA分解。
3.把产生的轨道分布信息复制到excel中,格式改为保留2位小数,然后在复制出来,到Notepad++中,保存为文件(附件中的的orb_comp.txt文件)
4.把gaussian的log文件转换成vmd可以打开的结构文件,这里我转成了mol2文件(附件中的NCPCN.mol2)
5.用vmd打开mol2文件,然后打开tk console,把下面的程序复制过去:
  1. proc labelAtoms {filename seltext} {  
  2.     set molid [molinfo top]
  3.     set sel [atomselect top all]
  4.     set atomlist [$sel list]
  5.     set label_data [split [read [open $filename r]] "\n"]
  6.     set i 0
  7.     label delete Atoms all
  8.     foreach {atom} $atomlist {data} $label_data {
  9.         set atomlabel [format "%d/%d" $molid $atom]
  10.         label add Atoms $atomlabel
  11.         label textformat Atoms $i $data
  12.         incr i
  13.     }
  14.     label hide Atoms
  15.     set selshow [atomselect top $seltext]
  16.     set atomlist [$selshow list]
  17.     foreach {atom} $atomlist {
  18.         label show Atoms $atom
  19.     }
  20.   $sel delete
  21. }
复制代码

6.继续在Tk console 中输入
  1. labelAtoms "D:/orb_comp.txt" all
复制代码
注意这里的D:/orb_comp.txt 为你实际放置标签信息的位置
最后效果如下 ncpcn.png 注意:label的颜色在Graphics-->color 中调节,而label的大小在Graphics-->Labels中调节

可以看到H原子上的HOMO轨道占据基本都是0,为了使得显示更简洁,可以把H上的标签全部去掉
输入命令
  1. labelAtoms "D:/orb_comp.txt" "not name \"H.*\""
复制代码
label2.png
可以看到,清楚了不少。

最后附上另外一种方法,首先定义程序:
  1. proc labelAtoms {molid seltext label_format} {
  2.     label delete Atoms all
  3.     set sel [atomselect $molid $seltext]
  4.     set i 0
  5.     set atomlist [$sel list]
  6.     foreach {atom} $atomlist {
  7.     set atomlabel [format "%d/%d" $molid $atom]
  8.     label add Atoms $atomlabel
  9.     label textformat Atoms $i $label_format
  10.     incr i
  11.   }
  12.   $sel delete
  13. }
复制代码
然后使用上面的程序
使用方法是
labelAtoms 0 all “%a-%i-%q”
可以显示所有原子的原子名称,序号和电荷,
这个电荷是写在mol2文件中的最后一列里面(具体位置参考附件中的mol2文件),因此我们可以把Multiwfn产生的各种信息当作电荷,替换mol2文件中原本放电荷的位置,让vmd显示出来。
这里的标签格式可以自行指定。具体有哪些格式可以参考:






format.png

NCPCN.mol2

5.8 KB, 下载次数 Times of downloads: 9

orb_comp.txt

370 Bytes, 下载次数 Times of downloads: 11

评分 Rate

参与人数
Participants 2
威望 +1 eV +5 收起 理由
Reason
youyno + 5 牛!
sobereva + 1

查看全部评分 View all ratings

本版积分规则 Credits rule

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

GMT+8, 2023-2-2 22:17 , Processed in 0.206764 second(s), 25 queries .

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