Packmol

关注
义项:分子建模初始化工具
Packmol

Packmol是一款用于构建分子动力学模拟初始构型的开源科学计算工具,其做法是把分子按指定数目填充到空间中事先划定的区域里,并保证不同分子的原子之间保持足够间距,从而避免短程排斥作用破坏后续模拟。使用者只需提交每一种分子的单个结构坐标、需要的分子数量以及各类几何约束,就能生成混合物、界面、溶剂化体系等复杂体系的初始坐标。该工具自2003年推出以来在计算化学与分子模拟领域被广泛采用。[1][2]

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Packmol是一款自由软件,用途是为分子动力学模拟准备起始构型。它把若干种分子按照使用者设定的数量塞进三维空间中被约束规定的区域,并使任意两个来自不同分子的原子之间距离不小于设定的容差,因此得到的结构不会因为原子严重重叠而在模拟一开始就出现巨大排斥力。[1]

这一工具用Fortran语言编写,通过命令行读取文本格式的输入文件运行,输入文件可以读取PDB、TINKER、XYZ、MOLDY等常见坐标格式。[2]

它解决的是所谓“填充问题”:给定分子结构与几何约束,寻找每个分子的位置与取向,使全部原子既落在允许区域内,又彼此保持安全间距。[3]

原理

Packmol把每个分子当作刚体处理,只调整其整体位置与取向,不改变分子内部的键长和键角。设第$i$个分子中第$j$个原子的初始坐标为$a_{ij}$,旋转矩阵为$R(\theta_i)$,平移向量为$c_i$,则变换后的坐标为$p_{ij}=c_i+R(\theta_i)a_{ij}$。求解目标是让每个原子满足几何约束$g_{ij}(p_{ij})\leq 0$,同时任意两个不同分子上的原子满足$\|p_{ij}-p_{i'j'}\|\geq d_{tol}$,其中$d_{tol}$是使用者给出的距离容差。[3]

求解时,几何约束与原子间距要求都被并入同一个目标函数:约束未满足时对应的惩罚项取正值,满足时为零,再对这些平方项求和,用基于梯度的数值优化方法不断下降该函数值,直至所有约束和间距条件都得到满足。程序还会并行计算目标函数及其导数以加快速度。[3]

空间约束的表达方式是关键词加几何体。程序支持在立方体、长方体、球、椭球、圆柱、平面等区域内侧或外侧放置分子,也可以固定分子位置、限制其旋转,或者只约束分子中的某几个原子,从而构造层状、球状、管状等有序排列。[4]


flowchart LR

A[输入文件: 容差 文件类型 结构 数目 几何约束] --> B[随机赋予初始位置与取向]

B --> C[计算目标函数与梯度]

C --> D[梯度下降优化 并行化]

D --> E{约束与间距是否满足}

E -- 否 --> C

E -- 是 --> F[输出坐标文件]

发展历程

这一填充算法最早在2003年由J. M. Martinez与L. Martinez提出,当时以概念验证性质的软件包形式发布,此后持续迭代,并被大量分子模拟研究者使用。[3]

2009年,L. Martinez、R. Andrade、E. G. Birgin与J. M. Martinez在《Journal of Computational Chemistry》第30卷第13期发表论文,系统阐述了该程序的数学模型、目标函数与梯度计算、优化与并行化方法,并给出若干算例,这一文献通常被使用者引用作为软件出处。[5][3]

程序早期版本使用自定义的许可条款,2018年更新的版本改为采用MIT许可证发布,成为可自由使用、修改和再分发的开源软件。

版本号以年份与序号组合,长期保持更新,例如2024年7月13日发布的20.15.0版本加入了周期性边界条件的输入项;进入21系列后,程序继续通过各Linux发行版的软件仓库分发,并为多种平台提供预编译包。[6][7]

应用

最常见的用法是把生物大分子溶于水或其他溶剂,即先固定溶质,再让溶剂分子填满溶质以外的区域,得到可用于模拟的溶剂化构型;也可以构造水、乙醇、二甲基亚砜等溶剂混合物以及盐溶液。[3][6]

由于可以分别限制同一分子中不同原子所处的区域,它常被用来搭建有序体系,例如层状、球状或管状的脂质双分子层、胶束以及膜蛋白嵌入的膜体系。[1][3]

生成的坐标文件被广泛接入后续模拟流程:教程中以它为LAMMPS建立水盒、乙醇与水的两相体系,再交给可视化工具补全键连接;也有工作流把它产出的结构转换为SIESTA等第一性原理程序所需的输入,或用于金属有机框架与离子的混合体系建模。[4][8][6]

为降低使用门槛,社区还开发了若干外围界面:面向VMD的图形界面把参数设置、分子导入、几何约束绘制和输入文件生成整合在一起,支持在三维视图里直接圈定约束区域;也有面向浏览器的随机填充实现,用蒙特卡洛逐分子试放并逐步收紧容差,无需本地安装。[6][9]

局限

默认情况下,程序会先按结构关键词把每种分子在各自区域内单独填充,之后再处理不同种类分子之间的冲突。当不同组分占据同一片空间,例如构成膜的多类脂质混在一起时,这种做法对同层与层间重叠处理不足,容易在输出结构中出现过度缠结和穿插。[6]

分子被当作刚体,因此分子内部的构象不会在填充过程中调整;对于刚性且细长的链状分子,程序可能长时间难以收敛。使用者也应注意,输出结果只是模拟的起始点,并非已经平衡的构型。[10][1]

参数设置不当会直接导致失败。距离容差设得过小会使分子难以找到安放位置而迟迟不收敛,容差偏大又会得到密度偏低、空隙偏多的结构;内外区域之间的间隙若小于容差,会形成自相矛盾的约束。给体系留出比所需体积更宽裕的空间、必要时固定随机种子以保证结果可重复,是常见的应对做法。[11][12][13]

另一类问题来自体系本身的性质。对熔盐一类需要从晶体结构出发的情形,用随机填充得到的无序构型并不合适;而环状分子在默认容差下有时会出现分子间被错误连接的现象,需要适当提高容差或使用逐步收紧容差的选项。[12][11]

由于算法需要反复比较原子间距离,计算量随体系规模增长较快;在浏览器端实现中,忽略氢原子可以把较大体系的计算时间压缩到原来的很小一部分,这也从侧面反映了全原子体系的开销。[9]

参见

  • 分子动力学 —— Packmol生成的结构通常作为这类模拟的起始构型。

  • VMD —— 常用来看出填充结果是否正确,并有整合Packmol参数的图形界面。

  • 脂质双分子层 —— 借助分区域约束可以搭建的典型有序体系。

  • 力场 —— 与初始构型配套使用,决定模拟中原子间相互作用的描述方式。

  • 周期性边界条件 —— 影响盒子尺寸设置与填充区域取值的一项模拟设定。

参考资料

  1. Packmol [引用日期2026-10-14]
  2. Documentation [引用日期2026-10-14]
  3. jcc [引用日期2026-10-14]
  4. LAMMPS Course for New Users: Creating a topology file [引用日期2026-10-14]
  5. ipubmed.cn 上的网页 [引用日期2026-10-14]
  6. acs.jcim [引用日期2026-10-14]
  7. packmol [引用日期2026-10-14]
  8. wavelength [27] [引用日期2026-10-14]
  9. Web-PackMol: A Molecular Packing Tool for the Web Browser [引用日期2026-10-14]
  10. run_packmol_agent [引用日期2026-10-14]
  11. Packmol - Initial configurations for Molecular Dynamics [引用日期2026-10-14]
  12. “Mod:Hunt Research Group/packmol 1”的版本间的差异 [引用日期2026-10-14]
  13. packmol [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T19:21:34Z

历史版本

本条目引用的词条
分子动力学 脂质双分子层 LAMMPS VMD 力场 周期性边界条件