CHARMM

项目主页:http://www.charmm.org

开发者:Martin Karplus等

当前版本:c41b1

License: 专有,商业,源代码公开



概况

CHARMM于70年代末诞生于Martin Karplus小组,其前身正是历史上首次尝试基于蛋白质结构计算能量所使用的程序。该程序最初基于Lifson的consistent force field (CCF),其后由Bruce Gelin和Andy MacCammon等发展,成为从结构到相互作用再到动力学模拟的一套方法。1983年正式发表文章。正是由于与蛋白质的计算机模拟发展史息息相关,CHARMM同时也是领域内历史最悠久、使用最广泛的一种力场的名称。数十年来,CHARMM软件及力场与生物大分子的动力学模拟方法一直同步发展,参与的开发人员来自世界各地,而主要贡献者多半曾是Martin Karplus的学生或博士后合作者。软件主要使用Fortran开发,现有代码量约百万行。由于参与软件开发的人员大部分同时也是算法本身的开发者,该软件集成了生物大分子动力学模拟领域的各种前沿算法。也正是由于这种松散组合及各自相对独立的开发模式,软件体量和复杂程度不断增大,各模块之间关系复杂,为维护和性能优化带来一定的困难。目前的开发维护协调工作由Charles Brooks III group at Umich负责。基本上每年一个主版本,a为测试,b为稳定,最新稳定版本为c41b1。

主要功能

  • 支持基本的分子动力学算法,包括多种系综、多时间步长、周期性边界条件、简正模分析、能量最小化等基本算法。
  • 支持多种高级算法,包括多种增强采样方法,复杂的reaction coordinate restraints, 路径采样(path sampling), 蒙特卡洛采样(Monte Carlo sampling),路径优化算法及多种分析工具。
  • 除外CHARMM力场,软件还支持使用AMBER核酸与蛋白质力场,OPLS蛋白质力场,Bristol-Myers Squibb核酸力场。
  • 支持TIP3P、TIP4P、SPC、SPC/E及ST2等水分子模型。
  • 现有三个可极化力场相关模块,对应于三种主要的诱导电子极化模型,分别是基于浮动电荷模型的CHEQ模块,基于经典Drude振荡模型的DRUDE模块,以及基于诱导点偶极子模型的PIPF模块。这些模块及其相应的力场参数代表CHARMM力场的最新发展方向,仍在不断更新中,其中前两种方法/力场成熟度较高。
  • 对隐式溶剂模型有强大的支持,包含一系列在理论框架和具体实现上存在差异的算法,其支持算法的丰富程度超过其他同类分子动力学软件。除了支持隐式水溶剂,CHARMM还提供隐式生物膜模型的支持。
  • 支持量子力学与经典力学混合的QM/MM计算,对系统局部采用量子化学的方法计算能量。CHARMM通过两种方式支持QM/MM计算。其一是通过内置的QM模块,包括基于MOPAC提供半经验方法的QUANTUM模块及其衍生模块SQUANTM,以及另一基于密度泛函紧束缚方法的SCCDFTB模块。其二是通过调用外部的量子化学计算软件。CHARMM为多种分子轨道从头计算和密度泛函量化程序提供了接口。

特色

  • CHARMM定位为一个通用并且灵活的分子模拟软件,其设计的初衷是使用一个可执行程序完成所有相关工作。软件通过命令行执行自定义的脚本语言运行,脚本语言包括一系列与分子动力学相关的命令及简单的控制语句、数学运算、变量设置和文件操作。其命令涵盖从建模到能量最小化到动力学计算乃至轨迹分析的各个方面,使其成为一个可以独立使用的一体化工具。
  • 高级算法丰富,如可极化力场和隐式溶剂均有多种算法可供选择。

其他

  • 并行效率:CHARMM在很长时间内一直使用粒子分解的并行模式,该模式要求节点间的all-to-all通讯,使得程序在可扩展性上大大落后于几个主流同类软件。2013年前后,CHARMM从c37版本开始针对软件性能进行集中优化,一方面针对各种相互作用进行串行算法优化,包括减少内循环的代码分支,采用SIMD intrinsics实现内循环,以及采用查表代替解析函数计算库伦势及范德华作用力,另一方面纳入新的基于空间分解的并行模块DOMDEC,实现由D.E. Shaw首先提出的“eighth-shell”空间分解模型。在并行模式方面,除了空间分解,PME静电相互作用中的倒空间计算被分离到单独的处理单元上运行。新版本的CHARMM支持动态负载平衡,方式与GROMACS类似,通过在x-、y-、z-轴上依次调整home box的线度实现。重写的MD引擎目前只与有限的功能模块兼容。
  • 异构加速:当前版本的CHARMM有三个不同模块提供GPU支持,分别是GPU、DOMDEC和OPENMM,其中GPU为较早的实现,已不常使用。OPENMM模块通过提供接口利用OpenMM库对GPU的支持实现GPU加速。DOMDEC模块支持的GPU选项为较新近实现的CHARMM内置异构加速算法。该算法基于NVIDIA CUDA库(as of 2014),核心程序实现为独立的C++库。算法采用offload实空间非成键力计算的方式利用GPU的计算能力,并通过MPI支持多GPU运算。CPU负责除实空间非成键力以外的所有运算。算法要求每一个GPU对应一个MPI rank,即空间划分中的一个单元,CPU部分可通过OpenMP实现多线程并行。目前该模块除支持无偏全原子动力学外还支持多种约束条件和ENSEMBLE模块,并计划支持更多的高级算法功能。
  • 辅助工具:现有两个网站为CHARMM提供基于Web的脚本生成辅助,分别是CHARMM-GUI (http://www.charmm-gui.org/)和CHARMMing(https://www.charmming.org)。另外有基于Perl的工具集MMTSB,通过运行CHARMM并令其执行自动生成的命令为常见的分子动力学任务提供简化的API。


参考资料

  • Brooks, Bernard R., et al. “CHARMM: a program for macromolecular energy, minimization, and dynamics calculations.” Journal of computational chemistry 4.2 (1983): 187-217. 4045
  • Brooks, Bernard R., et al. “CHARMM: the biomolecular simulation program.” Journal of computational chemistry 30.10 (2009): 1545-1614. 3248


Comments are Closed