科学网

 找回密码
  注册

tag 标签: prmtop力场

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

Amber里建立力场prmtop和inpcrd方法
CanonLife 2017-10-18 19:04
大概流程及思路,参考: http://ambermd.org/tutorials/pengfei/index.htm 具体操作方法: 目标:生成优化或者跑动力学时所需的力场 prmtop 文件和坐标 inpcrd 文件( prmtop 文件同时包含了分子的力场参数信息和拓扑信息,力场参数是指分子的键长键角二面角等信息,拓扑信息是指分子的键连信息)从 PDB Bank 下载下来所需 pdb 后,去掉不需要的信息,以自己的实验体系为例,保留蛋白(一般选 chain A )残基,配体,结晶水三部分。此时 pdb 结构文件中只有这三部分的重原子。对于后期跑动力学而言,需要所做的工作:加氢,加溶剂(抗衡离子和水),产生跑动力学所需 prmtop , inpcrd 文件。此处所讲即这几项工作如何进行。 生物体系,一般蛋白残基部分,结晶水和溶剂水,这三部分所需的力场采用 amber 自带的力场,如 leaprc.ff03ua , leaprc.ff99SB 等力场( amber 软件在 $AMBERHOME/dat/leap/cmd/ 路径下有很多版本力场,网上有介绍各版本力场的信息,根据需要挑选一个合适的力场版本。在此类力场中同时包含了水的力场,所以体系里的水分子不需要额外的 leaprc 力场文件,当然也有专门的水分子力场,根据需要自由选择)。有机小分子的力场一般采用 Amber 里的 GAFF 力场,即 leaprc.gaff 文件。 ——————————————————------------------------------- 大概分如下几项:处理结构文件;生成配体小分子的模板;生成整体 prmtop 和 inpcrd 文件 第一项:处理结构文件 如前所述,做好蛋白,配体,独立的 pdb 文件,此时只包含重原子信息。 第二项:生成配体小分子模板 Amber 中的 antechamber 程序是用来生成小分子模板的。 为什么配体小分子模板需要自己生成? 蛋白质中各氨基酸残基的力参数是预先存在的,但是很多有机小分子有很高的多样性,他们的力参数和静电信息不可能预存在库文件中,需要自己计算(如电荷)生成模板。 此处以总电荷为 -1 的配体分子为例: 关于配体,此处大概需要做的工作是: 1. 计算原子电荷: 配体分子的原子电荷,可以选择 bcc 电荷,也可以选择 resp 电荷。不要求太高精确性,就采用 bcc 电荷,计算方法也简单。要求比较高的话,采用 resp 电荷 2. 生成配体分子的 mol2 文件, frcmod 文件。 这两个文件后续做力场时要用到。 上述 2 个工作具体操作起来如下: 0. 首先准备好配体分子结构文件 准备好配体分子结构,以取名 Lig.pdb 为例,此时 Lig.pdb 只包含配体分子的重原子信息,需要进行加 H 工作,此工作采用 amber 里的 reduce 程序: $reduceLig.pdb Lig_addH.pdb 到此 , Lig_addH.pdb 已经加上 H 原子,这里需要 check 一下。用可视化软件如 gsview 查看加 H 后的 pdb 结构, check 是否与自己所需的配体结构保持一致,不一致的地方在 gsview 里手动调整 H 原子的位置。假设需要调整,调整后的 pdb 结构命名: Lig_addH_Adjusted.pdb ,之后用此结构去做高斯 resp 电荷, mol2 文件等。 关于调整:需注意调整前后 atom name 的选取以及原子顺序,用 reduce 加 H 生成的 pdb 文件里包含一些不必要的信息,须删除,可手动,可用 pdb4amber 程序进行。 1. 计算配体分子的电荷 提前加载好 antechamber 路径。 (1) 采用 bcc 方法拟合电荷: $antechamber-i Lig_addH_Adjusted.pdb -fi pdb -o Lig.mol2 -fo mol2 -c bcc -nc -1 -pf y 解释: -i 指定输入文件 -fi 指定输入文件类型 -o 指定输出文件 -fo 指定输出文件类型 -nc 指定体系所带总电量,此处为-1(如果没有-nc这一命令,则默认体系呈中性) -pf y 不产生中间文件 (此命令可以不加,只是这样会产生一系列中间文件) -c bcc 指定拟合原子电荷的方法,此处为采用 bcc 方法 生成的 bcc 电荷存储在 Lig.mol2 文件中: (2) 采用 resp 方法拟合电荷,方法 : http://blog.sciencenet.cn/home.php?mod=spaceuid=3366368do=blogid=1079996 2. 生成配体分子的 mol2 文件 如果采用 bcc 电荷,则上述 bcc 一步生成的 mol2 文件就可以直接用。但是,如果采用 resp 电荷,如下: $antechamber-i Lig_addH_Adjusted.pdb -fi pdb -o Lig.mol2 -fo mol2 -nc -1 -pf y 此时,生成 mol2 文件: 但是此处的 mol2 文件需要做以下修改: 将 SMALL 关键词的下一行替换成 resp ,图中最后一列 0.000000 替换成高斯计算出的 resp 电荷。到此,采用 resp 电荷的 mol2 文件准备好。 注:高斯计算 resp 电荷时原子顺序须与生成 mol2 文件所用的 pdb 文件中原子顺序保持一致。 3. 生成配体分子的 frcmod 文件 采用 amber 里的 parmchk 程序: $parmchk-i Lig.mol2 -f mol2 -o Lig.frcmod 到此, frcmod 文件准备好。 第三项:生成模拟所需 prmtop 和 inpcrd 文件 所需文件:整体结构文件和上述生成的 mol2 文件和 frcmod 文件。 关于整体结构文件,一般是 pdb 文件(蛋白 + 配体,要不要结晶水自由决定),此处的结构文件只包含重原子信息,此处以 all.pdb 为例。 这里需注意: reduce 自动加 H 后需要 check ,如果某些 H 原子所加位置需要调整,这一调整操作会引起重原子顺序发生变化,这里需要注意,要做到在整体结构文件 all.pdb 中的配体结构这一部分(未加 H ),配体重原子顺序应该与上述第 0 步中生成的 Lig_addH_Adjusted.pdb 结构中重原子顺序保持一致,一个简单的办法是删除 Lig_addH_Adjusted.pdb 中 H 原子信息,把剩余重原子信息替代 all.pdb 中配体部分。 为什么? 因为 Lig_addH_Adjusted.pdb 是手动调整过的(如果未调整,请忽略此处),比如重原子顺序以及 atom name 有可能与原始 pdb bank 下载下来的信息已不一致,但是所用的 frcmod 和 mol2 文件是根据 Lig_addH_Adjusted.pdb 生成的,所以此处应该保持一致。 生成 prmtop 和 inpcrd 采用 amber 软件包里的 tleap 或者 xleap 程序,两个程序功能相同, tleap 是文字窗口, xleap 是图形界面。 具体操作方法: $tleap 到此,启动 leap 程序 sourceleaprc.ff03ua sourceleaprc.gaff 到此,蛋白库文件 leaprc.ff03ua 和配体库文件 leaprc.gaff 加载进来了。 下面一步是调入配体分子的模板,补全库文件中缺失的参数: loadamberparamsLig.frcmod 到此,配体缺失参数补全。 下面一步是调入配体 mol2 文件: LIG= loadmol2 Lig.mol2 到此, mol2 文件导入完毕。 需注意: LIG 是 Lig.mol2 文件中配体分子的 segname, 即此处的变量名需与 mol2 文件以及整体结构 all.pdb 中配体分子的 segname 保持一致。 下面一步是调入整体结构: all= loadpdb all.pdb 注:如果结构是正确的,则导入后,屏幕出现如下信息: total atoms in file: 1547 Leap added 1527 missing atoms according toresidue templates: 1507 H / lone pairs 20 unknown element 如果输入这个命令之后,屏幕上出现了大量的创建 unit 或者 atom 的信息,如下所示: Createda new atom named: S33 within residue: .R Createda new atom named: O35 within residue: .R Createda new atom named: N34 within residue: .R 这说明上面一步的 pdb 文件处理没有做好,还需要重新处理,通常这种情况都发生在配体分子上面,有时则是因为蛋白质中存在特殊残基。 到此,结构导入进行,且已经加上 H 原子,如果没有其他所需操作,此时可以加离子和溶剂水了,为避免模拟中形成空穴,先加离子再加溶剂。 加离子,使体系保持中性: addionsall Na+ 0 addions 加离子命令 Na+0 表示用 Na+ 离子使体系保持中性(因为此时整个体系带负电) 若需要加阴离子,用 Cl- 。 ( 此处语法知识点:上述命令行里 0 表示中性,并不是加离子个数,但当此处为非 0 正整数时,含义则为所加抗衡离子个数。 addions 命令只能加整数个数的抗衡离子,如果体系所带电荷数为 17.999 ,则用 addions all Na+ 0 这一命令只能加 17 个抗衡离子。显然如果为保持体系中性的话,这种操作的结果是不对的。这种情况应该具体指定所加离子个数,如对于 17.999 是需要加 18 个抗衡离子的,则用命令: addions all Na+ 18 。总结: 0 表示最后结果呈中性,但此时要注意体系是否带整数个电荷量。非 0 值则表示所加离子具体个数,数值可任意指定,体系最后所带电量取决于此非 0 值和在加抗衡离子之前体系所带的电量 ) 。 到此离子添加完毕,体系成中性。 加溶剂水分子: solvateboxall TIP3PBOX 10.0 solvatebox 表示加上一个方形的周期水箱 all 刚刚导入的存储有结构信息的变量 TIP3PBOX 表示选择的水模板名称 10.0 表示盒子大小,水箱半径 到此溶剂水添加完毕。 若无其他修饰,此时可以保存 pdb,prmtop , inpcrd 文件: savepdb all all_ionized.pdb saveamberparm all all_ionized.prmtop all_ionized.inpcrd all_ionized.pdb 添加 H ,溶剂水,离子的结构信息, all_ionized.prmtop 模拟所需的参数和拓扑文件 all_ionized.inpcrd 模拟所需的坐标文件 到此,力场建立完毕。 以上在 tleap 里的操作是一步一步来做,一个简单的办法是将以上所有操作写入 leap.in 文件,按如下操作一步完成: $tleap-s -f leap.in leap.out leap.in 内容: sourceleaprc.ff03ua sourceleaprc.gaff loadamberparamsLig.frcmod LIG= loadmol2 Lig.mol2 all= loadpdb all.pdb addionsall Na+ 0 solvateboxall TIP3PBOX 10.0 savepdball all_ionized.pdb saveamberparmall all_ionized.prmtop all_ionized.inpcrd quit 到此,建立力场方法介绍完毕,分步做或采用 leap.in 来做,两种办法均可。 all_ionized.prmtop , all_ionized.inpcrd 是用于模拟所需的力场和坐标文件。此篇工作目的就是要拿到该两个文件。注意检查 leap.log 文件里有没有 warning 和 error 的信息,注意排查,确保所键力场信息正确。 在正式跑动力学之前可以 check 一下 prmtop 中拓扑参数和力场参数是否正确。方法: 查看拓扑信息: 在 vmd 里导入 prmtop 和结构文件 ( 与 prmtop 配套的 pdb 文件 ) ,查看分子键连信息是否正确。 查看力场参数信息: 用 prmtop 简单跑一段动力学轨迹,查看键长键角等信息是否正确。 注: vmd 导入 prmtop 文件时, vmd 只提取里面的拓扑信息,力场参数如键角这些信息并不体现。 完!
个人分类: Amber|15115 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 14:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部