我是 OpenMM 的新手,希望获得有关以下问题的指导:
目前我对运行分子动力学模拟不感兴趣,对于初学者来说,我只想使用 OpenMMs AMBER 力场计算各个原子对之间的力或自由能。本质上我想最终得到一个热图,它代表原子对之间的力,如下所示: 其中数字代表力的强度或自由能的值。
我很难找到如何访问 OpenMM 的此类较低级别的功能,在其中我可以编写一个自定义脚本,该脚本仅在提供原子及其类型的 3D 坐标的情况下计算所需的力。在他们的教程中,我刚刚找到了如何通过提供分子系统的力场数据和 PDB 文件来运行成熟的模拟。
我最好用 python 来实现这一点。
非常感谢任何具体的示例或指导。
最佳答案
我在 Openmm's issue tracker 中找到了答案在 GitHub 上。
简而言之:在 OpenMM 中没有 API 可以完全实现这一点,因为从纯粹的物理/化学角度来看,我想要做的事情没有得到很好的定义。我最好的选择是计算一些看起来像仅基于成对原子间距离的能量的东西,这些距离可以从像这样的 openmm 状态中获取(如上面引用的讨论中所建议的):
state = simulation.context.getState(getPositions=True)
positions = state.getPositions(asNumpy=True).value_in_unit(nanometer)
关于python - 如何在 OpenMM 中计算单个原子之间的力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63155969/