Py学习  »  Python

JCIM|pDynamo3:一个基于Python的分子建模与模拟程序

智药邦 • 1 年前 • 267 次点击  

2022年11月30日,法国约瑟夫傅立叶大学的研究者在Journal of Chemical Information and Modeling上发表论文pDynamo3 Molecular Modeling and Simulation Program。论文详细介绍了作者开发的基于Python的分子建模与模拟程序--pDynamo3。


1 摘要

pDynamo3是用Python 3编写的Dynamo分子建模和模拟库的第一个正式版本。它源自2007年发布的用Python 2编写的第一个pDynamo版本。pDynamo及其前身fDynamo的设计目的是,为在原子水平上执行分子模拟提供易于使用和灵活的框架,特别强调那些采用量子化学(quantum chemical, QC)和分子力学(molecular mechanical, MM)方法的框架。虽然pDynamo3的使用与pDynamo2非常相似,但它增加了显著的新功能,并进行了广泛的重组,这将使其更易于扩展新功能。

pDynamo3代码根据GNU通用公共许可证的发布网址为:

https://github.com/pdynamo/pDynamo3
更多信息请访问pDynamo网站:

https://www.pDynamo.org

2 介绍

Dynamo分子建模和模拟库的开发始于20世纪90年代初。因为在当时这些技术软件的选择非常有限,所以这项工作的主要目标是开发一个程序,使其可以使用混合量子化学和分子力学进行分子模拟。Dynamo的第一个版本(现在称为fDynamo)是用Fortran 90/95编写的,并于20世纪90年代末发布。fDynamo实际上不是一个独立的程序,而是一个Fortran模块库,用户可以使用它为自己想要执行的每个特定模拟编写自己的程序。研究者使用fDynamo进行了许多有用的研究,发现脚本语言更适合Dynamo体系结构。在考虑了许多这样的语言之后,2000年代初开始开发Python版本的Dynamo,pDynamo于2007年首次发布,随后在接下来的几年中又发布了几个增量维护版本。
本文介绍了自2007年以来pDynamo库的第一个主要修订版,称为pDynamo3,这在很大程度上是由Python语言版本2和3之间的转换所推动的。Dynamo的所有版本都是根据开源许可证发布的。

3 pDynamo包

3.1 功能与用法


pDynamo3保留了pDynamo2的所有功能。它允许使用QC、MM和QC/MM混合方法在原子系统上进行各种能量和力计算,包含广泛的模拟算法,包括几何优化、分子动力学、简正波分析和反应路径查找,并拥有一套重要的分析算法。该库的用法也与pDynamo2非常相似。通过编写Python脚本来执行模拟,这些脚本使用了pDynamic3库中可用的多种方法,并在必要时将这些方法与第三方Python模块和包的广泛应用相结合。作为一个非常简单的例子,图1展示了一个pDynamo3脚本,该脚本使用三种不同的半经验QC方法计算水分子的能量和性质。图1中的脚本只进行了相对有限的计算,但经验表明,可以在非常简洁的pDynamic3脚本中直接有效地执行各种甚至在理论上非常复杂的模拟和分析,而无需使用更专业的模拟程序。

图1 pDynamo3的示例脚本,使用三种不同的半经验QC方法计算水分子的能量和性质。

3.2 项目结构与实现


尽管与pDynamo2表面相似,但pDynamo3进行了彻底的内部修改。最重要的变化如下:

A.作者通过引入特定有限任务的子包来重构pDynamo包。图2展示了当前包及其子包以及pDynamic3发行版中其他重要的目录的示意图。

B.开发了一个简化的安装过程,它在目录树中找到具有正确结构的所有包和子包,能够自动安装pDynamo。此外,安装脚本允许部分安装和完全安装,这对于开发和测试特别有用。

C.将所有pDynamo的示例和测试重新组合到一个目录中,并具有一个改进的脚本可以运行所有示例和测试,也可以只运行特定包或主题的子集。

D.pDynamo3和pDynamo2一样,在C和Cython中实现了大量的扩展模块,用于数组、线性代数、积分运算等任务。然而,相比之下,pDynamo2的大部分计算量较小的C代码已经转换为Python。尽管这带来了轻微的性能损失,但它极大地促进了新功能的开发和测试,并增加了可以执行的计算类型的范围。

关于库的另外两个实现细节值得强调:(1) Dynamo的所有版本都经过了设计,使得它们的安装对外部库的依赖最小;(2) Dynamo开发始终优先考虑清晰性和易用性,而不是提高速度和减少内存使用的代码优化。

图2 pDynamo3的目录结构概述。包和子包显示为蓝色,包含示例的目录显示为粉色,参数目录显示为绿色,实用程序目录显示为橙色。对于包目录,红色边框表示包具有C/Cython扩展,而阴影表示存在外部依赖项,对于QCModel是可选的,对于pcetk和pySCF是强制的。

3.3 pDynamic3和第三方模拟包和程序


作者介绍了三类第三方包,详细介绍如下。

A.pMolecule。QCModel 子包中的两个模块与DFTB+和ORCA QC程序直接耦合。这些耦合通过与其他内置QC能量模型一致的接口实现,以便它们可以互换用于纯QC和混合QC/MM计算。例如,图1中的脚本可以使用DFTB+或ORCA,方法是将QCModelMNDO替换为QCModelDFTB或QCModelORCA以及适当的可选关键字。

B.由独立开发和维护的第三方包组成。为了方便,这些包作为插件直接包含在发行版中(图2)。目前包括pcetk(它使用pcetk工具包,使用连续静电模型计算蛋白质中的质子结合能和质子化状态)、pyCPR(它用于定位过渡状态和反应路径的共轭峰值细化算法的Python实现)和pyscf(类似于上述DFTB+和ORCA程序的方式提供到pyscf QC程序的接口)。

C.还有其他程序使用pDynamo。pDynamo本身被用于许多程序中,包括用于QC/MM计算的ORCA和GTKDynamo,GTKDynomo为pDynamo提供了一个图形界面,用于分子系统的可视化和促进QC/MM模拟的准备和分析。

3.4 QC/MM方法


Dynamo计划的最初目标之一是建立一个平台,用于开发和应用执行QC/MM模拟的方法。pDynamo3在这方面它尤其强大。特别是,所有MM、QC和非绑定交互方法(nonbonded interaction methods)都具有一致的接口,因此它们可以在QC/MM计算中组合使用。作者展示了一些示例,基于pDynamo3的状态链反应路径方法使用1个MM、3个QC和7个QC/MM能量模型对丁烷对高切(the butane anti to gauche)和环己烷椅-扭船构象转变(cyclohexane chair to twistboat conformational transitions)进行了反应路径计算。所得能量分布图如图3所示。

图3 使用MM、QC和QC/MM近似值范围确定丁烷对高切(the butane anti to gauche)和环己烷椅-扭船构象转变(cyclohexane chair to twistboat conformational transitions)的反应曲线。

4 总结

本文介绍了分子建模和模拟库--pDynamo3。该库被设计灵活和可扩展的架构,确保它能够跟上分子建模和模拟领域的最新发展,从而在未来继续成为一个有用且相关的工具。

参考资料

Field M J. pDynamo3 Molecular Modeling and Simulation Program[J]. Journal of Chemical Information and Modeling, 2022.

--------- End ---------



感兴趣的读者,可以添加小邦微信(zhiyaobang2020)加入读者实名讨论微信群。添加时请主动注明-企业 -职位/岗位 

姓名-学校-职务/研究方向




- 历史文章推荐 -

分子建模与模拟

●Nat Mach Intell|基于深度学习和分子模拟加速PROTAC的理性设计

●分子模拟|一种增强的采样方法Metadynamics

●Curr Opin Struc Biol|蛋白质设计的深度生成建模

●Anton3问世|分子动力学模拟的新一代“屠龙宝刀“

 Nat Comput Sci综述|生物分子建模在技术时代蓬勃发展


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150492
 
267 次点击