博客

HPC

OpenMM:一个开源的可定制分子模拟工具包

2023.12.15 20分钟阅读

什么是 OpenMM?


OpenMM 是一个高性能的分子动力学模拟工具包,使研究人员能够在原子水平上研究分子和材料的行为。它是一个开源的 GPU 加速生物分子建模工具包,用于模拟、应用程序、库或灵活的编程环境。

 

OpenMM 是开源的,得到了广大用户和开发人员的支持,为其持续的开发和改进做出了贡献。其功能可与其他流行的分子动力学模拟套件和库相媲美,并提供广泛的可编程选项和详细的 API。

 

与其他分子动力学套件一样,OpenMM 用于模拟广泛的分子系统,以深入了解其行为和性质,从而设计新材料、开发新药,并对分子过程有更全面的了解。

 

OpenMM 的关键定义属性是其底层架构。OpenMM 的基础建立在 C++(具有 CUDA 和 OpenCL 功能)之上,用于基于 Python 的应用层的高级计算。由于其简单的语法和可学习性,基于 Python 的面向外部的界面使脚本编写和运行模拟对于那些几乎没有编程经验的人来说非常简单。


OpenMM 面向谁?


开源使 OpenMM 能够满足许多不同的目的和不同的受众。化学家和生物学家可以利用其修补 Python 应用程序层,通过 OpenMM 的简单 UI 运行模拟。他们也可以上传 PDB 文件、跨平台 AMBER 或 GROMACS 文件。不熟悉 Python 的用户可以使用他们的 Python 脚本编写器 OpenMM Setup,在掌握 OpenMM 更复杂的方面之前,很容易地开始实验。

 

应用程序开发人员可以使用计算库将模拟功能添加到他们的程序中。由于从技术上讲,OpenMM 是一个 API 和通过 Python 脚本访问的各种函数库,因此开发人员可以将 OpenMM 中的代码作为程序中的函数来访问。当在综合套件中实现分子动力学时,这一点尤其有用:例如,GROMACS 可以与 OpenMM 计算接口,而 ACEMD 现在使用 OpenMM 作为底层动力学引擎。

 

最后,经验丰富的分子动力学工程师可以在 OpenMM 中使用他们的公式和代码开发自定义算法,以开发新的测试方法。定制是开发新模拟算法的一大优势。


OpenMM 的特殊之处


· 开源社区

 

OpenMM 作为工具包、应用程序和库的灵活性增强了它的可定制性。它的开源特性使熟悉 Python 的人能够修改代码以匹配他们的研究。这也允许来自世界各地同行的持续发展和推荐。他们的论坛很有可能会回答您对 OpenMM 的问题,并不断提供反馈,以进一步提高其功能。

 

开发人员还可以利用 OpenMM 已经为分子动力学领域做出的贡献,将扩展的库用于他们自己的应用程序和软件套件,以进行更小众的模拟,并浏览他们的文档以获取更多信息。

 

· 简易模拟生成器

 

OpenMM 的模拟可以通过不超过 20 行代码的 Python 脚本运行。他们有很多关于如何开箱即用 OpenMM 的例子:这些脚本看起来很简单:

 

from openmm.app import *
from openmm import *
from openmm.unit import *
from sys import stdout

pdb = PDBFile('input.pdb')
forcefield = ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')
system = forcefield.createSystem(pdb.topology, nonbondedMethod=PME,
        nonbondedCutoff=1*nanometer, constraints=HBonds)
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
simulation = Simulation(pdb.topology, system, integrator)
simulation.context.setPositions(pdb.positions)
simulation.minimizeEnergy()
simulation.reporters.append(PDBReporter('output.pdb', 1000))
simulation.reporters.append(StateDataReporter(stdout, 1000, step=True,
        potentialEnergy=True, temperature=True))
simulation.step(10000)

 


但即便如此,对于那些没有接触过 Python 的人来说,这似乎也令人望而生畏。OpenMM 承认这一点,并提供了一个用户友好的界面和一个生成器,帮助轻松创建快速模拟。

 

OpenMM 安装应用程序是创建自己的脚本以启动模拟的一种方法。它不仅仅是一个脚本生成器,能够修复输入文件中的问题、添加丢失的原子、构建膜等等,只需安装并打开此 GUI 即可:

 

#Install OpenMM-Setup
conda install -c conda-forge openmm-setup

#Launch OpenMM-Setup
openmm-setup


高度可定制


由于 OpenMM 是开源的,算法开发人员可以根据自己的需要修改和编辑代码。用户还可以自定义不同的力场、积分器和算法,以支持最小众的实验和模拟。具有许多不同的力、角度、粒子和场,再加上自定义它们的能力,在模拟各种计算中具有无限的可能性。

 

使用 OpenMM 的自定义函数开发对自定义力场非常简单。用户将把他们的变量输入到一个公式中,为键、角度、扭转等创建新的力。OpenMM 还使用一种简单的 XML 文件格式来描述力场。用户可以使用通过 XML 导入的通用力字段,如 Amber14 和 TIP3P-FB,但也可以创建自己的力字段。您甚至可以扩展力场类以添加对全新力的支持,例如插件中定义的力,这使它成为一个强大的开发工具。


包集成


由于 OpenMM 构建在库包上,然后导入到 Python 中执行脚本,因此易于集成使 OpenMM 能够从多个端进行扩展和开发。独立开发人员可以上传他们支持 OpenMM 的包来扩展或引入新功能。

 

它可以双向运行:OpenMM 库提供了一个 Python 接口,使其易于与其他 Python 包集成。例如,开发人员可以使用 NumPy 或 Pandas 库来操作模拟数据,或者将 OpenMM 与 VMD 或 PyMOL 等可视化包集成。

 

对 OpenMM 的更新可以是修改代码以加快速度、修复错误,也可以是添加绑定、字段和函数。然而,更大、更实质性的添加可以单独进行,并通过发布新的包进行集成。


OpenMM 8.0 版本


谈到包集成和新功能,2023年2月1日发布的 OpenMM 8.0 引入了对机器学习潜力的支持,超越了核心 OpenMM 包。OpenMM 中的三个新库实现了使用机器学习研究数据的新方法:

 

· NNPOps-用于促进神经网络潜能的使用,对流行潜能中出现的瓶颈操作进行高度优化的开源实现。MD 模拟中使用的原子间电势使用机器学习算法计算和学习势能。这些神经网络需要充足的训练数据,才能仅基于原子位置对能量进行准确的模拟和预测。

 

· OpenMM Torch-这是一个 OpenMM 插件,允许 PyTorch 静态计算图用于定义 OpenMM TorchForce 对象,一个计算势能贡献或用作集体变量的 OpenMM Force 类。它允许用户使用 OpenMM 模拟分子动力学系统,然后使用 PyTorch 对模拟轨迹进行各种类型的分析,如聚类、降维和机器学习。

 

· OpenMM-ML 是一个高级 API,用于在 OpenMM 模拟中使用机器学习模型。只需几行代码,您就可以设置一个模拟,该模拟使用标准的、预先训练的模型来表示系统中的部分或全部交互。在当前版本中,唯一支持的潜在功能是 ANI-1ccx和ANI-2x,使用 TorchANI 中的实现。它们适用于含有有限元素且没有电荷的小分子。未来的释放将增加新的潜在功能,支持更广泛的分子。

#结论 #

凭借更高程度的可定制性,OpenMM 为研究人员提供了开发与他们相关的模拟和测试的工具。就像 GROMACS 一样,OpenMM 的开源特性很好地促进了它在社区中的流行和采用。

 

由于 OpenMM 利用了 GPU 计算资源的使用,您的大规模模拟可以受益于并行化给科学计算带来的加速。联泰集群专门从事 GPU 加速工作站和服务器,OpenMM 对各种GPU的集成和支持使其成为补充您工作流程的优秀工具包。

如果您也希望通过联泰集群的高速算力产品,提高取得药物发现和分子研究的计算效率,请立即联系我们获取更多信息!

相关贴子

敬请登记。

登记
本网站受 reCAPTCHA 保护,适用 Google隐私政策和服务条款。