欢迎光临散文网 会员登陆 & 注册

Gromacs: 蛋白-配体复合物实例 (1)

2023-08-13 13:50 作者:纯粹之狐  | 我要投稿

为了更好地对gromacs进行理解和学习,在这里将借gromacs官方实例的练习进行一个记录。


蛋白配体复合物在gromacs中的步骤可以总结成:

生成拓扑文件 ————>  定义盒子与溶剂 ————>  加入离子(目的是让体系的净电荷为0) ————>  能量最小化  ————>  NVT, NPT平衡  ————> MD  ————>  分析。


其步骤和之前基础的溶菌酶在水体系的平衡相差不大,之后将用官方实例作一次练习。

在本次实例中,将使用T4溶菌酶与JZ4配体进行动力学模拟

步骤一 : 准备蛋白拓扑

首先去RCSB下载T4溶菌酶的pdb文件(PDB: 3HTB)

在RCSB中下载T4溶菌酶

在pymol中,T4溶菌酶的结构显示为这样

T4 lysozyme

接下来,需要将对T4溶菌酶去除结晶水

grep -v HOH 3HTB.pdb > 3HTB_clean.pdb

在准备好T4溶菌酶后,我们现在面临的问题是,JZ4 配体在 GROMACS 提供的任何力场中都不是可识别的实体,因此如果您尝试将此文件传递给 pdb2gmx,它将给出致命错误。仅当力场的 .rtp(剩余拓扑)文件中存在构建块条目时,才能自动组装拓扑。由于情况并非如此,我们将分两步准备系统拓扑:

1. 使用pdb2gmx准备蛋白质拓扑

2. 使用外部工具准备配体拓扑

由于我们将分别准备这两种拓扑结构,因此必须将蛋白质和 JZ4 配体分别保存到不同的坐标文件中。像这样保存 JZ4 坐标。

grep JZ4 3HTB_clean.pdb > jz4.pdb

得到的JZ4长这样


然后只需删除 3HTB_clean.pdb 中的 JZ4 即可。至此,准备蛋白质拓扑结构就变得轻而易举了。本教程将使用的力场是 CHARMM36,可从 MacKerell 实验室网站获取。在那里下载最新的 CHARMM36 力场压缩包和 "cgenff_charmm2gmx.py "转换脚本,我们稍后将使用该脚本。下载与您安装的 Python 版本(Python 2.x 或 3.x)相对应的转换脚本版本。

在下载完力场文件后在工作目录中解压力场压缩包:

解压后文件

现在您的工作目录中应该有一个 "charmm36-jul2022.ff "子目录。用 pdb2gmx 生成一个 T4 溶菌酶的拓扑结构:

gmx pdb2gmx -f 3HTB_clean.pdb -o 3HTB_processed.gro -ter

系统将提示你进行 3 项选择。

1. 力场

2. 水模型

3. 终点类型

本教程选择 CHARMM36 force field(选项 1),它列在 "从当前目录 "列表的第一位。

选择默认水模型(CHARMM-modified TIP3P),然后为末端选择 "NH3+"和 "COO-"。由于 N 端残基为蛋氨酸 (MET),pdb2gmx 会选择与碳水化合物不兼容的末端类型,因此这种交互式选择是必要的。您必须选择特定于蛋白质的末端,否则会出现原子名称不匹配的致命错误。

在进行一系列选择后的结果

这里我出现了个PO4的错误,原因是没有删除PO4这个小配体,在实际操作中要将其他配体删干净.

步骤二:准备配体拓扑

我们现在必须处理配体问题。但是,对于力场无法自动识别的某些种类,我们该如何为其提供参数呢?正确处理配体是分子模拟中最具挑战性的任务之一。力场作者花费数年时间推导出自洽的力场,而在此框架中引入一个新种类并非易事。任何新种类的力场参数都必须以与原始力场一致的方式推导和验证。

对于 OPLS、AMBER 和 CHARMM 力场,这种推导通常采用各种量子力学计算的形式。这些力场的主要文献介绍了所需的程序。对于 GROMOS 力场,参数化方法并不明确,主要依赖于凝聚相行为的经验拟合。也就是说,为每种原子类型计算一些初始电荷和伦纳德-琼斯参数,评估其准确性并加以改进。虽然最终结果非常令人满意,即流体与现实世界中的流体非常相似,但推导过程可能会非常费力。

因此,自动化工具非常受欢迎。对于每种力场,都有一些方法或软件程序声称可以提供与各种力场兼容的参数。但并非所有的方法或软件都同样准确。请参考下表中的几个例子:

为 JZ4 添加氢原子

在本教程中,我们将使用 CGenFF 服务器生成 JZ4 拓扑。在访问网站后注册账户并激活。CGenFF 需要 Sybyl .mol2 文件作为输入,以收集基本的原子类型信息和键合连接性。CHARMM 也是一种全原子力场,即明确表示所有 H 原子。晶体结构通常不会指定 H 原子坐标,因此必须将其内置。要生成 .mol2 文件并添加 H 原子,使用 Avogadro 程序。在 Avogadro 中打开 jz4.pdb,从 "Build(构建)"菜单中选择 "Add Hydrogens(添加氢原子)"。Avogadro 将在 JZ4 配体上构建所有氢原子。保存名为 "jz4.mol2 "的 .mol2 文件(文件 -> 另存为...,从下拉菜单中选择 Sybyl Mol2)。


以上是官方的表述,在这里,我使用openbabel对配体进行加氢。

obabel -ipdb jz4.pdb  -omol2 -Ojz4.mol2 -h

使用 CGenFF 生成 JZ4 拓扑

现在,jz4.mol2 文件已可用于生成拓扑结构。访问 CGenFF,登录账户,然后点击页面顶部的 "Upload molecule"。上传 jz4.mol2,CGenFF 服务器将以 CHARMM "stream"文件(扩展名为 .str)的形式快速返回拓扑图。将其内容从网站保存到名为 "jz4.str "的文件中。

CHARMM stream文件包含所有拓扑信息 - atom类型、 charges和 bonded连通性。它还包含额外的结合参数,这些参数是通过类比力场未涵盖的内部相互作用而生成的。CGenFF 还为每个参数提供了惩罚分数,即评估所分配参数的可靠程度。低于 10 的值可直接使用。10 - 50 之间的值意味着需要对拓扑结构进行一些验证,而大于 50 的惩罚值通常需要手动重新参数化。这种惩罚性评分是 CGenFF 服务器最重要的功能之一。许多其他服务器生成的拓扑结构都是 "黑盒子",用户只能默默信任。将整个研究项目寄托在未经验证的自动程序上是非常危险的。糟糕的配体拓扑会导致大量时间的浪费和不可靠的结果。请务必验证新参数化的拓扑结构!至少要根据力场中的现有分子检查配体的电荷量和原子类型。

检查 jz4.str 的内容,查看电荷和新二面参数的惩罚。所有惩罚值都非常低,表明该拓扑结构质量非常好,可以直接用于我们的模拟。

CHARMM 格式的 JZ4 拓扑很好,但如果我们要在 GROMACS 中运行,它就没用了。请使用我们之前从 MacKerell 网站下载的 cgenff_charmm2gmx.py 脚本。脚本名称中会包含版本 _py2 或 _py3,但为简单起见,此处省略了这些信息,但您需要使用下载的 Python 版本脚本的实际名称。使用以下命令执行转换。

python cgenff_charmm2gmx_py3_nx2.py JZ4 jz4.mol2 jz4.str charmm36-jul2022.ff

在运行这个程序的时候,在我目前的python3.9的环境中会出现一些错误,需要对脚本进行针对性的修改才能跑通。要注意环境的问题。

跑完显示:

该配体引入了不属于现有力场的新键合参数,这些参数被写入一个名为 "jz4.prm "的文件,其格式为 GROMACS .itp 文件。我们稍后将处理该文件,但必须注意到它的存在。现在配体拓扑结构被写入 "jz4.itp",其中包含配体[ moleculetype ] 定义。


通过 pdb2gmx,我们得到了一个名为 "3HTB_processed.gro "的文件,其中包含经过处理的、符合力场的蛋白质结构。我们还有来自 cgenff_charmm2gmx.py 的 "jz4_ini.pdb "文件,其中包含所有必要的 H 原子,并与 JZ4 拓扑中的原子名称相匹配。使用 editconf 将此 .pdb 文件转换为 .gro 格式:

gmx editconf -f jz4_ini.pdb -o jz4.gro

将 3HTB_processed.gro 复制到一个新的待处理文件中,例如将其命名为 "complex.gro",因为将 JZ4 添加到蛋白质中将生成蛋白质配体复合物。接下来,只需复制 jz4.gro 中的坐标部分并将其粘贴到 complex.gro 中,位置在最后一行蛋白质原子的下方和方框矢量之前,就像这样:

复制前
复制后

由于我们已在 .gro 文件中添加了 22 个原子,因此请增加 complex.gro 的第二行以反映此更改。现在坐标文件中应该有 2636 个原子。

complex.gro第二行

构建拓扑

在系统拓扑中加入 JZ4 配体的参数非常简单。只需在包含位置限制文件后,在 topol.top 中插入一行 #include "jz4.itp"即可。位置限制文件的包含表示 "蛋白质 "分子类型部分的结束。

插入前
插入后

配体引入了新的二面性参数,这些参数由 cgenff_charmm2gmx.py 脚本写入 "jz4.prm"。在 topol.top 顶部插入 #include 语句,添加这些参数:

这个 #include 语句的位置非常重要 ‘-’  必须出现在任何 [ moleculetype ] 条目之前,因为在构建任何分子之前必须先定义所有参数。它还必须出现在父力场的 #include 语句之后,因为在引入使用原子类型的键合参数之前,必须先了解所有原子类型。

最后要进行的调整是在 [ molecular ] 指令中。考虑到complex.gro中有一个新分子,我们必须将其添加到此处,如下所示:

同样也是在topol.top中


现在,拓扑结构和坐标文件与系统内容一致。


下一节:添加溶剂

Gromacs: 蛋白-配体复合物实例 (1)的评论 (共 条)

分享到微博请遵守国家法律