在变温模拟中启用约束的使用
项目描述
MDRestraintsGenerator
用于生成MD模拟(从MD模拟)约束的框架。
代码目前实现了推导Boresch风格约束的方法,并为GROMACS提供了导出器。还有基于COM约束(即谐振距离或硬壁)的实验代码,导出到gromacs pull代码。这些实验实现尚未完全测试。
在未来的实现中,我们希望扩展到其他MD引擎(特别是OpenMM支持将在不久的将来作为支持OpenFE所做工作的努力的一部分推出)。
我们还希望最终实现以下约束类型
- 附加拉力约束风格的约束
- 任意多维度约束(将需要API重写)
注意:这是非成熟代码,还有很多工作要做,并且随时可能发生重大变化。
安装
安装可以通过PyPi或源代码进行。
要使用PyPi安装最新版本,请执行以下操作
pip install MDRestraintsGenerator
要从源代码安装最新开发代码,可以使用以下操作
git clone https://github.com/bigginlab/MDRestraintsGenerator.git
cd MDRestraintsGenerator
pip install .
如何使用
代码目前专注于实现为GROMACS模拟推导Boresch约束的方法。为此,提供了以下底层方法
- 一个用于选择配体中稳定点的函数,以便附加约束(
search.find_ligand_atoms
)。 - 一个用于选择宿主约束添加点的类(
search.FindHostAtoms
)。 - 一个用于分析给定MD模拟中一系列可能的Boresch约束,并找到最稳定的约束原子的类(
restraints.FindBoreschRestraint
)。
Boresch约束在BoreschRestraint类中实现。当使用restraints.FindBoreschRestraint
时,一旦运行(使用run()
方法),首选的约束将存储为这样的对象,作为restraint
属性。BoreschRestraint类提供三个有用的方法
- 《plot()`函数输出Boresch约束每个组件(一个键,两个角度,三个二面角)的分布图像。除了直方图,表示平均值和选定的帧位置外,还提供了Q-Q图来显示分布接近正态分布的程度。当试图确定选择的变量是否可能占据不同的结合取向时,后者可能很有用。
- 《write()`函数,将《ClosestRestraint.gro》和《BoreschRestraint.top》文件写入。这些文件基于“选择的帧”,无论是用户提供的还是,在大多数情况下,通过《FindBoreschRestraint》例程自动获得的,作为“所有键/角度/二面角分布中与平均值最接近的帧”。这个《.gro》文件输出该帧的系统,而《.top》文件包含GROMACS《.top》文件的“intermoecular_interactions”部分。然后可以将其粘贴到现有的《.top》文件中,以应用约束。
- 《standard_state()`函数,目前返回约束添加的解析标准状态校正。
提供了一个示例使用脚本,位于《scripts.BoreschRestraintGMX.py》下。所有函数和类都有文档字符串,可以通过调用《help(function)》访问。
测试
在《MDRestraintsGenerator.tests》下提供了一套单元测试。要运行这些测试,您需要安装《pytest》。可以使用以下方式运行这些测试
pytest -v MDRestraintsGenerator.tests
依赖关系
- MDAnalysis
- NumPy
- SciPy
- Matplotlib
版权
版权(c)2020,Irfan Alibay
致谢
要引用此代码,请参阅以下内容
本项目基于《https://github.com/molssi/cookiecutter-cms》版本1.3的《Computational Molecular Science Python Cookiecutter》。