第2部分
2.1) linker和荧光素的连接过程
linker作为荧光素的锚点, 使我们能够将荧光染料附着到polyAT十聚体的A5’末端. 因为这样做, 我们能够模拟许多激光实验中存在的探针连接. 我们将使用 Sirius可视化程序(关于Sirius的教程就在这里), 尽管原则上你可以使用你另一个程序. 你可以在xleap中做, 但这有点困难. 这一步是必需的, 因为没有这个染料, linker和DNA系统的晶体结构. 因此, 我们必须自己建立一个合适结构的PDB文件, 我们最终会加载这个文件当在在生成prmtop和inpcrd文件时. 如果要模拟的系统的晶体/核磁共振结构是可用的, 那么根据需要编辑这个PDB文件就是一件简单的事情, 本节讨论的大部分方法就不再需要了.
由于我们在上一节中分别对荧光素染料和连接分子进行了优化, 因此我们必须将这两个分子键合在一起, 正如引言所描述的(如图2所示). 幸运的是, 这有几种工具可以让我们操作分子并进行必要的改变. Sirius可视化程序使我们能够将荧光素的NH基团(NME封端)叠加在存在于linker中的NH基团上, 以及两个分子中存在的羰基上. 然后删除这些”封端”, 并将荧光linker坐标保存在相同的参考框架中, 从而可以将这些分子在xleap里连接在一起.
考虑到这些, 执行Sirius程序, 并从先前电荷拟合(floF_opt.pdb, ln5_opt.pdb)中加载这两个优化结构. Select, Tools > Structure Browser以显示这两个文件的内容. 这将派上用场, 因为它使得整个分子和原子片段的选择变得容易.
图2.1
2.1.1) 用Sirius改变荧光素和linker的坐标
为了选择我们要叠加的原子, 我们需要将linker从荧光素分子上移开. 首先, 在Structure Browser中”加亮”linker, 并选择位于工具栏中的”Set separate motion”按钮.
鼠标左键可旋转选中的原子, 中间的按钮放大, 右键平移原子. 有时, 旋转两个分子以获得更好的视角是有作用的. 这可以通过选择位于工具栏中的”Set common motion”按钮来完成. 注意: Mac OSX用户可能无法查看按钮工具提示, 因为Sirius仍处于测试阶段. 这个错误应该在更高版本的软件中修复. 有关Sirius按钮及其功能的完整列表, 请选择帮助> Sirius帮助…, 然后使用索引选项卡搜索”工具栏”.
图2.2
现在我们可以区分这两个分子, 我们可以重叠封端基团并删除额外的原子. 选择, 结构>结构叠加>原子锚定叠加. 应该出现下面的菜单(图2.3).
你可以使用鼠标来选择重叠过程中使用的原子. 这些原子以两个一组(一个是对准结构, 另一个是参考结构)选择. 基于本教程的目的, 哪个结构是”对齐的”, 哪个是”参考”并不重要. 因此, 我们已经任意地将linker作为”对齐”结构. 注意在每对中选择的第一个原子必须来自对齐的结构, 而第二个来自参考结构. 从linker中选择第一个原子N, 从染料中选择第二个原子N. 重复此过程 选择羰基原子C和O, 然后按OK. 由此产生的结构应该类似于图2.4的结构.
图2.3
图2.4
2.1.2) 删除剩余的优化封端基团并保存pdb文件
我们将称为组合的荧光素/linker分子为FAM, FAM几乎是完整. 下一步将按本教程前面讨论的封端基团删除. ACE和NME封端仅用于电荷计算, 并且在最终的FAM分子中不存在额外的原子. 荧光素的NME封端含有以下原子: CH3NH(图1.2). 使用Structure Browser突出显示这些原子, 并选择Structure> Edit Structure Objects. 一个GUI会出现; 确保选择”delete a set of atoms”按钮, 以及”currently selected atoms”按钮, 然后按OK. 对于linker上的ACE封端, 应重复上述过程. ACE封端上的原子是CH3CO(图1.2). 最后, 磷酸封端基团也需要从linker中去除. 选择POOO-CH3原子并删除. 所有额外的原子被删除后, 结构应该类似于图2.5的结构.
图2.5
我们现在已经用Sirius成功地修改了我们的分子, 并且准备好继续下一步的教程. 但是, 为了使进程顺利进行, 我们需要将我们的结构合并到一个pdb中, 而后编辑这个文件, 这样就可以正确被读入到xleap程序中. Sirius当前版本中的命名传统不允许使用3位以上的原子名称, 这对于使用荧光素这样的大分子的研究而言是个问题. 其次, 合并结构有两个不同的残基名称. 我们将创建一个库文件, 告诉xleap如何识别荧光素/linker结构, 因此我们的pdb中的每个原子必须在相同的残基中, 并且必须是相同的名称. (注意原则上我们也可以按照这两个残基设置两个库文件. )第三, 在新的pdb文件中的连接信息没有用, 所以需要删掉. 注意, 其中几个问题将在Sirius的更新版本中得到修复, 因为它仍处于测试阶段. 在此之前, 我们将手动解决这些问题.
所以, 我们可以继续合并我们的分子到一个pdb中. Sirius可以为我们自动完成这一步, 并减少需要完成的文本编辑工作. 要完成此任务, 请选择 Structure > Edit selected objects . 确保你选择”merge two structures together”按钮. 接下来, 我们将使用提供的下拉菜单来选择荧光素作为第一个结构, linker作为第二个结构. 设置这些变量后, 我们将命名新的结构fam5, 然后单击确定. 合并结构后, 我们可以使用File> Save结构来保存新的pdb文件. fam5.pdb
2.2) 修改fam5.pdb文件
在本教程的这一部分, 我们将修改新创建的fam5.pdb文件, 使其与xleap兼容. 这可以在您选择的文本编辑器中完成. 第一件事是编辑原子名称. 每个原子必须拥有一个自己的名字. 因为这是一个高级教程, 所以我们不会详细介绍pdb文件格式的标准原子命名方案. 接下来, 我们将为整个分子指定FAM的残基名称, 并将linker的链值由2改为1, 以使其被认为是第一个残基的一部分. 对pdb的最后一项主要改动是删除Sirius提供的连接信息. 我们从pdb文件中得到的数据是我们的荧光素和linker原子的坐标. 修改后的pdb应如下面的文件所示: fam5_edit.pdb. 我们现在准备将编辑后的pdb加载到xleap中, 并开始构建我们的库文件.
第3部分: 为FAM5构建一个Leap库文件
本教程的第三部分将介绍如何使用第一部分中推导出的电荷为我们的非标准残基(FAM5)构建一个leap库文件. 本教程中使用的FAM5残基在两个分块中进行了优化, 然而, 因为我们使用Sirius可视化程序”combined”这些分块, 我们只需要为整个FAM5分子构建一个库文件. 这个库文件将包含在我们的系统上运行MD所需的所有参数和电荷. 以下步骤的简要概述包括将FAM5加载到xleap程序中, 定义结构的拓扑和原子类型, 以及将以前产生的电荷输入到库文件中.
3.1) 定义FAM5拓扑
因为我们在pdb中删除了连接信息, 所以我们需要手动告诉xleap什么原子被连接在一起. 幸运的是, 使用xleap的编辑GUI可以轻松实现这一点, 这使我们可以拉这键合的结构. 我们将需要指定我们pdb文件的目录并执行xleap程序.
$AMBERHOME/exe/xleap &
下面的GUI会出现:
图3.1
将fam5_edit.pdb文件加载到xleap:
FAM5 = loadpdb"fam5_edit.pdb"
屏幕上会出现以下输出:
Loading PDB file: ./fam5_edit.pdb
Unknown residue: FAM5 number: 0 type: Terminal/last
..relaxing end constraints to try for a dbase match
-no luck
Creating new UNIT for residue: FAM5 sequence: 1
Created a new atom named: C within residue: .R<FAM5 1>
Created a new atom named: O within residue: .R<FAM5 1>
Created a new atom named: C1 within residue: .R<FAM5 1>
Created a new atom named: C2 within residue: .R<FAM5 1>
Created a new atom named: H2 within residue: .R<FAM5 1>
Created a new atom named: C3 within residue: .R<FAM5 1>
Created a new atom named: C4 within residue: .R<FAM5 1>
Created a new atom named: O41 within residue: .R<FAM5 1>
Created a new atom named: O42 within residue: .R<FAM5 1>
Created a new atom named: C5 within residue: .R<FAM5 1>
Created a new atom named: C6 within residue: .R<FAM5 1>
Created a new atom named: H6 within residue: .R<FAM5 1>
Created a new atom named: C7 within residue: .R<FAM5 1>
Created a new atom named: H7 within residue: .R<FAM5 1>
Created a new atom named: C8 within residue: .R<FAM5 1>
Created a new atom named: C9 within residue: .R<FAM5 1>
Created a new atom named: C10 within residue: .R<FAM5 1>
Created a new atom named: H10 within residue: .R<FAM5 1>
Created a new atom named: C11 within residue: .R<FAM5 1>
Created a new atom named: H11 within residue: .R<FAM5 1>
Created a new atom named: C12 within residue: .R<FAM5 1>
Created a new atom named: O12 within residue: .R<FAM5 1>
Created a new atom named: C13 within residue: .R<FAM5 1>
Created a new atom named: H13 within residue: .R<FAM5 1>
Created a new atom named: C14 within residue: .R<FAM5 1>
Created a new atom named: O15 within residue: .R<FAM5 1>
Created a new atom named: C16 within residue: .R<FAM5 1>
Created a new atom named: C17 within residue: .R<FAM5 1>
Created a new atom named: C18 within residue: .R<FAM5 1>
Created a new atom named: H18 within residue: .R<FAM5 1>
Created a new atom named: C19 within residue: .R<FAM5 1>
Created a new atom named: H19 within residue: .R<FAM5 1>
Created a new atom named: C20 within residue: .R<FAM5 1>
Created a new atom named: O20 within residue: .R<FAM5 1>
Created a new atom named: C21 within residue: .R<FAM5 1>
Created a new atom named: H21 within residue: .R<FAM5 1>
Created a new atom named: N within residue: .R<FAM5 1>
Created a new atom named: H within residue: .R<FAM5 1>
Created a new atom named: C22 within residue: .R<FAM5 1>
Created a new atom named: H221 within residue: .R<FAM5 1>
Created a new atom named: H222 within residue: .R<FAM5 1>
Created a new atom named: C23 within residue: .R<FAM5 1>
Created a new atom named: H231 within residue: .R<FAM5 1>
Created a new atom named: H232 within residue: .R<FAM5 1>
Created a new atom named: C24 within residue: .R<FAM5 1>
Created a new atom named: H241 within residue: .R<FAM5 1>
Created a new atom named: H242 within residue: .R<FAM5 1>
Created a new atom named: C25 within residue: .R<FAM5 1>
Created a new atom named: H251 within residue: .R<FAM5 1>
Created a new atom named: H252 within residue: .R<FAM5 1>
Created a new atom named: C26 within residue: .R<FAM5 1>
Created a new atom named: H261 within residue: .R<FAM5 1>
Created a new atom named: H262 within residue: .R<FAM5 1>
Created a new atom named: C27 within residue: .R<FAM5 1>
Created a new atom named: H271 within residue: .R<FAM5 1>
Created a new atom named: H272 within residue: .R<FAM5 1>
Created a new atom named: O3* within residue: .R<FAM5 1>
total atoms in file: 57
发生了什么
Xleap在它的数据库中不能识别FAM5残基, 因此它开始创建一个”UNIT”或新的残基来定义这个未知的分子. 作为这个过程的一部分, xleap将所有的原子添加到UNIT中. 因为我们正在处理一个非标准的残基, 这正是我们想要的. 一旦我们保存我们的库文件, 由xleap创建的UNIT将使程序识别FAM5. 仔细检查xleap”创建”了正确的原子是很重要的. 如果有差异, 你应该检查你加载的pdb文件. 最容易发现的差异是文件中的原子总数, FAM5的值应该是57.
我们现在已经把荧光素分子加载到了Xleap中. 但是, 如前所述, fam5_edit.pdb文件只含有原子坐标的信息. 因此, xleap没有关于荧光素参数和键连的信息, 我们需要使用图形界面的xleap手动输入这些信息.
使用xleap执行编辑界面
edit FAM5
在开始之前, 您应该知道如何操作编辑界面. 鼠标左键控制原子选择, 鼠标中键旋转分子, 鼠标右键平移. 如果MIDDLE按钮不起作用, 可以通过按住Ctrl键和LEFT鼠标按钮来旋转它. 若要使图像变大或变小可同时按住MIDDLE和RIGHT按钮(或Ctrl键和鼠标右键)和向上移动鼠标放大或向下以缩小. 为了帮助你识别: 碳原子是绿色的, 氧红, 氢白和氮蓝. 当前选中的原子以紫色显示(您可以通过在空白地方单击来取消选择原子, 或者在弹性连接/选择时按住shift键). 您可以使用擦除工具撤消绘图过程中意外创建的键/原子. 此外, 您可以通过选择显示 - >名称来查看原子名称. 一旦你进入”绘制”模式, 你可以将原子键合在一起. 要连接原子, 请左键单击第一个原子, 然后不松开, 将光标拖到第二个原子上. 当逐渐靠近的时候, 键应该”吸附”到预期的位置. 松开鼠标时完成键的连接. 小心…注意到使用xleap时, 不要用X按钮关闭窗口. 此操作将终止会话, 任何未保存的数据将丢失. 这将是特别麻烦的当我们需要输入的大量的数据时. 我们应该是使用File - >close方法. 对于主编辑窗口, 可以使用Unit - > Close来完成.
图3.2
图3.3
3.2.1) 定义原子类型和前面计算的原子电荷
现在我们已经定义了FAM拓扑, 现在到处理库文件的时候了. 如前所述, 我们需要定义分子中每个原子的原子类型. 在力场文件和AMBER 数据路径里的文件中描述了ff99SB 力场中支持的原子类型列表. 我们将通过类比来定义我们的原子类型, 比较教程中的原子与我们实际系统中的原子. 这种类比将考虑到每个原子的键合和二面角相互作用. 在$ AMBERHOME / dat / leap / parm中的parm99.dat文件在描述每个原子类型的环境方面做得很好, 可以让我们做出准确的比较. 当我们处理这个过程时, 我们将会遇到一个没有被任何parm99原子类型所定义的氧分子. 因此, 我们将创建一个新的原子类型来描述这种氧的键/二面角相互作用, 并在库中定义它.
要定义这些参数, 我们将使用xleap中给出的原子描述表. 双击编辑窗口的黑色区域, 选择整个FAM分子. 一旦选定了所有的原子, 选择Edit> Edit selected atoms. 显示窗口就会出现这个表. 注意: Mac用户如果在查看整个”编辑选定原子”窗口时遇到问题, 应从X11工具栏中选择”窗口”>”缩放”.
图3.4
我们将在这个窗口中输入我们所有的原子类型和电荷. 由于我们系统中有大量的原子, 所以我们在教程中不会把每一个原子拿来做比较而是聚焦在几个原子; 给你选择自己分析剩下的原子. 在本教程中, 我们将向您提供包含所有的原子类型和电荷的一个文件, 可供你输入到”编辑选定的原子”窗口中.
原子比较 #1
在我们的第一个原子比较中, 我们将看一下C10, 它是fam5_edit.pdb文件中的17号原子. 该原子是氧杂蒽环的一部分, 类似于苯环中存在的碳原子, 因此我们指定了适合于芳香碳的原子类型CA.
原子比较 #2
在我们的第二个比较中, 我们将看到fam5_edit.pdb文件中第18原子H10. 该原子是键合到芳香碳上的氢原子. 因此, 我们将找一个适合于这种类型的氢原子类型, HA.
原子比较 #3
对于第三个例子, 考虑原子O41和O42. 这些是在COO-和CO-O之间共享共振结构的等同氧原子. 这些原子是羰基氧, 与蛋白质骨架中的氧相似, 但实际上与去质子化天冬氨酸侧链中的氧能更好地匹配. 在这种情况下, 我们将这些原子归类为O2类型.
3.2.2) 定义一个不相似的氧原子的原子类型
氧杂蒽O15中的氧原子是芳香性的, 因此与FF99SB中已经存在的任何氧原子类型都不相符, 因为它们都是SP2型羰基或SP3型醚氧. 为一个新的原子类型生成参数超出了本教程的范围, 幸好此特定原子类型的参数已被发布(VanBeek 等人, 生物物理学. J. 2007, 92, 4168-4178 PDF supp mat). 所以我们可以直接利用这些参数. 在这时, 我们需要考虑的是在当前的力场文件中选择正确的原子类型. 按照VanBeek文献中的术语, 我们将它定义为OA.
剩下的原子类型选择如下图所示.
图3.5
3.3) 保存新的库文件
现在我们已经输入了xleap所需的所有参数来充分识别FAM5残基, 我们可以保存一个库文件, 使得xleap在以后也能识别这个残基. 这非常重要因为我们不必每次重复上述所有步骤将FAM5导入到xleap程序. 为此, 输入以下命令以保存一个新的pdb.
saveoff FAM5 fam5.lib
savepdb FAM5 fam5_leap.pdb
3.4) 创建一个frcmod文件.
需要一个frcmod文件来为我们添加的新的OA原子类型定义质量和范德华参数, 并提供所有在标准FF99SB力场中不存在的键, 角和二面角参数. 我们将使用leap程序来帮助我们识别缺失的参数. 这将需要几个步骤, 因为leap检查功能只能识别缺失的键和角参数, 并且寻找丢失的二面角, 在我们提供缺失的键和角参数之后, 我们将需要尝试保存prmtop和inpcrd文件. 如果你已经跳过了, 你应关闭它(确保你保存了你的lib和pdb文件). 由于我们不需要图形界面, 所以我们可以使用更快, 更方便的tleap.
$AMBERHOME/exe/tleap -s -f $AMBERHOME/dat/leap/cmd/ oldff/leaprc.ff99SB
然后我们可以加载我们上面创建的lib文件:
>loadoff fam5.lib
现在我们可以检查fam5单元:
>check FAM5
Leap将显示缺失的键和角度参数:
Checking 'FAM5'....
ERROR: The unperturbed charge of the unit: -2.307860 is not integral.
WARNING: The unperturbed charge of the unit: -2.307860 is not zero.
ERROR: The perturbed charge: -2.307860 is not integral.
WARNING: The perturbed charge: -2.307860 is not zero.
Checking parameters for unit 'FAM5'.
Checking for bond parameters.
Could not find bond parameter for: CA - O
No bond parameter for: CA - O
Could not find bond parameter for: CA - OA
No bond parameter for: CA - OA
Could not find bond parameter for: OA - CA
No bond parameter for: OA - CA
Could not find bond parameter for: CA - O
No bond parameter for: CA - O
Checking for angle parameters.
Could not find angle parameter: O - C - CA
Can't find angle parameter: O - C - CA
Could not find angle parameter: CA - C - N
Can't find angle parameter: CA - C - N
Could not find angle parameter: CA - C - O2
Can't find angle parameter: CA - C - O2
Could not find angle parameter: CA - C - O2
Can't find angle parameter: CA - C - O2
Could not find angle parameter: CA - CA - OA
Can't find angle parameter: CA - CA - OA
Could not find angle parameter: CA - CA - O
Can't find angle parameter: CA - CA - O
Could not find angle parameter: O - CA - CA
Can't find angle parameter: O - CA - CA
Could not find angle parameter: CA - CA - OA
Can't find angle parameter: CA - CA - OA
Could not find angle parameter: CA - OA - CA
Can't find angle parameter: CA - OA - CA
Could not find angle parameter: OA - CA - CA
Can't find angle parameter: OA - CA - CA
Could not find angle parameter: OA - CA - CA
Can't find angle parameter: OA - CA - CA
Could not find angle parameter: CA - CA - O
Can't find angle parameter: CA - CA - O
Could not find angle parameter: O - CA - CA
Can't find angle parameter: O - CA - CA
There are missing parameters.
check: Errors: 2 Warnings: 2
前两个错误和警告是因为我们的FAM5单位没有整数电荷. 正如前面所讨论的那样, 这是我们所期望的, 因为AMBER中的5’残基不应该具有整数电荷. 下面的列表是所有我们缺少的参数, 虽然有相当多的冗余. 例如, 提示中的最后两个参数是CA-CA-O和O-CA-CA指的是相同的角度, 只是在原子的顺序不同. 所以, 去掉这些冗余剩下的参数列表就是我们需要定义的:
CA - O
CA - OA
CA - C - O(从O - C - CA重新排序)
CA - C - N
CA - C - O2
CA - CA - OA
CA - CA - O
CA - OA - CA
为这些参数提供值是非常重要的. 如果幸运的话, 在工作环境中这些缺失的参数有与现有参数非常相似的原子, 我们可以通过”类似”来定义它们. 例如, 在广义AMBER力场中存在一个ca-ca-o参数, 我们可以将它用到CA-CA-O参数. 这种参数分配必须小心, 彻底的分配超出了本教程的范围. 从前面提到的VanBeek文献找相关参数(VanBeek 等生物物理学J. 2007, 92, 4168-4178 PDF SUPP mat), 我们提出了在frcmod文件中的如下第一关, fam5_incomplete.frcmod.
VanBeek等人 Biophys J.(2007)92,4168-4178
质量
OA 16.00 0.465, 与gaff 的os和parm99相同
键
CA-OA 372.40 1.373与gaff 的ca- os相同
O 648.00 1.214与gaff 的c -o相同
角
CA-CA-OA 69.800 119.200与gaff的 ca-ca-os相同
CA-CA-O 70.900 123.430与gaff的ca-ca-o 相同
CA-C -0 68.700 123.440与gaff的 ca-c -o 相同
CA-C -O2 68.700 123.440与gaff的g-ca-c -o相同
CA-OA-CA 63.600 118.960与GAFF的 ca-os-ca 相同
CA-C -N 69.400 112.03与GAFF的 ca-c -n相同
二面角
异二面角
非键信息
OA 1.6837 0.1700 OPLS醚等与gaff的 os相同
注意这些参数提供了分子的合理描述, 但是如果需要高度准确表示荧光素的话, 则需要对这些参数进行优化. 还要注意, 我们还没有包含任何二面角参数, 因为我们还没有算出这些缺失的参数. 最后, 即使check命令没有提供有关缺少原子类型OA的警告消息, 我们也知道这个问题, 所以我们也引入了这个原子类型的质量和非键参数.
我们现在加载fam5_incomplete.frcmod文件, 然后找出需要定义的二面角参数:
> loadamberparams fam5_incomplete.frcmod
不幸的是, 检查命令不检查二面角, 所以我们只是先试着保存prmtop和inpcrd文件, 然后leap就会列出缺少的二面角参数.
> saveamberparm FAM5 prmtop inpcrd
Leap将列出缺失的键和角度参数:
** No torsion terms for CA-CA-OA-CA
** No torsion terms for CA-CA-OA-CA
** No torsion terms for CA-OA-CA-CA
** No torsion terms for CA-OA-CA-CA
在这种情况实际上只缺失一个二面角参数(CA-CA-OA-CA), 因为上述四个都描述的是相同的二面角. 所以我们只需要在frcmod文件的DIHE部分添加一个条目:
CA-CA-OA-CA 4 14.500 180.000 2.000与gaff的 X-ca-ca-X相同, 因为M.Zwier在手动修改时发现~18
使用文本编辑器更新fam5_incomplete.frcmod文件并将其保存为fam5.frcmod. 现在将其加载到Leap中, 并再次尝试saveamberparm命令作为最终检查; 实际上我们没有使用生成的prmtop和inpcrd文件.
我们已经成功保存了我们的FAM5库文件并创建了相关的frcmod文件, 现在可以将其附加到我们的polyAT十聚体中.
第4部分 将FAM5分子连接到polyAT十聚体的5’末端
在第4节中, 我们将FAM5分子附加到我们的polyAT十聚体的5’末端(polyAT.pdb). 我们将使用与第2节中描述的类似的过程, 其中涉及广泛使用Sirius可视化程序. 下面描述了FAM分子与linker的连接(图4.1). 然而, 将分子连接到任何DNA或RNA双链体的5’末端存在几个问题. 第一个问题是polyAT十聚体的5’末端丢失的磷酸基团. 为了连接我们的FAM分子, 我们必须通过将末端腺嘌呤变成内部腺嘌呤来将缺失的磷酸酯添加到十聚体中. 我们将使用xleap来修改polyAT的5’末端, 因为它可以自动修改腺嘌呤残基. 第二个问题是FAM和polyAT分子之间缺乏重复的原子(因为我们必须删除linker上的磷酸基团), 这可能会被用来叠加键. 因此, 我们必须手动将linker移动到相对于polyAT十聚体来说相对正确键的位置. 须注意的是, 任何手动构建的键都可能会变形, 因此在跑生产相的MD之前需要小心地将结构能量最小化.
图4.1
4.1) 准备polyAT十聚体
如前所述, 我们的第一步是将磷酸基团添加到polyAT十聚体的5’末端. Xleap通过使用它的”loadpdbuseseq”命令来简化这个过程. 这个命令使我们能够定义我们想要加载到程序中的确切序列, 并指定一个pdb文件来对应这个序列. 让我们开始执行xleap程序.
$AMBERHOME/exe/xleap &
在xleap窗口中, 我们将加载ff99SB力场, 以便识别我们的DNA.
source oldff/leaprc.ff99SB
接下来, 我们将定义我们想要加载到xleap的序列. 这是最重要的一步, 因为我们将使用此过程来指定我们的残基修饰. 而不是指定在pdb中的DA5残基, 我们将告诉xleap加载这个残基的DA模板. 这是一个内部残基, 所以xleap将添加我们连接linker所需的额外磷酸脂.
polyATseq = {DA DA DA DA DA DA DA DA3 DT5 DT DT DT DT DT DT DT DT3}
通过指定上述顺序时, 我们将告诉xleap加载我们的polyAT.pdb文件, 但忽略pdb中的残基名称, 而是使用我们提供的序列.
polyAT = loadpdbuseseq polyAT.pdb polyATseq
以下是xleap窗口的输出内容:
载入PDB文件: ./polyAT.pdb使用序列polyATseq
匹配pdb残基 - >序列模板
res pdb template
1* A5 DA
2 A DA
3 A DA
4 A DA
5 A DA
6 A DA
7 A DA
8 A DA
9 A DA
10 A3 DA3
11 T5 DT5
12 T DT
13 T DT
14 T DT
15 T DT
16 T DT
17 T DT
18 T DT
19 T DT
20 T3 DT3
=可能不匹配; 共1
(即pdb名称不是模板的子字符串)
在残基内创建了一个名为H5T的新原子: .R
添加缺失的重原子: .R.A
添加缺失的重原子: .R.A
在文件中添加缺失的重原子: .R.A
总原子: 438
根据残基模板, 增加了203个失去的原子:
3个重
200H /孤对电子
文件包含1个不在残基模板中的原子
发生了什么?
Xleap将对比我们指定的序列与pdb文件的序列, 并指出pdb文件中的5’腺嘌呤(A5)与序列中指定的内部腺嘌呤(DA)之间可能不匹配的地方. 这正是我们所期望的. Xleap还使用重原子P和O将磷酸酯添加到我们的分子中. 然而, 我们应该注意这个新的原子”H5T”. 这意味着xleap不能识别. 这个原子是在原来的pdb文件中一个额外的质子, 且与内部腺嘌呤中的原子不对应. 为了检查这个原子, 我们使用编辑窗口来查看这个结构.
edit polyAT
乍一看, 我们注意到在polyAT十聚体的5’末端有一个非键合原子(在下图中圈出). 要显示原子名称, 请选择显示>名称. 你也可以放大分子以获得更好的观察. 该分子的原子名称H5T与由xleap创建的原子相匹配. Xleap聪明地将缺少的原子添加到已指定的残基, 但是, 它不会删除pdb文件中存在的额外原子. H5T原子是5’腺嘌呤残基多余的, 应该删除. 你可以使用位于工具栏上的橡皮擦来删除此原子.
图4.2
现在我们已经将磷酸基团添加到了我们的polyAT十聚体的5’腺苷酸末端, 我们可以保存一个新的pdb文件并附加我们的FAM分子. 关闭编辑窗口并保存polyAT的新的pdb文件polyAT_edit.pdb.
savepdb polyAT polyAT_edit.pdb
注意: 这里的另一种方法是在将其加载到leap之前把H5T原子从polyAT.pdb文件中删除掉.
4.2) 使用Sirius将FAM和polyAT分子合并在一起
在合并polyAT和FAM5的pdb文件时, 我们需要确保这两个单元相对于对方位置合理. 就像在第二部分一样, 我们将再次使用Sirius. 启动Sirius应用程序并打开polyAT_edit.pdb和fam5_leap.pdb. (注意, 如果在图形窗口中没有看到结构, 则可能需要单击雾化按钮并打开和关闭深度提示选择使其显示). 这些结构将会彼此重叠. 我们需要通过移动其中一个结构, 同时保持另一个不动. 原则上, 只要我们在整个过程中都保持一致, 那么我们移动哪个都不重要; 我们将选择移动fam5部分. 只要在Sirius中移动fam5部分, 单击Set Separate Motion的按钮.
在打开的对话框中, 选择fam5_leap, 然后单击确定. 现在在Sirius平移和旋转只影响fam5分子. 你应注意FAM5的位置, 使氧原子与磷酸酯如下图4.3和4.4所示紧紧靠近. 在旋转FAM 5单位(鼠标左键), 平移FAM 5(XY右键和Z中心键)之间往往需要重复, 然后旋转整个体系以获得更好的视图 - 通过在选择”set separate motion button “之后立即选择”set combined motion “. 要注意保持PO键合理的键长, 避免空间碰撞. 这需要一定的耐心. 注意使用正确的DNA残基去结合.
图4.3
图4.4
一旦你对这个视图的角度感到满意, 请选择”文件” - >”保存结构”. Sirius会提示你想保存哪个对象. 选择FAM5_leap并点击保存. 当提示保存新的坐标说是的. 然后把它保存为fam5_newcoord.pdb.
不好的是, 由Sirius生成的pdb文件具有与Leap不兼容的连接信息, 所以我们需要删除它. 使用文本编辑器去除连接信息和”END”标签, 并将其保存为fam5_m.pdb. 接下来, 我们需要将fam5和polyAT pdb文件合并在一起polyAT_edit.pdb fam5_polyAT_edit.pdb:
cat fam5_m.pdb polyAT_edit.pdb > fam5_polyAT_edit.pdb
4.3) 将组合的pdb加载到Leap并创建prmtop和inpcrd文件
为了读取组合的pdb, 我们需要做一些事情. 首先, 我们需要加载DNA的参数以及我们在第3节中创建的fam5的frcmod文件. 我们还需要加载也在第3节中创建的fam5的lib文件. 但是, 我们需要稍作处理, 我们的fam5库文件是以FAM5作为残留名称, 而pdb文件是FAM(这是因为Sirius只支持3个字符残基名称). 我们将使用leap的复制命令来解决这个问题(或者你可以编辑pdb并用’FAM5’替换’FAM’).
xleap -f -s $AMBERHOME/dat/leap/cmd/oldff/leaprc.ff99SB
>loadoff fam5.lib
>loadamberparams fam5.frcmod
>FAM = copy FAM5
>mol = loadpdb fam5_polyAT_edit.pdb
这是leap将会提示一些警告, 如下所示:
加载PDB文件: ./fam5_polyAT_edit.pdb
警告: 在pdb文件中的1号残基更改名称;
这个残基被分成FAM和DA.
有1个残基有命名警告.
有分裂的残基;
残留序列号将不对应于pdb中的序列号.
单方面的连接. 残基: 缺少连接1原子.
文件中的总原子数: 697
我们实际上可以忽略这些警告. 第一个是因为FAM和第一个DA残差都有1的残基ID, 因为我们只是简单的附加文件. 然而, Leap已经检测到这个冲突并更新了编号. 第二个警告是FAM残基不含有尾部原子, 因此没有原子与第一个DA残基的头部原子结合. 我们可以在第3节中通过定义一个尾原子来解决这个问题. 但是, 我们可以简单通过一个手动键合的命令来解决这个问题:
>bond mol.1.57 mol.2.1
现在你可以用sander或pmemd来保存气相/隐式溶剂的prmtop和inpcrd文件:
>saveamberparm mol fam5_polyAT_vac.prmtop fam5_polyAT_vac.inpcrd
最后如果你想跑显示溶剂模拟, 你可以添加反离子和溶剂, 就像在前面的教程中所做的那样.