计算化学公社
标题:
求助:怎么把amber的mdcrd轨迹文件转为gromacs的xtc?
[打印本页]
作者Author:
灵芝5
时间:
2023-12-27 18:09
标题:
求助:怎么把amber的mdcrd轨迹文件转为gromacs的xtc?
老师,您好:
我用amber跑了一段轨迹,文件格式是mdcrd。想转成gromacs的xtc格式,再对轨迹进行处理。我按照下面的步骤转化:
(1)先用cpptraj的指令把mdcrd转成xtc。
(2)再用acpype.py脚本,把prmtop和inpcrd转成top和gro。
(3)再用gromacs的editconf把gro转成pdb。之后开始处理轨迹。
但是在center轨迹的时候,需要用到trjconv的-pbc选项,这个选项只能用初始结构的tpr作为参考结构。但是我没有。
请问老师怎么获得初始结构的tpr文件?或者有其它方法可以顺利转化并处理xtc轨迹吗?
谢谢老师!
作者Author:
mol
时间:
2023-12-27 18:35
您通过(2)获取到top和gro之后就可以用grompp命令生成tpr文件了
作者Author:
灵芝5
时间:
2023-12-27 21:29
老师,您好:
谢谢您的解答!
我试了用(2)获取到top和gro和grompp命令生成tpr文件,但是程序报错如下:
应该是体系中有POPC的原因。请问这个怎么解决?我把top和gro文件上传到附件了。
谢谢您。
作者Author:
FanZhou
时间:
2025-8-19 16:48
灵芝5 发表于 2023-12-27 21:29
老师,您好:
谢谢您的解答!
我在别处看到
sed 's/ 2C / CT /g' system_solv_GMX.top | sed 's/ 3C / CT /g' | sed 's/ IP / Na+/' | sed 's/ IM / Cl-/' > system_solv_GMX_corr.top
链接:
https://jamesmccarty.github.io/r ... er2gro#reorder-ions
希望有帮助
作者Author:
许正东
时间:
2025-10-24 08:23
老师好,请问您最后解决了吗?tpr文件生成出来了吗?还有就是amber生成的轨迹,转为gromacs-xtc后,需要去周期性吗?
作者Author:
Shinecyh
时间:
2025-12-20 20:28
我之前也找了好久怎么转换,后面发现MDAnalysis包非常方便。下面是我写的代码,记得在有MDAnalysis的环境中运行:
#!/usr/bin/env python
"""
Amber转Gromacs极简脚本
"""
import MDAnalysis as mda
import sys
def convert_amber_to_gmx(prmtop, nc_traj, output_prefix="system"):
"""
最简单的转换函数
"""
print(f"转换: {prmtop} + {nc_traj} -> {output_prefix}.{{gro,xtc}}")
# 1. 加载文件
print("加载Amber文件...")
u = mda.Universe(prmtop, nc_traj)
print(f" 原子数: {len(u.atoms):,}")
print(f" 残基数: {len(u.residues):,}")
print(f" 轨迹帧数: {len(u.trajectory):,}")
# 2. 保存第一帧为gro
print("保存结构文件...")
u.trajectory[0] # 跳转到第一帧
u.atoms.write(f"{output_prefix}.gro")
print(f" ✓ {output_prefix}.gro")
# 3. 保存轨迹为xtc
print("转换轨迹文件...")
with mda.Writer(f"{output_prefix}.xtc", u.atoms.n_atoms) as W:
for i, ts in enumerate(u.trajectory):
W.write(u.atoms)
if i % 100 == 0:
print(f" 已处理 {i+1}/{len(u.trajectory)} 帧")
print(f" ✓ {output_prefix}.xtc")
print("转换完成!")
return f"{output_prefix}.gro", f"{output_prefix}.xtc"
# 命令行接口
if __name__ == "__main__":
if len(sys.argv) < 3:
print("用法: python amber2gmx.py amber.prmtop trajectory.nc [output_prefix]")
print("示例: python amber2gmx.py system.prmtop md.nc system")
sys.exit(1)
prmtop_file = sys.argv[1]
nc_file = sys.argv[2]
output = sys.argv[3] if len(sys.argv) > 3 else "system"
convert_amber_to_gmx(prmtop_file, nc_file, output)
复制代码
作者Author:
sobereva
时间:
2025-12-21 06:03
VMD载入AMBER的轨迹,save coordinte选择trr保存新轨迹就完事了(之后可以trjconv再转成xtc),这是最简单的做法,都用不着脚本
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3