本帖最后由 casea 于 2023-3-3 13:24 编辑
本文使用的脚本(.ipynb可以使用jupyter打开,更加方便操作):
之前学过一段时间的openmm,也翻译了openmm的手册OpenMM官方文档中文版。但是一直苦于如何模拟蛋白-配体体系。蛋白-配体体系的模拟难点在于配体的力场文件的构建。OpenMM自带了蛋白的力场参数信息,而像配体分子这样的非标准残基则需要自己手动构建。虽然可以使用openmmforcefield手动生成残基参数,但是不太优雅。 笔者日常使用的模拟软件为gromacs,对于小分子力场参数的构建,之前一直使用acpype,后来使用的是卢天老师开发的Sobtop。它们均可以生成配体itp文件,因此就在想是否能够通过python脚本将itp文件转化为openmm支持的xml力场文件,并将此用于openmm 蛋白配体体系的模拟中。 环境: 文件: - 蛋白pdb文件
- 配体gro文件
- 配体itp和top文件(acpype或sobtop生成)
- itp2xml.py (文末和github提供)
- simulation.py
- 以上文件必须放在同一文件夹下
文中所用的python代码均可以在我的Github仓库中获取。 对于xml文件的生成,笔者没有过于深入的研究,因此xml文件可能会出现不合理之处。 笔者在个人案例测试中能够顺利通过
itp2xml 说干就干,分析openmm xml文件可以发现,该力场文件的根标签为ForceField,其下又包含Info、AtomTypes、Residues、HarmonicBondForce、HarmonicAngleForce、PeriodicTorsionForce、NonbondedForce。 Info:记录了常见力场的信息 AtomTypes:记录了原子的类型、质量、命名 Residues:记录残基中原子的电荷、名称、类型,以及成键原子 HarmonicBondForce:记录键约束信息 HarmonicAngleForce:记录角约束信息 PeriodicTorsionForce:记录二面角约束信息 NonbondedForce:记录原子非键参数信息 有了上述信息,就可以使用python脚本从itp文件中提取信息,并生成xml文件。 该脚本名为itp2xml.py,可以在文末或者github仓库获取。 使用方法: - python itp2xml.py xxx.itp xxx.xml
复制代码
其中xxx.itp为gromacs力场文件,xxx.xml为指定的生成xml文件名。
simulation 在生成openmm支持的配体力场文件之后,我们便可以使用openmm进行模拟。 openmm运行时首先需要安装openmm(这是前提)。其次需要提供配体的gro、top、itp文件,蛋白的pdb文件,以及上一步生成的xml文件。 需要注意的是,提供的配体pdb坐标文件为对接之后的,即配体处于蛋白的活性口袋内。 模拟使用simulation.py文件,第一次运行时需要在文件开头修改使用的文件名以及模拟的参数。
该脚本会对蛋白进行残基补全、去除非标准残基、重新加氢等预处理操作,之后将蛋白和配体结合,并对体系溶剂化和平衡电荷。 这里有一个小tricks,对于配体来说,pdb文件需要有成键关系,否则读取时会报错。因此,先使用openmm对配体做了能量最小化,之后保存为pdb文件。 体系准备好之后就可以进行能量最小化,预平衡和成品模拟。
|