【LAMMPS学习】八、基础知识(4.2)AMOEBA 和 HIPPO 力场

8. 基础知识

此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。

8.1.通用基础知识

8.2. 设置入门

8.3. 分析入门

8.4. 力场入门

8.4.1. CHARMM、AMBER、COMPASS 和 DREIDING 力场

8.4.2. AMOEBA 和 HIPPO 力场

AMOEBA 和 HIPPO 极化力场是由华盛顿大学圣路易斯分校的 Jay Ponder 团队开发的。 LAMMPS 实现基于 Ponder 小组在其 Tinker MD software软件中提供的 Fortran 90 代码。

LAMMPS 中 AMOEBA 的当前实现(2022 年 7 月)与(Ponder)(Ren), and (Shi)中讨论的版本匹配。同样,LAMMPS 中 HIPPO 的当前实现与(Rackers)中讨论的版本相匹配。

当在水、有机分子和包括蛋白质在内的生物分子的模拟中需要偏振效应时,可以使用这些力场,前提是参数化(Tinker PRM 力场文件)可用于您感兴趣的系统。LAMMPS 势能目录中的文件可以使用带有“amoeba”或“hippo”后缀的。 Tinker 发行版和网站还有其他力场文件: https://github.com/TinkerTools/tinker/tree/release/params

请注意,目前,HIPPO 只能用于水系统,但 Ponder 小组正在准备各种小有机和生物分子的 HIPPO 文件。这些力场文件将包含在 LAMMPS 发行版中(如果可用)。

要使用 AMOEBA 或 HIPPO 力场,模拟必须是 3d 的、完全周期性或完全非周期性的,并使用正交(非三斜)模拟框。

AMOEBA 和 HIPPO 力场在其能量 (U) 计算中包含以下项。 AMOEBA 方程的更多详细信息在  (Ponder)中,HIPPO 方程的更多详细信息在(Rackers)中。

eq?%5Cbegin%7Baligned%7D%20U%20%26%20%3DU_%7B%5Ctext%20%7Bintermolecular%20%7D%7D+U_%7B%5Ctext%20%7Bintramolecular%20%7D%7D%20%5C%5C%20U_%7B%5Ctext%20%7Bintermolecular%20%7D%7D%20%26%20%3DU_%7B%5Ctext%20%7Bhal%20%7D%7D+U_%7B%5Ctext%20%7Brepulsion%20%7D%7D+U_%7B%5Ctext%20%7Bdispersion%20%7D%7D+U_%7B%5Ctext%20%7Bmultipole%20%7D%7D+U_%7B%5Ctext%20%7Bpolar%20%7D%7D+U_%7B%5Ctext%20%7Bqxfer%20%7D%7D%20%5C%5C%20U_%7B%5Ctext%20%7Bintramolecular%20%7D%7D%20%26%20%3DU_%7B%5Ctext%20%7Bbond%20%7D%7D+U_%7B%5Ctext%20%7Bangle%20%7D%7D+U_%7B%5Ctext%20%7Btorsion%20%7D%7D+U_%7B%5Ctext%20%7Boop%20%7D%7D+U_%7Bb%20%5Ctheta%7D+U_%7BU%20B%7D+U_%7B%5Ctext%20%7Bpitorsion%20%7D%7D+U_%7B%5Ctext%20%7Bbitorsion%20%7D%7D%20%5Cend%7Baligned%7D

对于分子间项,AMOEBA 力场仅包括 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bhal%20%7D%7D%20%5Cend%7Baligned%7D、 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bmultipole%20%7D%7D%20%5Cend%7Baligned%7Deq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bpolar%7D%7D%20%5Cend%7Baligned%7D项。 HIPPO 力场包括除  eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bhal%20%7D%7D%20%5Cend%7Baligned%7D项之外的所有项。在LAMMPS中,这些都是由 pair_style amoeba 或 hippo命令计算的。请注意,对于 AMOEBA 和 HIPPO 力场,此公式中的 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bmultipole%20%7D%7D%20%5Cend%7Baligned%7D 和 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bpolar%7D%7D%20%5Cend%7Baligned%7D项不同。

对于分子内项,eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bbond%20%7D%7D%20%5Cend%7Baligned%7D 、eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bangle%20%7D%7D%20%5Cend%7Baligned%7D、 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Btorsion%7D%7D%20%5Cend%7Baligned%7D 、 eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Boop%7D%7D%20%5Cend%7Baligned%7D 项由 bond_style class2 angle_style amoebadihedral_style fourier, 和 improper_style amoeba 命令计算。  angle_style amoeba命令包括eq?%5Cbegin%7Baligned%7D%20U_%7B%20%7Bb%5Ctheta%7D%7D%20%5Cend%7Baligned%7D键角交叉项,以及 IJK 角中 I、K 原子之间 Urey-Bradley 键贡献的eq?%5Cbegin%7Baligned%7D%20U_%7B%20%7BUB%7D%7D%20%5Cend%7Baligned%7D项。

eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bpitorsion%7D%7D%20%5Cend%7Baligned%7D项由fix amoeba/pitorsion 命令计算。它计算一对键合原子之间的 6 体相互作用,每个键合原子都有 2 个额外的键合伙伴。

eq?%5Cbegin%7Baligned%7D%20U_%7B%5Ctext%20%7Bbitorsion%7D%7D%20%5Cend%7Baligned%7D项由 fix amoeba/bitorsion 命令计算。它计算两个重叠且具有 3 个公共原子的 4 体扭转(二面体)之间的 5 体相互作用。

这些命令文档页面包含有关它们计算的术语的更多详细信息:

要在 LAMMPS 中使用 AMOEBA 或 HIPPO 力场,请在输入脚本中适当使用如下命令。 AMOEBA 与 HIPPO 模拟所需的唯一更改是 pair_style 和 pair_coeff 命令,如下所示。有关 AMOEBA 和 HIPPO 的输入脚本示例,请参阅 Examples/amoeba。

units              real                           # required
atom_style         amoeba
bond_style         class2                         # CLASS2 package
angle_style        amoeba
dihedral_style     fourier                        # EXTRA-MOLECULE package
improper_style     amoeba
                                                  # required per-atom data
fix                amtype all property/atom i_amtype ghost yes
fix                extra all property/atom &
                   i_amgroup i_ired i_xaxis i_yaxis i_zaxis d_pval ghost yes
fix                polaxe all property/atom i_polaxe

fix                pit all amoeba/pitorsion       # PiTorsion terms in FF
fix_modify         pit energy yes
                                                  # Bitorsion terms in FF
fix                bit all amoeba/bitorsion bitorsion.ubiquitin.data
fix_modify         bit energy yes

read_data          data.ubiquitin fix amtype NULL "Tinker Types" &
                   fix pit "pitorsion types" "PiTorsion Coeffs" &
                   fix pit pitorsions PiTorsions &
                   fix bit bitorsions BiTorsions

pair_style         amoeba                          # AMOEBA FF
pair_coeff         * * amoeba_ubiquitin.prm amoeba_ubiquitin.key

pair_style         hippo                           # HIPPO FF
pair_coeff         * * hippo_water.prm hippo_water.key

special_bonds      lj/coul 0.5 0.5 0.5 one/five yes     # 1-5 neighbors

read_data 命令读取的数据文件应该由下面描述的tools/tinker/tinker2lmp.py转换程序创建。它将在数据文件中创建一个标题为“Tinker Types”的部分。必须在 read_data 命令之前指定数据的 fix property/atom命令。在上面的示例中,修复 ID 是 amtype。

同样,如果您正在模拟的系统定义了 AMOEBA/HIPPO 平扭转或双扭转交互作用,则数据文件中将存在这些交互作用的条目。它们需要定义fix amoeba/pitortion 和 fix amoeba/bitorsion命令。在上面的示例中,这两个修复的 ID 是pit 和bit。

当然,如果正在建模的系统不具有以下一项或多项——键、角度、二面角、不正确、底扭转、双扭转相互作用——则不需要使用上面相应的样式和修复命令。请参阅示例/amoeba 中水系统的示例脚本作为示例;它们比上面列出的更简单。

还需要两个带有 ID(在上面的示例中)extra 和 polaxe 的 fix property/atom命令来定义 AMOEBA 和 HIPPO 力场使用的内部每原子数量。

用于 AMOEBA 或 HIPPO 力场的 pair_coeff 命令采用 Tinker 力场文件的两个参数,即 PRM 和 KEY 文件。密钥文件可以指定为 NULL,并且将使用各种设置的默认值。请注意,这两个文件旨在允许按原样使用本机 Tinker 文件。但是,LAMMPS 不支持 Tinker PRM 或 KEY 文件中包含的所有选项。具体请参见下文。

需要带有一/五选项的special_bonds 命令,因为AMOEBA/HIPPO力场不仅定义1-2、1-3、1-4相互作用的权重因子,还定义1-5相互作用的权重因子。此命令将触发生成 1-5 个邻居的每原子列表。 AMOEBA 和 HIPPO 力场为 Tinker PRM 和 KEY 文件中的所有 1-2、1-3、1-4、1-5 项定义了自己的自定义权重因子;对于力场中的不同项,它们可能不同。

除了上面的列表之外,这些命令文档页面还有其他详细信息:

 


Tinker PRM 和 KEY 文件

Tinker PRM 文件由多个部分组成,每个部分有多行。这是 LAMMPS 知道如何解析和使用的 PRM 部分的列表。跳过任何其他部分:

  • Angle Bending Parameters 角度弯曲参数

  • Atom Type Definitions 原子类型定义

  • Atomic Multipole Parameters原子多极参数

  • Bond Stretching Parameters键拉伸参数

  • Charge Penetration Parameters电荷穿透参数

  • Charge Transfer Parameters电荷转移参数

  • Dipole Polarizability Parameters偶极子极化率参数

  • Dispersion Parameters 色散参数

  • Force Field Definition 力场定义

  • Literature References 参考文献

  • Out-of-Plane Bend Parameters面外弯曲参数

  • Pauli Repulsion Parameters泡利斥力参数

  • Pi-Torsion Parameters Pi 扭转参数

  • Stretch-Bend Parameters 拉伸-弯曲参数

  • Torsion-Torsion Parameters扭转-扭转参数

  • Torsional Parameters 扭转参数

  • Urey-Bradley Parameters 尤里-布拉德利参数

  • Van der Waals Pair Parameters范德华对参数

  • Van der Waals Parameters 范德华参数

Tinker KEY 文件由行组成,每行都有一个关键字,后跟零个或多个参数。这是 LAMMPS 知道如何以 Tinker 相同的方式解析和使用的关键字列表。任何其他关键字都会被跳过。如果未指定,或者将pair_coeff命令中的密钥文件指定为NULL,则括号中的值为关键字的默认值:

  • a-axis (0.0)

  • b-axis (0.0)

  • c-axis (0.0)

  • ctrn-cutoff (6.0)

  • ctrn-taper (0.9 * ctrn-cutoff)

  • cutoff

  • delta-halgren (0.07)

  • dewald (no long-range dispersion unless specified)

  • dewald-alpha (0.4)

  • dewald-cutoff (7.0)

  • dispersion-cutoff (9.0)

  • dispersion-taper (9.0 * dispersion-cutoff)

  • dpme-grid

  • dpme-order (4)

  • ewald (no long-range electrostatics unless specified)

  • ewald-alpha (0.4)

  • ewald-cutoff (7.0)

  • gamma-halgren (0.12)

  • mpole-cutoff (9.0)

  • mpole-taper (0.65 * mpole-cutoff)

  • pcg-guess (enabled by default)

  • pcg-noguess (disable pcg-guess if specified)

  • pcg-noprecond (disable pcg-precond if specified)

  • pcg-peek (1.0)

  • pcg-precond (enabled by default)

  • pewald-alpha (0.4)

  • pme-grid

  • pme-order (5)

  • polar-eps (1.0e-6)

  • polar-iter (100)

  • polar-predict (no prediction operation unless specified)

  • ppme-order (5)

  • repulsion-cutoff (6.0)

  • repulsion-taper (0.9 * repulsion-cutoff)

  • taper

  • usolve-cutoff (4.5)

  • usolve-diag (2.0)

  • vdw-cutoff (9.0)

  • vdw-taper (0.9 * vdw-cutoff)


Tinker2lmp.py 转换工具

这个转换工具可以在tools/tinker目录中找到。如示例/amoeba/README 中所示,这些命令生成在示例/amoeba 中找到的数据文件,并且还说明了可与tinker2lmp.py 脚本一起使用的所有选项:

python tinker2lmp.py -xyz water_dimer.xyz -amoeba amoeba_water.prm -data data.water_dimer.amoeba                # AMOEBA non-periodic system
python tinker2lmp.py -xyz water_dimer.xyz -hippo hippo_water.prm -data data.water_dimer.hippo                   # HIPPO non-periodic system
python tinker2lmp.py -xyz water_box.xyz -amoeba amoeba_water.prm -data data.water_box.amoeba -pbc 18.643 18.643 18.643    # AMOEBA periodic system
python tinker2lmp.py -xyz water_box.xyz -hippo hippo_water.prm -data data.water_box.hippo -pbc 18.643 18.643 18.643       # HIPPO periodic system
python tinker2lmp.py -xyz ubiquitin.xyz -amoeba amoeba_ubiquitin.prm -data data.ubiquitin.new -pbc 54.99 41.91 41.91 -bitorsion bitorsion.ubiquitin.data.new   # system with bitorsions

开关及其参数可以按任何顺序指定。

-xyz 开关是必需的,它指定输入 XYZ 文件作为参数。该文件的格式是 Tinker 为其输入定义和使用的扩展 XYZ 格式。示例 *.xyz 文件位于 Examples/amoeba 目录中。该文件列出了系统中的原子。每个原子都具有以下信息:Tinker 物种名称(被 LAMMPS 忽略)、xyz 坐标、Tinker 数字类型以及原子所键合的原子 ID 列表。

以下是有关 Tinker 定义和使用的扩展 XYZ 格式的更多信息,以及将标准 PDB 文件转换为扩展 XYZ 格式的程序的链接:

需要 -amoeba 或 -hippo 开关。它将输入 AMOEBA 或 HIPPO PRM 力场文件指定为参数。这应该与输入脚本中的pair_style c​​​​​​​命令使用的文件相同。

需要 -data 开关。它指定将生成的 LAMMPS 数据文件的输出文件名。

对于周期性系统,需要 -pbc 开关。它指定每个维度 (x,y,z) 的周期框大小。对于 Tinker 模拟,这些在 KEY 文件中指定。

仅当系统包含 Tinker bitorsion 交互时才需要 -bitorsion 开关。每种类型的 bitorsion 交互的数据将写入指定的文件,并由 fix amoeba/bitorsion命令读取。该数据包括样条线所拟合的二维值数组,因此与 LAMMPS 数据文件格式不兼容。


Ref:

(Ponder) Ponder, Wu, Ren, Pande, Chodera, Schnieders, Haque, Mobley, Lambrecht, DiStasio Jr, M. Head-Gordon, Clark, Johnson, T. Head-Gordon, J Phys Chem B, 114, 2549-2564 (2010).

(Rackers) Rackers, Silva, Wang, Ponder, J Chem Theory Comput, 17, 7056-7084 (2021).

(Ren) Ren and Ponder, J Phys Chem B, 107, 5933 (2003).

(Shi) Shi, Xia, Zhang, Best, Wu, Ponder, Ren, J Chem Theory Comp, 9, 4046, 2013.

 

 

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值