Amber 分子动力学模拟4: Amber文件格式解读,转换

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 生成初始 .inpcrd
  • sander / 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

常见误区

  1. .prmtop ≠ PDB:它不含3D结构,只有连接性和参数。
  2. .inpcrd 不是重启文件 :不含速度,不能用于续跑(需 .rst7)。
  3. NetCDF 轨迹不是"视频":只是高效存储的数值数组。
  4. 坐标单位永远是 Å:与 GROMACS(nm)不同,转换时需注意!

六、常用格式转换方法

Amber 自带工具(如 cpptrajparmed)以及第三方工具(如 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

注意事项

  1. 单位系统:Amber 使用 Å(埃)和 kcal/mol,而 GROMACS 使用 nm 和 kJ/mol,转换时需注意单位。
  2. 周期性盒子信息 :某些格式(如 .mdcrd)可能不包含盒子信息,需从 .rst7.nc 中提取。
  3. 速度信息 :只有重启文件(.rst7.nc)包含速度,普通轨迹(.mdcrd)不含。
  4. 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)记录模拟轨迹。

本文对这三类文件进行了系统、详细的介绍,包括格式、内容、用途及注意事项,并介绍如何在不同格式之间进行转换。为分子动力学模拟做好准备。

相关推荐
E_ICEBLUE20 天前
Excel vs CSV:在系统数据处理中该如何选择?
java·excel·csv·格式转换
JaredYe1 个月前
纯 Node.js 的 PDF 转 Markdown 方案:支持图片解析的pdf2md库 `node-pdf-to-markdown`
pdf·node.js·markdown·md·pdf2md
小新ya1 个月前
本地md文件发给他人,图片显示不出来
md
科雷软件测试1 个月前
推荐几个常用的校验yaml、json、xml、md等多种文件格式的在线网站
xml·html·md·yaml
深海章鱼2 个月前
MD 基础学习2
学习·md
December3103 个月前
【图文教程】图片转pdf,从入门到精通
pdf·图片·格式转换·图片转换·图片转pdf·图转pdf
E_ICEBLUE3 个月前
三步完成 Markdown 到 Word/PDF 的转换:Python 教程
python·pdf·word·markdown·格式转换
码银3 个月前
docsify 本地部署完整配置模板 || 将md文件放到网页上展示
html·docsify·md
sinat_333518873 个月前
如何通过右键实现音视频/PDF/Office 一键格式转换?
格式转换·文件转换·多媒体格式转换