[toc]
由chatGPT生成
教程:使用 CHARMM 工具生成 LAMMPS 输入文件
工具背景
charmm2lammps.pl
和 lammps2pdb.pl
是由 Pieter J. in ‘t Veld 和 Paul Crozier 创建的工具,用于将 CHARMM 力场参数转化为适用于 LAMMPS 的输入文件,或者将 LAMMPS 的输出文件转化为 PDB 文件。
所需文件
- CHARMM 参数文件 (
par_<forcefield>.prm
) - CHARMM 拓扑文件 (
top_<forcefield>.rtf
) - CHARMM 坐标文件或 PDB 文件 (
<project>.crd
或<project>.pdb
) - CHARMM PSF 文件 (
<project>.psf
)
工具说明
charmm2lammps.pl
: 将 CHARMM 文件转换为 LAMMPS 数据文件。lammps2pdb.pl
: 将 LAMMPS 输出文件转化为 PDB 格式。
文件结构
该工具目录下包含以下内容:
- Perl 脚本
charmm2lammps.pl
- Perl 脚本
lammps2pdb.pl
- 两个示例文件夹,展示工具的使用方法。
- 一个 “other” 文件夹,包含其他有用的工具。
使用 charmm2lammps.pl
基本命令
1 | perl charmm2lammps.pl <forcefield> <project> [-option=value ...] |
<forcefield>
: CHARMM 力场名称(如all22_prot
)。<project>
: PSF 和 CRD 文件的通用前缀。- 可选参数:
-help
:显示可用选项。-nohints
:不添加 CHARMM 类型的注释到 LAMMPS 数据文件。-water
:在晶格中加入 TIP3P 水分子(默认密度为 1 g/cm³)。-ions
:添加 Na+/Cl- 离子以中和分子电荷(默认无)。-border
:添加模拟盒边界的宽度(单位 Å,默认 0)。-cmap
:添加 CMAP 部分用于处理蛋白质的二面角修正。
示例命令
假设需要将 CHARMM 文件转化为 LAMMPS 文件:
1 | perl charmm2lammps.pl all27_na 1ac7 -border=2.0 -water -ions |
- 这里的
all27_na
是 CHARMM 力场文件,1ac7
是项目名称。
使用 lammps2pdb.pl
基本命令
1 | perl lammps2pdb.pl <project> |
<project>
: LAMMPS 输出文件前缀。
示例命令
1 | perl lammps2pdb.pl 1ac7 |
此命令将 1ac7
的 LAMMPS 输出文件转化为 PDB 文件。
示例流程:从 CHARMM 文件到 LAMMPS 输入
获取 PDB 文件
- 访问 RCSB PDB 数据库 下载目标分子的 PDB 文件。
- 示例:下载
1ac7.pdb
。
清理 PDB 文件
- 如果 PDB 文件包含多个模型,保留所需模型,删除其他部分。
- 保存为
1ac7_pared.pdb
。
准备 CHARMM 力场文件
- 下载 CHARMM 力场文件,例如 CHARMM 官方网站。
- 示例:使用
all27_na
力场。
生成 PSF 文件
- 使用 VMD 的
psfgen
工具生成 PSF 文件。 - 创建
1ac7.pgn
文件,内容如下:1
2
3
4
5
6
7
8
9
10
11
12package require psfgen
topology top_all27_na.rtf
pdbalias residue A ADE
pdbalias residue T THY
pdbalias residue G GUA
pdbalias residue C CYT
segment A {pdb 1ac7_pared.pdb}
coordpdb 1ac7_pared.pdb A
guesscoord
writepdb 1ac7.pdb
writepsf charmm 1ac7.psf
exit - 运行命令:
1
vmd -dispdev none -e 1ac7.pgn
- 使用 VMD 的
运行
charmm2lammps.pl
转换文件1
perl charmm2lammps.pl all27_na 1ac7 -border=2.0 -water -ions
- 该命令会生成 LAMMPS 所需的
.data
文件和输入脚本。
- 该命令会生成 LAMMPS 所需的
运行 LAMMPS 模拟
- 使用生成的 LAMMPS 数据文件和输入脚本:
1
lmp_mpi -in 1ac7.in
- 使用生成的 LAMMPS 数据文件和输入脚本:
将 LAMMPS 输出转换为 PDB 文件
1
perl lammps2pdb.pl 1ac7
- 输出
.pdb
文件,可用于可视化。
- 输出
进阶说明
处理蛋白质时的 CMAP 修正
- 蛋白质模拟中,需添加 CMAP 修正以处理二面角。
- 示例命令:
1
perl charmm2lammps.pl all36_prot 1gb1 -border=2.0 -cmap=36 -water -ions
- 确保下载并使用与力场版本匹配的 CMAP 文件(如
charmm36.cmap
)。
控制离子浓度
- 使用
-ions
参数设置离子浓度。1
perl charmm2lammps.pl all27_na 1ac7 -ions=0.5
0.5
表示 0.5 mol/L 的 Na+ 和 Cl-。
“Other” 文件夹内容
mkpdb.f
: 使用 Fortran 将 LAMMPS dump 文件转换为 PDB 格式。mkdcd.f
: 将 LAMMPS dump 文件转换为 CHARMM 格式的 DCD 轨迹文件。crd2pdb.pl
: 将 CRD 文件转换为 PDB 文件。pdb_to_crd.f
: 将 PDB 文件转换为 CRD 文件。
总结
使用 charmm2lammps.pl
和 lammps2pdb.pl
工具可以方便地在 CHARMM 和 LAMMPS 之间进行文件格式转换。这些工具支持多种选项,可满足不同的模拟需求。通过示例流程可以快速掌握从 PDB 文件到 LAMMPS 输入文件的构建方法。