社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

智药邦 • 2 年前 • 805 次点击  

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
 
805 次点击