计算化学公社

标题: CaCO3/calcite的atomname2type.n2t模板及其问题说明 [打印本页]

作者
Author:
tjuptz    时间: 2019-5-10 11:20
标题: CaCO3/calcite的atomname2type.n2t模板及其问题说明
      以gromos54a7_atb力场为例,calcite的atomname2type.n2t模板如下:
  1. C  CPos  0.928  12.0110 3 O 0.1248 O 0.1248 O 0.1248
  2. O  OM   -0.976  15.9994 1 C 0.1248
  3. O  OM   -0.976  15.9994 2 C 0.1248 Ca 0.2379
  4. O  OM   -0.976  15.9994 3 C 0.1248 Ca 0.2379 Ca 0.2379
  5. Ca CA2+    2.0  40.0800 6 O 0.2379 O 0.2379 O 0.2379 O 0.2379 O 0.2379 O 0.2379
  6. Ca CA2+    2.0  40.0800 5 O 0.2379 O 0.2379 O 0.2379 O 0.2379 O 0.2379
  7. Ca CA2+    2.0  40.0800 3 O 0.2379 O 0.2379 O 0.2379
  8. Ca CA2+    2.0  40.0800 2 O 0.2379 O 0.2379
  9. Ca CA2+    2.0  40.0800 1 O 0.2379
复制代码
注:1.由于C和Ca首字母都是C且都有周围是3个O的规则,所以如果把Ca的规则放在前面C的规则放在后面,会发现一些C被识别成了Ca,亲测
      2.切面扩胞后的CaCO3_slab中的Ca没有O四配位的,如果担心可以将1-6配位的都写一遍
      3.O的判定规则是可以自己看结构文件中到底有几种,我这里写的可能是冗余的,也可能是恰好的,忘记了

作者
Author:
KnightWE    时间: 2019-7-28 23:26
本帖最后由 KnightWE 于 2019-7-29 07:42 编辑

关于第一点,最近被坑得不要不要的。官网的手册说: users should be aware that the knowledge in this file is extremely limited并且关于具体格式,官网写的是Column 1: Elemental symbol of the atom/first character in the atom name........所以说只能识别首字母么?
更新:
继续做了一些测试,目前看来x2top确实只识别首字母。在四年前的Maillist中查到了一条讨论,也侧面印证了这个猜测。x2top通过首字母进行初步分类,随后通过n2t文件中定义的键合数+距离进行最终判断。但考虑到n2t中的距离值有10%的冗余,碰到羟基H和水分子确实不太好直接区分啊。

在maillist的讨论中,Dr.Justin Lemkul提出两个方案来解决:

方案1: 水分子单独写itp,通过include调用。(桥联的O和桥联羟基中的O.....这可咋整?)

方案2: 修改x2top.cpp的源代码。                  ( 源代码在src\gromacs\gmxpreprocess\x2top.cpp,准备等手头忙完了去学习这段源码。看能不能验证我的猜测)

(参考https://mailman-1.sys.kth.se/pipermail/gromacs.org_gmx-users/2015-May/097299.html

作者
Author:
sobereva    时间: 2019-7-29 07:57
关于只考虑首字母,可考虑先把结构文件里有冲突的原子名替换成其它的,x2top处理完了再替换回去
作者
Author:
KnightWE    时间: 2019-7-29 08:22
sobereva 发表于 2019-7-29 07:57
关于只考虑首字母,可考虑先把结构文件里有冲突的原子名替换成其它的,x2top处理完了再替换回去

感谢sob的回复,我也正好想到了这个办法,刚测试了一下我的gro文件,目前看确实可行,没什么问题。有类似问题的朋友可以参考。

后续有空的时候还是准备看下源码,对x2top的实现还是比较好奇的
作者
Author:
tjuptz    时间: 2019-11-9 20:23
sobereva 发表于 2019-7-29 07:57
关于只考虑首字母,可考虑先把结构文件里有冲突的原子名替换成其它的,x2top处理完了再替换回去

老师,我后来又仔细看了gromos54a7_atb.ff中的关键文件,有几个问题请教。
1.ffbond.itp的参数并不像其他力场中那样列出原子i j ( k l ),那么x2top和pdb2gmx是如何根据原子距离和连接关系在ffbond中查询对应的参数呢?根据;注释吗?

2.我用该n2t顺利产生了top文件,并且可以运行md,但我看ffbond中并没有CA2+ CPos 这俩相关的成键参数,难道是根据首字母查询的参数吗?这样的话,我生成的top就完全是错误的了,可怕

3.我看有前人的工作用x2top生成SiO2的53a6参数,我查了ffbond,是有注释的通配项的,所以其应该可信吧?

因为涉及到前面工作的正确性,所以恳请老师指点!
作者
Author:
sobereva    时间: 2019-11-11 12:16
tjuptz 发表于 2019-11-9 20:23
老师,我后来又仔细看了gromos54a7_atb.ff中的关键文件,有几个问题请教。
1.ffbond.itp的参数并不像其 ...

用gromos力场时,rtp文件里直接体现了用什么成键参数,直接给定了对应的变量。grompp的时候不是在ffbonded.itp里根据原子类型查询,而是直接取里面定义的对应的变量值(也有个别变量是根据类型查询的,因为此文件里也有[ bondtypes ]之类的项)。因此如果用x2top的话,没法自动根据类型查询施加相应的参数,除非自己把gromos力场的情况改成类似amber的情况。

CA2+一般是以非键方式描述的,不涉及成键项

如果在ffbonded.itp里定义了Si、O相关的成键参数的[ xxx types ],而且在拓扑文件里参数是空着的,就正确,此时会根据原子类型查询ffbonded.itp



作者
Author:
tjuptz    时间: 2019-11-11 13:07
sobereva 发表于 2019-11-11 12:16
用gromos力场时,rtp文件里直接体现了用什么成键参数,直接给定了对应的变量。grompp的时候不是在ffbonde ...

谢谢社长,那可以确定我之前得到的拓扑文件是错的了。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3