Amber(Assisted Model Building with Energy Refinement)是广泛用于生物大分子(如蛋白质、核酸)分子动力学(MD)模拟的软件套件。其文件体系主要包括三类核心文件:拓扑文件(Topology) 、坐标文件(Coordinate/Restart) 和 轨迹文件(Trajectory)。下面对这三类文件进行系统、详细的介绍,包括格式、内容、用途及注意事项,并介绍如何在不同格式之间进行转换。
详细信息以及更多关于文件格式的案例请参考Amber官方介绍文档:
https://ambermd.org/FileFormats.php

一、Amber 核心文件格式
1. 拓扑文件(Topology)
- 扩展名 :
.prmtop或.top - 作用:描述系统的分子结构信息,包括原子类型、键、角、二面角、非键参数、电荷等。
- 格式:NetCDF 或 ASCII(旧版为纯文本,新版可选 NetCDF)
- 不可编辑性 :通常由
tleap生成,不建议手动修改。
2. 初始坐标文件(Coordinate / Restart)
- 扩展名 :
.inpcrd、.rst7、.rst、.crd - 作用:包含原子的初始三维坐标(有时也含速度)
- 格式 :
.inpcrd:ASCII 格式,常用于输入.rst7:重启文件,ASCII 或二进制(NetCDF),包含坐标+速度+盒子信息
- 注意 :
.rst7和.inpcrd内容类似,但.rst7可用于续跑模拟
3. 轨迹文件(Trajectory)
- 扩展名 :
.mdcrd:ASCII 坐标轨迹(仅坐标,无速度).netcdf(或.nc):二进制 NetCDF 格式,高效存储坐标、速度、盒子等.dcd:虽然不是原生 Amber 格式,但可通过插件支持(常用于 VMD)
二、拓扑文件(Topology File)
✅ 文件扩展名
.prmtop(最常见,推荐).top(旧版或简化命名,但易与 GROMACS 的.top混淆)
注:
.prmtop= parameter topology
📄 文件格式
- ASCII 文本(人类可读,但结构复杂)
- 也可编译为 NetCDF 二进制格式(较少见,需特殊编译选项)
🔍 内容结构(关键部分)
拓扑文件描述系统的静态分子结构和力场参数,不包含原子坐标。主要包含:
| 部分 | 说明 |
|---|---|
%VERSION |
文件版本标识 |
%FLAG TITLE |
系统标题(如 "Protein in water") |
%FLAG POINTERS |
整数数组,记录各类项的数量(如原子数、残基数、键数等) |
%FLAG ATOM_NAME |
原子名称列表(如 N, CA, C, O, HA 等) |
%FLAG CHARGE |
原子电荷(单位:电子电荷 × 18.2223,需除以 18.2223 得实际值) |
%FLAG MASS |
原子质量(amu) |
%FLAG ATOM_TYPE_INDEX / %FLAG AMBER_ATOM_TYPE |
原子类型(如 "CT", "OH", "N3") |
%FLAG BONDS_INC_HYDROGEN / BONDS_WITHOUT_HYDROGEN |
键连接信息(含/不含氢) |
%FLAG ANGLES, %FLAG DIHEDRALS |
角、二面角参数索引 |
%FLAG NONBONDED_PARM_INDEX, %FLAG LENNARD_JONES_ACOEF/BCOEF |
范德华参数(LJ A/B 系数) |
%FLAG RESIDUE_LABEL |
残基名称列表(如 ALA, GLU, WAT) |
%FLAG RESIDUE_POINTER |
每个残基起始原子索引 |
⚙️ 生成方式
-
通过
tleap(AmberTools 中的构建工具)生成:source leaprc.protein.ff14SB mol = loadpdb protein.pdb solvatebox mol TIP3PBOX 10.0 saveamberparm mol system.prmtop system.inpcrd
⚠️ 注意事项
- 不可手动编辑:结构严格依赖指针顺序,修改极易出错。
- 力场绑定 :
.prmtop已内嵌力场参数,无需额外指定力场文件(与 GROMACS 不同)。 - 电荷单位 :电荷存储为
q * 18.2223(因 Amber 使用 kcal/mol 单位制),读取时需还原。
三、坐标文件(Coordinate / Restart File)
用于存储某一时刻的原子坐标(有时含速度),常用于:
- 初始结构输入
- 模拟重启(续跑)
- 能量最小化/单点计算输入
✅ 常见扩展名
| 扩展名 | 格式 | 是否含速度 | 是否含盒子 | 用途 |
|---|---|---|---|---|
.inpcrd |
ASCII | ❌ | ✅(若溶剂化) | 初始坐标输入 |
.rst7 / .rst |
ASCII 或 NetCDF | ✅ | ✅ | 重启文件(推荐) |
.crd |
ASCII(旧版) | ❌ | ❌ | 早期格式,已少用 |
注:
.rst7中的 "7" 表示每行最多 7 个浮点数(历史原因)
📄 文件格式示例(.inpcrd ASCII)
default_name
2560
-22.1234567 -10.2345678 15.3456789
...
50.0000000 50.0000000 50.0000000 90.0000000 90.0000000 90.0000000
- 第1行:标题
- 第2行:原子总数
- 接下来:每行3个坐标(x, y, z),单位 Å(埃)
- 最后一行(若有):盒子向量(a, b, c, α, β, γ)
📄 .rst7 格式(含速度)
- 前 N 行:坐标(同
.inpcrd) - 接下来 N 行:速度(单位:Å/ps)
- 最后一行:盒子信息 + 时间(可选)
⚙️ 生成方式
tleap生成初始.inpcrdsander/pmemd模拟中通过ntwx,ntpr,ntwr控制输出.rst7
⚠️ 注意事项
- 单位统一 :坐标单位始终为 Å
- 盒子信息:真空模拟可能无盒子行,溶剂化体系必须有
- NetCDF 重启文件 :扩展名常为
.ncrst,体积小、读写快,但需 NetCDF 库支持
四、轨迹文件(Trajectory File)
记录模拟过程中多个时间步的原子坐标(有时含盒子、速度),用于后续分析。
✅ 常见扩展名与格式
| 扩展名 | 格式 | 内容 | 特点 |
|---|---|---|---|
.mdcrd |
ASCII | 仅坐标(可选盒子) | 人类可读,体积大 |
.nc / .netcdf |
二进制(NetCDF) | 坐标 + 速度 + 盒子 + 时间 | 高效、压缩、推荐 |
.dcd |
二进制(CHARMM 格式) | 仅坐标 | 需插件支持,VMD 兼容好 |
Amber 原生推荐使用 NetCDF(自 Amber12 起默认)
📄 .mdcrd 格式特点
-
每帧:先一行盒子信息(可选),然后每行 10 个浮点数(x/y/z 交错)
-
示例:
frame 1: box = 50.0 50.0 50.0 90 90 90 -22.1234 -10.2345 15.3456 -21.9876 -10.1234 15.4567 ... -
缺点:文件巨大,精度受限(通常 6 位有效数字)
📄 NetCDF 轨迹(.nc)
- 自描述格式,包含维度(frame, atom)、变量(coordinates, cell_lengths, cell_angles)
- 支持压缩(
-c选项) - 可用
ncdump -h traj.nc查看结构
⚙️ 控制输出(在 mdin 输入文件中)
ntwx = 500, ! 每500步写坐标到 mdcrd/nc
ntpr = 500, ! 每500步写能量到 mdout
ioutfm = 1, ! 1=NetCDF, 0=mdcrd
⚠️ 注意事项
- 不要用文本编辑器打开
.nc:是二进制文件! - 轨迹不含拓扑 :必须配合
.prmtop才能解析原子身份 - 速度通常不存 :除非显式设置
ntwv = 1
五、三类文件关系总结
| 文件类型 | 是否必需 | 是否含力场 | 是否含坐标 | 是否含速度 | 是否含盒子 |
|---|---|---|---|---|---|
.prmtop |
✅ 是 | ✅ 是 | ❌ 否 | ❌ 否 | ❌ 否 |
.inpcrd / .rst7 |
✅ 是(初始) | ❌ 否 | ✅ 是 | 部分 | ✅(通常) |
.mdcrd / .nc |
❌ 否(分析用) | ❌ 否 | ✅ 是 | ❌(通常) | ✅(可选) |
💡 MD运行的必须文件(系统的拓扑文件和坐标文件) :
system.prmtop+system.rst7
常用查看与操作工具
| 任务 | 工具 |
|---|---|
| 查看拓扑信息 | parmed system.prmtop "printDetails" |
| 提取单帧坐标 | cpptraj -p prmtop -y traj.nc -x frame.pdb |
| 转换轨迹格式 | cpptraj,见下文 |
| 可视化 | VMD(需加载 .prmtop + .nc/.mdcrd) |
| 检查盒子/电荷 | parmed Python API |
常见误区
.prmtop≠ PDB:它不含3D结构,只有连接性和参数。.inpcrd不是重启文件 :不含速度,不能用于续跑(需.rst7)。- NetCDF 轨迹不是"视频":只是高效存储的数值数组。
- 坐标单位永远是 Å:与 GROMACS(nm)不同,转换时需注意!
六、常用格式转换方法
Amber 自带工具(如 cpptraj、parmed)以及第三方工具(如 MDAnalysis、OpenMM、VMD)可用于格式转换。
1. 使用 cpptraj(AmberTools 内置)
示例:将 .mdcrd 转为 .dcd
cpptraj -p system.prmtop <<EOF
trajin trajectory.mdcrd
trajout trajectory.dcd dcd
run
EOF
示例:将 NetCDF 轨迹转为 .mdcrd
cpptraj -p system.prmtop <<EOF
trajin trajectory.nc
trajout trajectory.mdcrd mdcrd
run
EOF
2. 使用 parmed(功能更强大,支持拓扑操作)
示例:将 Amber 文件转为 GROMACS 格式
# 在 Python 中使用 parmed
import parmed as pmd
# 加载 Amber 系统
amber = pmd.load_file('system.prmtop', 'system.inpcrd')
# 转换并保存为 GROMACS 格式
amber.save('system.gro')
amber.save('system.top')
注意:需确保力场兼容(如 AMBER ff14SB → GROMACS 的 amber99sb-ildn 等)
3. 使用 MDAnalysis(Python 库)
import MDAnalysis as mda
from MDAnalysis.coordinates import DCD
u = mda.Universe('system.prmtop', 'trajectory.mdcrd')
with mda.Writer('output.dcd', n_atoms=u.atoms.n_atoms) as W:
for ts in u.trajectory:
W.write(u.atoms)
4. 使用 OpenMM(支持多种格式互转)
OpenMM 可读取 .prmtop + .inpcrd,并输出为 PDB、DCD、HDF5 等。
from openmm.app import *
from openmm import *
from simtk.unit import *
pdb = PDBFile('reference.pdb') # 可选,用于原子名匹配
prmtop = AmberPrmtopFile('system.prmtop')
inpcrd = AmberInpcrdFile('system.inpcrd')
# 创建系统并保存为其他格式(如 PDB)
with open('output.pdb', 'w') as f:
PDBFile.writeFile(prmtop.topology, inpcrd.positions, f)
常见转换场景总结
| 源格式 | 目标格式 | 工具推荐 |
|---|---|---|
.prmtop + .inpcrd |
.pdb |
cpptraj, OpenMM, parmed |
.mdcrd |
.dcd |
cpptraj, MDAnalysis |
.nc (NetCDF) |
.xtc |
cpptrij(需编译 NetCDF 支持)或 MDAnalysis |
| Amber → GROMACS | .gro + .top |
parmed |
| Amber → CHARMM/NAMD | .psf + .dcd |
VMD + parmed |
注意事项
- 单位系统:Amber 使用 Å(埃)和 kcal/mol,而 GROMACS 使用 nm 和 kJ/mol,转换时需注意单位。
- 周期性盒子信息 :某些格式(如
.mdcrd)可能不包含盒子信息,需从.rst7或.nc中提取。 - 速度信息 :只有重启文件(
.rst7、.nc)包含速度,普通轨迹(.mdcrd)不含。 - NetCDF 支持:确保 AmberTools 编译时启用了 NetCDF(现代版本默认支持)。
可用的转换工具
-
AmberTools (含
cpptraj,parmed,tleap):conda install -c conda-forge ambertools -
MDAnalysis :
pip install mdanalysis -
OpenMM :
conda install -c conda-forge openmm
对拓扑文件(.prmtop/.top)用来描述分子结构与力场参数,坐标文件(.inpcrd/.rst7)存储原子坐标和速度,轨迹文件(.mdcrd/.nc/.dcd)记录模拟轨迹。
本文对这三类文件进行了系统、详细的介绍,包括格式、内容、用途及注意事项,并介绍如何在不同格式之间进行转换。为分子动力学模拟做好准备。