没有合适的资源?快使用搜索试试~ 我知道了~
SoftwareX 6(2017)7原始软件出版物pysimm:一个python软件包,用于模拟分子系统Michael E.Coray M.Colinaa,b,a佛罗里达大学化学系,Gainesville,FL 32611,美国b佛罗里达大学材料科学与工程与核工程系,Gainesville,FL 32611,美国阿提奇莱因福奥文章历史记录:2016 年 8 月 15 日 收 到 ,2016年2016年12月5日接受关键词:非晶态聚合物分子模拟Pythona b st ra ct在这项工作中,我们提出了pysimm,一个python软件包,旨在促进分子系统的结构生成,pysimm提供了一系列仿真工具,并与高度优化的第三方软件顺利集成。抽象层使标准化的方法能够将各种力场模型分配给分子系统并执行简单的模拟。这些特性使得pysimm能够帮助快速开发新的应用,特别是在无定形聚合物模拟领域。©2016作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。代码元数据当前代码版本v0.1用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-16-00070法律代码许可证MIT使用git的代码版本控制系统使用python2.7的软件代码语言、工具和服务编译要求、操作环境依赖性Linux如果可用,链接到开发人员文档/手册http://pysimm.org/documentation/问题支持电子邮件support@pysimm.org1. 动机和意义分子模拟已被证明是探索时间和长度尺度的有用工具,随着可用计算能力的增加,模拟更大和更复杂的分子系统的实用性也在增加。重要的是,新软件的开发要跟上步伐,以充分利用这种计算能力的持续增长。新软件的开发通常是为了利用新硬件或硬件加速,但研究人员也必须能够使用这种计算能力来解决科学问题。高度优化软件的使用有时仅限于那些对计算机编程有深刻理解的*通讯作者:Department of Chemistry,University of Florida,Gainesville,FL32611,United States.电子邮件地址:colina@chem.ufl.edu(C.M. Colina)。http://dx.doi.org/10.1016/j.softx.2016.12.002和高性能计算技术。但是一个潜在的科学家用户群,如果他们可以使用计算研究可以产生巨大影响的一个领域由于缺乏明确的三维结构,预测无定形聚合物链的几何形状是不平凡的。然而,一旦获得结构,就可以进行许多计算机表征来询问材料特性。虽然有许多工具存在,旨在简化生物分子的模拟设置,更少的工具存在,以简化无定形聚合物的结构制备过程。这可能是由于与由一小组氨基酸组成的蛋白质链相比,聚合物组成和形态的巨大多样性。这些工具通常采用从实验数据确定的已知三维结构,例如X射线晶体学,并应用给定的力场模型。预测中学,大学,2352-7110/©2016作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx8法医C.M. Colina/SoftwareX 6(2017)7和蛋白质的四级结构从它们的线性序列init.py。很多时候,集成只需要知识然而,氨基酸的合成仍然是一个活跃的研究领域。此外,考虑到聚合物化学中使用的各种官能团,具有高度优化但广泛适用的力场能够捕获所有聚合物物理学可能是棘手的简化研究具有各种力场的系统的过程的软件的可用性可以深入了解哪些模型可以捕获适用于给定科学探究的聚合物物理学子集,并帮助指导聚合物模拟社区的力场开发。pysimm是一个python软件包,专门为解决这些问题而设计,为用户提供简单但强大的工具来构建结构并应用各种力场模型来研究无定形聚合物形态。该软件被构建为存在于其他软件层之间,可以提供高度优化的昂贵计算执行和用户友好的(图形)界面。弥合这一差距有助于为更多的研究人员打开大门,利用计算能力来研究聚合物科学。有大量的软件存在来执行与来自高度优化的模拟包的分子模拟相关的各种任务,例如LAMMPS [1],AMBER [2],GROMACS [3],CHARMM [4],HOOMD [5],OpenMM [6]和Cassandra [7],到设计用于准备模拟系统的软件,例如AmberToolsLEaP [2]、PackMol[8]和mBuild [9],到计算化学软件包,例如RDKit [10]和OpenBabel[11] , 到 后 处 理 软 件 如 AmberTools CPPTRAJ [2] 、 LAMMPSPizza.py [1]、PoreBlazer [12]、VMD [13]、PyMol [14]和MD-Traj[15] , 以 及 专 门 设 计 用 于 创 建 聚 合 物 结 构 的 软 件 , 如PolymerModeler [16],Polymatic [17]和As-100![18 ]第10段。尽管这份软件清单很长,但它远非详尽无遗。任何计算科学家都不可能尝试学习所有这些软件包的复杂细节,但可能希望使用它们中的每一个pysimm的目标不是为了取代上述任何软件包的特定用途,而是通过提供简单的API行为来促进它们之间的协作,以使用流行的Python脚本语言集成不同的功能。例如,pysimm被用于开发基于网络的应用程序nusimm:nanoHUB分子建模用户模拟界面[19],该界面为 执行高性能分 子模拟提供了 用户友好的界 面。与LAMMPS [1],PoreBlazer [12],PyMol [14]和Polymatic [17]的集成允许用户使用Polymatic生成聚合物结构,通过LAMMPS模拟对聚合物链的构象空间进行采样,使用PyMol可视化和分析3D结构,并使用PoreBlazer表征孔结构。由nanoHUB.org [20]构建的基础设施提供了对计算资源的方便访问,而pysimm平台提供了可重复使用的模块化工具,使nusimm的开发主要集中在设计应用程序的前端,通过聚合物结构生成,平衡和表征程序进行组织和直观的2. 软件描述pysimm脚本使用标准python语法编写。pysimm包的一部分,如力场类型,forcefield子包(参见第2.1.2节)可以作为独立的python代码使用,但是使用pysimm平台的大多数功能都包含了其他第三方开源软件。在这些情况下,正确安装外部软件被认为是使用pysimm的先决条件。配置pysimm和其他软件包之间的集成是通过环境变量处理的,也可以在可执行文件的路径。例如,要通过lmps模块配置LAMMPS软件包的 使 用 ( 参 见 第 2.1.3 节 ) , 用 户 可 以 自 己 设 置 环 境 变 量“LAMMPS_EXEC”,或者修改init .py中的一行代码来搜索其可执行文件(参见pysimm源代码存储库中的README中的通过在Linux终端调用python并导入pysimm,可以交互式地使用pysimm。这种技术对于检查和准备用于模拟的分子系统非常有用例如,为了获得原子的标签或其唯一标识符,通常感兴趣的是视觉检查所研究的系统。交互式地使用pysimm可以允许用户从文件中读取系统信息并可视化系统来帮助确定具体的标签在关闭可视化软件后,用户返回到交互式python解释器以继续配置或修改分子系统。或者,通过将脚本传递给python解释器,可以批量运行pysimm2.1. 软件架构和功能pysimmpython包分为三个核心部分。系统模块能够生成、修改和解释分子数据。这包括原子的位置以及它们如何相互作用。分子系统中原子相互作用的方式通常是指力场或原子间势,在pysimm中存在力场包。该软件包解释力场数据,并可以将这些参数分配给给定的分子系统。最后一个核心模块处理如何进行分子模拟。这个任务通常在计算上非常昂贵,并且有许多高度优化的软件包专门设计用于有效地完成这些任务出于这个原因,pysimm选择使用第三方仿真软件。虽然目前pysimm已经开发成通过lmps模块与LAMMPS仿真包的部分无缝集成,但该软件包的未来发展方向是扩展到与众多仿真包集成,每个仿真包都可以提供独特的功能。为分子模拟包创建python接口背后的理念是,抽象级别允许用户利用固有的优化,而不必担心设置模拟所需的有时神秘的语法文件的格式化、组织和执行都在后台处理,而用户只需担心设置更高级别的分子模拟设置,如温度或压力。然而,对于理解给定模拟软件的语法的高级用户,仍然存在提供原始输入以运行模拟的选项。2.1.1. pysimm.system系统模块具有分子系统组件的类定义,例如粒子、键、角度、二面角和不正确,以帮助定义分子模型中的键合几何这些项中的每一项引用类型对象(ParticleType、Bond- Type等)。用来定义力场参数例如,在模型中以相同方式工作的所有焊接对象都引用可以定义焊接拉伸力常数和平衡焊接长度的相同BondType所有这些信息都组织在一个System对象中,该对象提供了对所有分子系统数据的方便虽然可以通过创建粒子、用键连接它们、指定角度等自底向上构建System对象(参见源代码存储库中的示例1),但用户通常会获得至少包含这些子集的数据文件法医C.M. Colina/SoftwareX 6(2017)79Fig. 1. 力场对象使用数据文件中包含的力场数据实例化。apply_forcefield()方法在包含原子元素组成和键序的System对象上调用,使用给定的Forcefield对象,该对象解释局部键合环境并相应地以ParticleTypes、BondTypes等形式分配力场参数。重要的是要注意,System对象已在适当位置修改,因此,左侧和右侧表示的两个System对象指向内存中的同一对象。信息,例如来自PubChem或其他开放存取数据库。系统模块包含读取各种文件格式(如XYZ、PDB、CML或SDF)的功能这些功能解释数据文件,并将分子系统数据组织成一致和可扩展的数据结构,而不管初始文件格式如何。这个系统对象的表示可以被写入各种常用的文件格式或YAML文件格式,该文件格式支持包含可能在标准化文件格式中没有位置的任意数据。一个例子是包括识别单体中可以连接以形成新聚合物键的原子的数据在pysimm中使用的YAML文件格式的这种使用允许分子系统的面向对象表示的序列化,该分子系统可以通过数据连接传输并在另一端重建。2.1.2. pysimm.forcefieldpysimm的第二个核心子包,力场包,用于检查系统对象,并为粒子、键、角度等分配适当的力场类型力场参数可以在文献或开源软件包中找到。然而,尽管不同力场之间的功能相似,但目前缺乏数据格式的通用标准。pysimm包含一组选定力场,其数据已被格式化为可由软件代码解释的标准,以实例化系统模块中定义的 ParticleType 、 BondType 、 AngleType 、 DihedralType 和ImproperType对象因为每个力场都有自己独特的类型规则要求,所以在pysimm中实现的每个力场都有自己的类定义,并在类方法中定义了类型规则。在首次公开发布时,支持一些原子力场(GAFF,DREIDING,PCFF),但是力场模块的设计可扩展到粗粒度模特也是。将ParticleType对象指定给Particle对象由给定系统对象中的局部焊接环境确定。键,角度,二面角和不适当的力场类型,然后确定使用粒子类型名称的组合。此方法遵循手动分配力场参数时使用的逻辑,但受益于力场模块提供的标准化。一个说明力场打字是如何工作的图示如图所示。1.一、2.1.3. pysimm.lmps模块最后一个核心pysimm模块负责与LAMMPS仿真包集成简而言之,该模块提供了分子系统数据和将执行给定模拟的软件之间的抽象级别。模拟的数据要求,如分子动力学系综或温度,应进行模拟,从LAMMPS施加的语法要求从理论上讲,这种抽象可以应用于其他仿真包,在这种情况下,类似的pysimm工作流可以很容易地从一个仿真包转换到另一个仿真包。lmps模块包含Simulation对象的类定义,它接受System对象和各种关键字参数来设置模拟。配置模拟的设置尽可能从System对象推断。例如,不要求用户将焊接交互样式显式设置为谐波,而是从系统对象获取此信息分子动力学模拟或能量最小化模拟的模板可以分别使用MolecularDy- namics和Minimization这些10法医C.M. Colina/SoftwareX 6(2017)7图二. 模拟设置存储为Minimization和/或MolecularDynamics对象使用键值对设置实例化调用Simulation.run()方法将调用LAMMPS,完成后,现有的System对象将在内存中更新。模 板 被 添 加 到 Simulation 对 象 中 , 并 且 可 以 通 过 调 用Simulation.run()方法来执行run()方法准备所需的输入文件,并调用用户在初始pysimm配置期间定义的模拟完成后,模拟框尺寸、粒子位置和粒子速度将在原始系统对象中更新这种从仿真包的完全抽象只需要仿真包的任何新实现也同样更新System对象中的这些值。要使用多个处理器,传递一个可选的关键字参数这种模板化行为的图形表示如图所示。 二、3. 说明性示例3.1. 无规行走聚合上面概述的pysimm官能度用于创建使用单体作为分子结构单元来制备线性自避免无规行走聚合物链的应用,其中控制链长度和单体图案/组成。单体被添加到聚合物链末端,每次一个,力场项和参数由新的聚合物键引入,新的聚合物键自动从用户提供的力场对象中检索并添加到包含生长的聚合物链的系统中。在每次单体添加后,进行结构松弛和分子动力学模拟(改编自Polymatic算法的方法[21]),以松弛新聚合物键附近的几何结构,并为聚合物链产生新的生长 方向, 以避免其 他生长链。 这一 系列的模拟 是使用LAMMPS进行的,但是随机游走应用程序接受一个广义的模拟对象,它只需要正确实现第2.1.3节中解释的运行类方法。图3中示出了来自聚甲基丙烯酸甲酯的示例性聚合的一系列快照。渲染使用ChemDoodleWebComponents创建[22]。有关apps.random_walk模块的演示,请参见pysimm源代码存储库中的示例44. 影响和结论pysimm旨在影响科学界两个独立但相互联系的团体。第一组由经验丰富的计算机程序员组成,法医C.M. Colina/SoftwareX 6(2017)711图三. 聚甲基丙烯酸甲酯无规行走聚合物生长说明。在每次迭代中,将单体添加到生长的聚合物链的末端,直到获得所需的链长。在单体添加之间进行LAMMPS模拟渲染使用ChemDoodle Web Components创建[22]。一个或多个分子软件包。该组可以被认为是使用在pysimm核心定义的模块化工具来构建应用程序工作流的pysimm开发人员来解决科学问题。这些开发人员具有计算机编程能力,可以填补pysimm中缺少的应用程序特定功能的空白。第二组利用这些应用程序来回答科学问题。他们不经常开发新的应用程序(而是创建pysimm脚本),但可能会提供反馈来指导应用程序开发。该小组可以使用给定的应用,例如无规行走聚合应用,来研究不同的聚合物形态,或改变单体重复单元中的官能团以观察无定形聚合物的结构或动力学的变化。第3.1节描述了如何使用pysimm开发能够控制分子量和单体组成的聚合算法聚合物的性质在很大程度上取决然而,分子量和单体组成只是聚合物形态变化的许多不同方式中的两种。Pysimm为开发人员提供了工具,以快速创建能够产生新形态的应用,例如,其中用户可以输入反应性概率以产生无规共聚物,或者其中用户可以输入数均分子量和分散度以产生具有给定分子量分布的无规聚合物体系。Pysimm提供了一种标准化的方法,以基于局部键合增强将力场参数应用于分子系统Pysimm支持的力场集的扩展将使用户能够轻松地比较不同力场的能力,以满足其特定需求,并指导新力场的开发。pysimm提供的对仿真代码的抽象为那些对利用计算机仿真感兴趣但对高性能计算没有广泛知识的人提供了机会一旦配置好,pysimm允许用户使用python代码运行复杂的模拟,python代码是出了名的容易读写。此外,抽象创建了一个通用的方法来运行模拟,而不管使用的是哪种通过这种方式,可能精通使用一种软件运行模拟的用户可以利用在不同软件中唯一可用的新技术,通过pysimm使用相同的集中式语法。例如,这可以实现可能使用不同软件执行类似类型的模拟最终,作为一个开源软件包,pysimm包的未来掌握在任何社区的手中。在发布时定义的底层数据结构被故意设计得模糊不清,灵活,但可扩展以适应不同类型的数据,并可访问以最大限度地减少结果脚本和应用程序的复杂性从力场类型和模拟软件执行的复杂细节中抽象出来的哲学应该能够使最终用户在最初版本的使用中遇到有限的变化。致谢作者感谢普渡大学的Alejandro Strachan,Ben Haley和ChunyuLi进行了有益的讨论,并感谢美国国家科学基金会(NSF)的资助(拨款ACI- 1613155)。引用[1] 普林顿湾 短程分子动力学的快速并行算法。J Comput Phys1995;117:1-19.[2] Case DA,Betz RM,Botello-Smith W,Cerutti DS,Cheatham,III TE,DardenTA, Duke RE , Giese TJ , Gohlke H ,Goetz AW , Homeyer N , Izadi S ,Janowski P,Kaus J,Kovalenko A,Lee TS,LeGrand S,Li P,Lin C,LuchkoT,Luo R,Madej B,Mermelstein D,Merz KM,Monard G,Nguyen H,Nguyen HT , Omelyan I , Onufriev A , Roe DR , Roitberg A , Sagui C ,Simmerling CL,Swails J,Walker RC,Wang J,Wolf RM,Wu X,Xiao L,York DM,Kollman PA.琥珀2016. SanFrancisco:University of California;2016.[3] Abraham MJ,Murtola T,Schulz R,Páll S,Smith JC,Hess B,Lindahl E.Gromacs:通过从笔记本电脑到超级计算机的多级并行进行高性能分子模拟。SoftwareX 1-2 2015;19-25. http://dx.doi.org/10.1016/j.softx.2015.06.001网站。[4] Brooks BR,Brooks III CL,Mackerell Jr AD,Nilsson L,Petrella RJ,RouxB,Won Y,Archontis G,Bartels C,Boresch S,Caflisch A,Caves L,CuiQ,Dinner AR,Feig M,Fischer S,Gao J,Hodoscek M,Im W,KuczeraK,Lazartit T,Ma J,Ovchinnikov V,Paci E,Pastor RW,Post CB,PuJZ,Schaefer M,Tidor B,Venable RM,Woodcock HL,Wu X,Yang W,York D,Karplus M.Charmm:生物分子模拟程序。J Comput Chem 2009;30(10):1545-614. http://dx.doi.org/10.1002/jcc.21287网站。[5] 放大图片Anderson JA,Lorenz CD,Travesset A.通用分子动力学模拟完全实现 的 图 形 处 理 单 元 。 J Comput Phys 2008;227 ( 10 ) : 5342-59.http://dx.doi.org/10.1016/j.jcp.2008.01.047网站。[6] Eastman P,Friedrichs MS,Chodera JD,Radmer RJ,Bruns CM,Ku JP,Beauchamp KA,Lane TJ,Wang LP,Shukla D,Tye T,Houston M,StichT,Klein C,Shirts MR,Pande VS. Openmm 4:A reusable,extensible,hardware independent library for high performance molecular simulation. JChemTheoryComput2013;9(1):461-9.http://dx.doi.org/10.1021/ct300857j网站。[7] Shah JK,Maginn EJ.一种通用而有效的蒙特卡罗方法,用于对支链和环状分子的 分 子 内 自 由 度 进 行 采 样 。 J ChemPhys2011;135 : 134121.http://dx.doi.org/10.1063/1.3644939网站。[8] Martínez L,Andrade R,Birgin EG,Martínez JM. PACKMOL:一个用于构建分子动力学模拟初始配置的软件包。J Comput Chem 2009;30(13):2157-64. http://dx.doi.org/10.1002/jcc.21224网站。[9] Klein C,Sallai J,Jones TJ,Iacovella CR,McCabe C,Cummings PT.一个高层次的,基于组件的方法筛选软物质的属性。 分子建模的基础和模拟:塞 -FOMMS 2015 论 文 集 新 加 坡 : Springer; 2016. 第 79-92 页 。http://dx.doi.org/10.1007/978-981-10-1128-3_5网站。[10] 兰德鲁姆湾Rdkit:开源化学信息学。2016年8月8日访问。[11] O’Boyle J Chem Inf 2011;3(33):1-14. http://dx.doi.org/10.1186/1758-2946-3-33网站。12法医C.M. Colina/SoftwareX 6(2017)7[12] 放大图片作者:A.有序与无序多孔材料的计算结构表征工具。Mol Simul 2011;37(15):1248-57. http://dx.doi.org/10.1080/08927022.2011.592832网站。[13] 放大图片作者:J. VMD:Visual Molecular Dynamics。J Mol Graph 1996;14:33-8. http://dx.doi.org/10.1016/0263-7855(96)00018-5.[14] Schrödinger,LLC,The PyMOL molecular graphics system ,version 1.8,2015.[15] McGiant RT , Beauchamp KA , Harrigan MP , Klein C , Swails JM ,Hernández CX,Schwantes CR,Wang LP,Lane TJ,Pande VS. Mdtraj:Amodernopenlibraryfortheanalysisofmoleculardynamicstrajectories.BiophysJ2015;109(8):1528-32。http://dx.doi.org/10.1016/j.bpj.2015.08.015网站。[16] [10] 张 文 辉 , 张 文 辉 . 聚 合 物 建 模 师 , 2016 年 8 月 。http://dx.doi.org/10.4231/D3X921K69网站,网址https://nanohub.org/resources/9230。[17] 放 大 图 片 作 者 : Robert L. Polymatic : 模 拟 聚 合 算 法 , 2016 年 3 月 。 网 址https://nanohub.org/resources/17278。[18] 作者:Degiacomi MT,Erastova V,Wilson MR.使用assembly!轻松创建用于分 子 动 力 学 的 聚 合 物 系 统 。 Comput Phys Comm 2016;202 : 304-9.http://dx.doi.org/10.1016/j.cpc.2015.12.026网站。[19] FortunatoM、雅培L、Hart柯,ColinaC.nusimm:nanohub分子建模用户模拟界面(2016),http://dx.doi.org/10.4231/D3ZP3W18X,网址https://nanohub.org/resources/22366。[20] [10]杨文,杨文,杨文,杨文,杨文. nanohub.org:基于云的纳米级服务模型 -模 拟 和 教 育 。 Nanotechnology Rev 2013;2 ( 1 ) : 107-17.http://dx.doi.org/10.1515/ntrev-2012-0043网站。[21] Abbott LJ,Hart KE,Colina CM.Polymatic:一种通用的无定形聚合物模拟Theoret Chem Acc 2013;132(3):1-19. http://dx.doi.org/10.1007/s00214-013-1334-z网站。[22] iChemLabs LLC.Chemdoodle网页组件。2016年8月8日访问。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功