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

2024-04-23 10:52

本文主要是介绍【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 amoeba, dihedral_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 体相互作用。

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

  • pair_style amoeba or hippo

  • bond_style class2

  • angle_style amoeba

  • dihedral_style fourier

  • improper_style amoeba

  • fix amoeba/pitorsion

  • fix amoeba/bitorsion

要在 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_polaxefix                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 yesread_data          data.ubiquitin fix amtype NULL "Tinker Types" &fix pit "pitorsion types" "PiTorsion Coeffs" &fix pit pitorsions PiTorsions &fix bit bitorsions BiTorsionspair_style         amoeba                          # AMOEBA FF
pair_coeff         * * amoeba_ubiquitin.prm amoeba_ubiquitin.keypair_style         hippo                           # HIPPO FF
pair_coeff         * * hippo_water.prm hippo_water.keyspecial_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 项定义了自己的自定义权重因子;对于力场中的不同项,它们可能不同。

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

 

  • atom_style amoeba

  • fix property/atom

  • special_bonds


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 格式的程序的链接:

  • https://openbabel.org/docs/current/FileFormats/Tinker_XYZ_format.html

  • GitHub - emleddin/pdbxyz-xyzpdb: Scripts to convert between PDB to Tinker XYZ files, without using the existing TINKER programs for conversion.

  • tinker/source/pdbxyz.f at release · TinkerTools/tinker · GitHub

需要 -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.

 

这篇关于【LAMMPS学习】八、基础知识(4.2)AMOEBA 和 HIPPO 力场的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928592

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识