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

计算化学公社

 找回密码
 现在注册!
查看: 692|回复: 0

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

[复制链接]

603

帖子

15

威望

2154

eV
积分
3057

Level 5 (御坂)

发表于 2019-1-4 12:30:59 | 显示全部楼层 |阅读模式
本帖最后由 ggdh 于 2019-1-4 15:08 编辑

在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

可以看到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 $seltext
  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, 下载次数: 5

orb_comp.txt

370 Bytes, 下载次数: 5

评分

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

查看全部评分

您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

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

GMT+8, 2019-9-16 08:55 , Processed in 0.190869 second(s), 28 queries .

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