计算化学公社

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

[综合交流] 使用VMD中的topo模块构建 .data, .psf, .top文件

  [复制链接 Copy URL]

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

本帖子的目的是使用 topo 来生成lammps,NAMD,Gromacs中比较难搞的  原子之间的bond,angle,dihedral等信息!

注意:生成的 top 文件不准确,有很多地方需要修改,请各位注意!(可用于lammps输出.trr文件,使用gromacs中的分析程序进行数据分析时使用,因为在使用gromacs中内嵌的分析程序时一般需要提供.tpr文件,用于生成.tpr文件所用)

我这里以水分子为例进行说明,阅读本帖之前请自行了解.tcl文件或者是参考  Sob老师发的帖子http://bbs.keinsci.com/forum.php ... 7&highlight=tcl

1 输入文件:water.pdb
2 脚本文件:water.tcl

打开VMD(版本1.9.2),切换到 Extensions/TK Console部分,保证water.tcl, water.pdb 文件在 当前的操作目录下,比如在桌面位置

>> source water.tcl
几秒之后,会生成.psf, .data, .top文件
对于生成的文件,需要自己检查!(一定要养成 check 的好习惯)

!! source之后 VMD一开始会卡住,请不要关闭VMD,等几分钟即可,可能是程序写的不够简洁所致(个人能力有限

我们来查看一下 water.tcl 文件

#  load .pdb file
     mol load pdb water.pdb
       
# set charge of water       
     set a [atomselect top "name OW"]
             $a set charge -0.8476
         $a delete

     set b [atomselect top "name HW1 or name HW2"]
         $b set charge 0.4238
     $b delete                 
         
# require topotools
     package require topotools         
         
         topo clearbonds
         
# selecte atom in water molecules
     set sel [atomselect top "name OW HW1 HW2"]
     set ids [$sel get index]

# foreach atoms in $sel

     foreach {id1 id2 id3} $ids {
            topo addbond $id1 $id2;        # add bond in OW-HW1
            topo addbond $id1 $id3;        # add bond in OW-HW2
                topo addangle $id2 $id1 $id3;  # add angle in HW1-OW-HW2
         }

         mol reanalyze $sel
     topo   retypebonds   $sel
         topo   retypeangles  $sel
         
         
         set name water
         animate write pdb $name\.pdb
         animate write psf $name\.psf
         topo writegmxtop $name\.top
         topo writelammpsdata $name\.data full


第一步是:加载构型文件
第二步是:赋予相应原子的信息,比如 mass,charge, name , atom name, resname等
第三步是:加载 topo模块
第四步是:设定 bond,angle等信息(可省),使用下面命令代替
                  topo guessbonds
                  topo guessangles
                  topo guessdihedrals
                  topo guessimpropers
第四步输出文件

建议自行查看 topo的help文件信息

water.pdb

970.86 KB, 下载次数 Times of downloads: 360

water.tcl

969 Bytes, 下载次数 Times of downloads: 366

评分 Rate

参与人数
Participants 10
eV +37 收起 理由
Reason
Ecust-zy + 1 谢谢
zzzhoujm + 3 とてもいい!
ShengLin + 3 好物!
lishizhen951213 + 3 刚好用上
zsu007 + 5 好物!
zyw5766 + 1 谢谢
孤梦幻影 + 3 赞!
jackie + 3 好物!
winterzen + 5 赞!
sobereva + 10

查看全部评分 View all ratings

129

帖子

0

威望

955

eV
积分
1084

Level 4 (黑子)

2#
发表于 Post on 2017-2-11 18:56:17 | 只看该作者 Only view this author
本帖最后由 jackie 于 2017-2-11 18:57 编辑

thank u for sharing。感觉这个对lammps使用的data文件的生成有非常大的帮助。我也是从你的分享中了解并学习了Tcl脚本语言,并且想在你的脚本基础上进行一些修改。只是这里对你写的“
     set sel [atomselect top "name OW HW1 HW2"]
     set ids [$sel get index]

这一部分没搞明白,想请教一下这两个设置变量的命令中的两组参数[atomselect top "name OW HW1 HW2"]和[$sel get index]应怎样去理解?这里的top get index是命令还是变量 我没有查到?

5万

帖子

99

威望

5万

eV
积分
112349

管理员

公社社长

3#
发表于 Post on 2017-2-12 02:23:18 | 只看该作者 Only view this author
jackie 发表于 2017-2-11 18:56
thank u for sharing。感觉这个对lammps使用的data文件的生成有非常大的帮助。我也是从你的分享中了解并学 ...

你看了VMD手册就明白了。这都是VMD内部定义的
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

129

帖子

0

威望

955

eV
积分
1084

Level 4 (黑子)

4#
发表于 Post on 2017-2-12 12:58:23 | 只看该作者 Only view this author
本帖最后由 jackie 于 2017-2-12 13:01 编辑

老师,1l2y.tcl是我基于上面写好的water.tcl脚本又加了一些dihedral和improper等信息最终想生成lammps所用的data文件。但是在运行source 1l2y.tcl时还是有问题,且在vmd窗口显示的构型也不对。老师请您帮我看一下,构型文件已上传,修改的1l2y.tcl脚本内容如下(无法上传):

#  load .pdb file
     mol load pdb 1l2y.pdb                 

# set charge all atoms as 0 for my work
        set allatoms [atomselect top all]
         $allatoms set charge 0.0  
         $allatoms delete
         
# require topotools
         package require topotools                  
         topo clearbonds
         topo clearangles
         topo cleardihedrals
         topo clearimpropers
         
# select atom in 1l2y molecule
     set sel [atomselect top all]
     set ids [$sel get index]
   
# foreach atoms in $sel

     foreach {id1 id2 id3 id4} $ids {
            topo addbond $id1 $id2;        
#            topo addbond $id2 $id3;        
#            topo addbond $id3 $id4;        
            topo addangle $id1 $id2 $id3;  
#            topo addangle $id2 $id3 $id4;  
            topo adddihedral $id1 $id2 $id3 $id4;   
            topo addimproper $id1 $id2 $id3 $id4;   #problem not sure 这块添加的键长、键角、二面角和improper角信息不知对不对
         }

         mol    reanalyze     $sel      ## Re-analyze structure after changes
         topo   retypebonds   $sel      ## resets all bond types.
         topo   retypeangles  $sel      ## resets all angle types.
         topo   retypedihedrals  $sel      ## resets all dihedral types.
         topo   retypeimpropers  $sel      ## resets all improper types.

#set all definitions

                  topo guessbonds
                  topo guessangles
                  topo guessdihedrals
                  topo guessimpropers         
         
         set name 1l2y                   ## set filename as 1l2y
         animate write pdb $name\.pdb
         topo writelammpsdata $name\.data full  ## write lammps data file
         
         
         

1l2y.pdb

24.07 KB, 下载次数 Times of downloads: 48

294

帖子

0

威望

3528

eV
积分
3822

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2017-2-12 17:20:13 | 只看该作者 Only view this author
本帖最后由 ruanyang 于 2017-2-12 17:23 编辑
jackie 发表于 2017-2-12 12:58
老师,1l2y.tcl是我基于上面写好的water.tcl脚本又加了一些dihedral和improper等信息最终想生成lammps所用 ...

你试试这个脚本看看 1l2y.top (50.38 KB, 下载次数 Times of downloads: 88)

1l2y.psf (71.81 KB, 下载次数 Times of downloads: 54)

1l2y.data (63.45 KB, 下载次数 Times of downloads: 66)

1l2y.tcl (1.05 KB, 下载次数 Times of downloads: 168)





我的建议:如果是使用lammps做蛋白方面的研究的话,可以使用lammps/tools中的脚本将 amber,charmm形式的文件直接转换成lammps需要的.data文件不需要使用VMD

129

帖子

0

威望

955

eV
积分
1084

Level 4 (黑子)

6#
发表于 Post on 2017-2-13 19:08:22 | 只看该作者 Only view this author
没想到没有那么复杂:)谢谢你。那如你所说可以使用lammps里的amber2lmp和ch2lmp工具可以转换,您可不可以用amber给我举个例子,都使用什么格式的输入文件,执行的命令是什么?因为最近也是才开始学习lammps,希望能加快一点学习的进度,向您请教一下,谢谢你

76

帖子

0

威望

470

eV
积分
546

Level 4 (黑子)

7#
发表于 Post on 2019-3-17 15:41:13 | 只看该作者 Only view this author
谢谢分享!请问这个water.pdb文件是通过什么生成的?

19

帖子

0

威望

87

eV
积分
106

Level 2 能力者

8#
发表于 Post on 2020-1-10 10:22:41 | 只看该作者 Only view this author
您好,很感谢您的分享,我是照着您的方法来弄的,编写了一个tcl脚本,在vmd中运行也得到了data文件,但为什么有的键会缺失呢?因为在原pdb文件中有756个键,但运行tcl脚本后生成的data文件里只有660个键。

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

9#
发表于 Post on 2020-2-3 15:51:34 | 只看该作者 Only view this author
李佳佳 发表于 2020-1-10 10:22
您好,很感谢您的分享,我是照着您的方法来弄的,编写了一个tcl脚本,在vmd中运行也得到了data文件,但为什 ...

vmd读pdb是根据距离规则判断成键的,应该是有的距离超过了判断阈值

19

帖子

0

威望

87

eV
积分
106

Level 2 能力者

10#
发表于 Post on 2020-2-3 20:56:59 | 只看该作者 Only view this author
tjuptz 发表于 2020-2-3 15:51
vmd读pdb是根据距离规则判断成键的,应该是有的距离超过了判断阈值

好的,非常感谢

14

帖子

0

威望

111

eV
积分
125

Level 2 能力者

11#
发表于 Post on 2020-12-8 10:26:53 | 只看该作者 Only view this author
请问topotool可以输出data文件中的coeffs参数(如bond coeffts)吗?想通过topotool拿到成键关系(如1类成键是哪两种原子成键的),但是发现用retypebond之后成键类型的编号改变了,有没有不改变成键类型编号就能获得每种成键类型包括哪些成键原子类型的方式呢?

24

帖子

0

威望

133

eV
积分
157

Level 3 能力者

12#
发表于 Post on 2021-3-2 19:29:06 | 只看该作者 Only view this author
我输出的数据都是缺少键角类型啥的?

24

帖子

0

威望

133

eV
积分
157

Level 3 能力者

13#
发表于 Post on 2021-3-2 19:51:17 | 只看该作者 Only view this author
vimalakirti_lee 发表于 2020-12-8 10:26
请问topotool可以输出data文件中的coeffs参数(如bond coeffts)吗?想通过topotool拿到成键关系(如1类成 ...

在吗?想问下你做那个tcl脚本定义了键角啥的吗?

350

帖子

4

威望

3305

eV
积分
3735

Level 5 (御坂)

Nerv

14#
发表于 Post on 2021-3-3 11:30:25 | 只看该作者 Only view this author
爱模拟的bao 发表于 2021-3-2 19:51
在吗?想问下你做那个tcl脚本定义了键角啥的吗?

你可以试试topo guessangles,不行的话就使用topo addangle自己去定义键角,示例在1楼和4楼给出了。
God's in his heaven,all is right with the world

350

帖子

4

威望

3305

eV
积分
3735

Level 5 (御坂)

Nerv

15#
发表于 Post on 2021-3-3 11:58:27 | 只看该作者 Only view this author
vimalakirti_lee 发表于 2020-12-8 10:26
请问topotool可以输出data文件中的coeffs参数(如bond coeffts)吗?想通过topotool拿到成键关系(如1类成 ...

coeffs参数需要自己添加进去,
bondtype的编号是可以自己设定的addbond $id1 $id2 -bondtype 1
其他的参数如下:
addangle <id1> <id2> <id3> [<type>]
add(dihedral|improper) <id1> <id2> <id3> <id4> [<type>]
God's in his heaven,all is right with the world

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 01:20 , Processed in 0.177030 second(s), 25 queries , Gzip On.

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