news 2026/1/13 12:14:21

分子动力学轨迹分析工具:高效、灵活的 TorchMD 分子动力学轨迹分析与可视化工具集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
分子动力学轨迹分析工具:高效、灵活的 TorchMD 分子动力学轨迹分析与可视化工具集

分子动力学轨迹分析工具

源码:分子动力学轨迹分析工具:分子动力学轨迹分析工具 - AtomGit | GitCode

高效、灵活的 TorchMD 分子动力学轨迹分析与可视化工具集

这个项目提供了完整的工具集,用于读取、分析和可视化 TorchMD 生成的分子动力学轨迹文件。

✨ 核心特性

  • 🎯多格式支持:自动识别和处理多种轨迹数据格式
  • 📊全面分析:RMSD、位移、质心运动、原子间距离等多种分析
  • 🎨丰富可视化:2D/3D轨迹图、统计图、投影图等
  • 🔧高度可配置:灵活的命令行参数和配置选项
  • 🚀快速上手:简洁的API,详细的使用文档

📦 快速开始

环境配置

# 克隆或下载项目 cd mdtool # 安装依赖 pip install -r requirements.txt # 可选:安装Jupyter(用于交互式分析) pip install jupyter

基本使用

1. 命令行工具(推荐)
# 快速分析 python analyze_trajectory.py # 指定轨迹文件 python analyze_trajectory.py mytrajectory.npy # 查看帮助 python analyze_trajectory.py --help
2. Jupyter Notebook(交互式)
jupyter notebook trajectory_analysis.ipynb
3. 快速预览
python simple_trajectory_plot.py

📂 项目结构

mdtool/ ├── README.md # 项目说明文档 ├── requirements.txt # Python依赖包列表 ├── 使用指南.md # 详细使用指南 ├── 文件命名说明.md # 文件命名规则说明 ├── mytrajectory.npy # 示例轨迹文件 │ ├── analyze_trajectory.py # ⭐ 完整分析工具(主工具) ├── simple_trajectory_plot.py # 快速可视化工具 ├── trajectory_analysis.ipynb # Jupyter交互式分析 │ ├── test_examples.bat # Windows测试脚本 ├── test_examples.sh # Linux/Mac测试脚本 │ └── trajectory_analysis/ # 分析结果输出目录(自动创建) ├── mytrajectory_overview_*.png ├── mytrajectory_3d_*.png └── mytrajectory_rmsd_*.png

🛠️ 工具详解

1.analyze_trajectory.py- 完整分析工具

功能最全面的轨迹分析工具,适合专业分析场景。

核心功能:

  • 轨迹概览可视化
  • 3D轨迹投影图(XY/XZ/YZ平面)
  • RMSD和能量变化分析
  • 详细的统计信息
  • 原子位移和分布分析
  • 多种数据格式自动识别

命令行参数:

python analyze_trajectory.py [trajectory_file] [OPTIONS] 选项: --output-dir, -o 输出目录(默认:trajectory_analysis) --frame-step, -s 3D图降采样步长(默认:5) --show-plots 显示图形界面(默认只保存) --verbose, -v 显示详细输出 --help 显示帮助信息

使用示例:

# 自动搜索轨迹文件 python analyze_trajectory.py # 指定文件和输出目录 python analyze_trajectory.py mytrajectory.npy -o my_analysis # 自定义参数并显示图形 python analyze_trajectory.py trajectory.npy -s 10 --show-plots -v

2.simple_trajectory_plot.py- 快速可视化工具

轻量级可视化工具,适合快速查看轨迹特征。

核心功能:

  • 快速轨迹信息展示
  • 原子位置变化
  • 质心运动轨迹
  • 原子间距离变化

命令行参数:

python simple_trajectory_plot.py [trajectory_file] [OPTIONS] 选项: --output, -o 输出文件名(默认:trajectory_analysis_simple.png) --show-plots 显示图形界面 --help 显示帮助信息

使用示例:

# 快速查看 python simple_trajectory_plot.py # 自定义输出 python simple_trajectory_plot.py mytrajectory.npy -o quick_view.png

3.trajectory_analysis.ipynb- Jupyter Notebook

交互式分析环境,适合探索性分析和教学。

优势:

  • 分步骤执行分析
  • 实时修改参数
  • 可视化即时反馈
  • 适合教学演示

启动方法:

jupyter notebook trajectory_analysis.ipynb

分析流程:

  1. 加载轨迹数据

    找到轨迹文件: mytrajectory.npy 原始轨迹形状: (1, 688, 100, 3) 数据类型: float32 数值范围: [-0.730, 20.489] 检测到4维数据,正在进行维度重塑... 重塑后轨迹形状: (688, 3, 100) 轨迹信息: 原子数量: 688 坐标维度: 3 (X, Y, Z) 时间帧数: 100
  2. 生成综合分析图

    • 原子位移随时间变化(前5个原子)
    • 位置分布直方图(X/Y/Z轴)
    • 系统质心运动轨迹
    • 原子间距离变化
  3. 生成3D轨迹图

    • 完整3D轨迹
    • XY/XZ/YZ平面投影
  4. 计算RMSD并保存结果

    • RMSD统计:平均值、标准差、最大/最小值
    • 保存分析数据到文件

Notebook 输出示例:

成功生成的文件:

  • ✅ 综合分析图 (1.39 MB) - 包含6个子图的完整分析
  • ✅ 3D轨迹投影图 - 显示前6个原子的三维运动
  • ✅ RMSD数据文件 - 保存每一帧的RMSD值
  • ✅ 统计信息文件 - 详细的数值统计结果

📊 轨迹文件格式

TorchMD 生成的轨迹文件mytrajectory.npy格式为:

  • 标准格式:[原子数量, 3, 时间帧数]
  • 支持的格式:
    • [n_atoms, 3, n_frames]- 标准格式
    • [n_frames, n_atoms, 3]- 自动转置
    • [n_replicas, n_frames, n_atoms, 3]- 自动提取第一个副本
  • 坐标轴:0=X,1=Y,2=Z
  • 单位: 埃 (Å)

🔍 自动路径检测

所有脚本都会自动搜索以下路径中的轨迹文件:

  1. mytrajectory.npy
  2. ../mytrajectory.npy
  3. ../../mytrajectory.npy
  4. torchmd/examples/mytrajectory.npy
  5. ../torchmd/examples/mytrajectory.npy

📈 输出结果

图像文件

  1. 轨迹概览图(*_overview_*.png)

    • 原子位移随时间变化
    • 位置分布直方图
    • 系统质心运动
    • 原子间距离变化
  2. 3D轨迹投影图(*_3d_*.png)

    • 完整3D轨迹
    • XY平面投影
    • XZ平面投影
    • YZ平面投影
  3. RMSD和能量图(*_rmsd_*.png)

    • RMSD随时间变化
    • 动能变化趋势

统计信息

运行时输出包括:

  • 原子数量
  • 时间帧数
  • 坐标维度
  • RMSD统计(平均值、标准差、最大/最小值)

📊 Jupyter Notebook 分析结果

使用 Jupyter Notebook 进行交互式分析的详细输出:

数据解析结果
找到轨迹文件: mytrajectory.npy 原始轨迹形状: (1, 688, 100, 3) 数据类型: float32 数值范围: [-0.730, 20.489] 检测到4维数据,正在进行维度重塑... 重塑后轨迹形状: (688, 3, 100) 轨迹信息: 原子数量: 688 坐标维度: 3 (X, Y, Z) 时间帧数: 100
成功生成的可视化
  • 综合分析图(1.39 MB)

    • 原子位移:前5个原子的位移随时间变化
    • 位置分布:X、Y、Z三轴的原子位置概率密度
    • 质心运动:系统整体质心在三轴上的运动轨迹
    • RMSD变化:均方根偏差随时间的变化趋势
    • 原子间距离:原子1-2之间距离的变化
    • 方差分析:各坐标轴的位置方差对比
  • 3D轨迹投影图

    • 完整3D轨迹:前六个原子在三维空间中的完整运动轨迹
    • XY平面投影:轨迹在XY平面的投影
    • XZ平面投影:轨迹在XZ平面的投影
    • YZ平面投影:轨迹在YZ平面的投影
  • RMSD数据文件

    • 保存每一帧的RMSD值
    • 便于后续分析和处理
  • 统计信息文件

    • 详细的数值统计结果
    • 包括均值、标准差、最值等
关键发现
  • 系统规模: 688个原子的大型分子系统
  • 模拟时长: 100个时间帧的短时模拟
  • 数据维度: 4维数据成功重塑为标准的(原子数, 3, 帧数)格式
  • 数值范围: 原子位置在 -0.730Å 到 20.489Å 范围内
  • 结构变化: RMSD显示适度的结构波动(平均约1.5Å)
分析结论
  1. 结构稳定性: RMSD平均值约1.5Å表明系统整体结构相对稳定
  2. 运动范围: 原子在-0.730Å到20.489Å范围内运动,分布较广
  3. 质心漂移: 质心轨迹显示系统存在整体平移运动
  4. 原子运动: 不同原子表现出不同的运动模式,符合分子动力学特征
  5. 数据完整性: 数据重塑成功,所有指标计算正常

📚 分析指标说明

Notebook 分析步骤

步骤1:数据加载和预处理

  • 自动搜索轨迹文件路径
  • 读取 .npy 格式的轨迹数据
  • 检测并转换数据格式(4D → 3D)
  • 验证数据完整性

步骤2:轨迹概览分析

  • 计算前5个原子的位移
  • 绘制X/Y/Z轴位置分布
  • 计算并可视化质心轨迹
  • 分析原子间距离变化
  • 保存综合分析图

步骤3:3D轨迹可视化

  • 选择前6个原子进行3D绘图
  • 绘制完整3D轨迹
  • 生成XY/XZ/YZ平面投影
  • 降采样优化显示效果

步骤4:RMSD计算和分析

  • 以第一帧为参考计算RMSD
  • 统计RMSD的均值、标准差、最值
  • 生成RMSD随时间变化曲线
  • 保存RMSD数据和分析结果

步骤5:结果保存

  • 生成时间戳标识的文件名
  • 保存所有可视化图像
  • 导出统计数据到文本文件
  • 保存RMSD数值数据

RMSD (Root Mean Square Deviation)

  • 定义: 相对于参考结构的均方根偏差
  • 用途: 衡量结构随时间的变化程度
  • 单位: Å
  • 解读: RMSD越大,结构变化越大

质心轨迹

  • 定义: 系统所有原子的平均位置
  • 用途: 观察整体平移运动
  • 单位: Å

原子间距离

  • 定义: 特定原子对之间的距离
  • 用途: 分析键长变化、分子振动
  • 单位: Å

🎯 使用场景

场景1:快速查看轨迹

python simple_trajectory_plot.py

场景2:完整分析报告

python analyze_trajectory.py mytrajectory.npy -o my_analysis --verbose

场景3:交互式探索

jupyter notebook trajectory_analysis.ipynb

场景4:批量分析

# Windows for %f in (*.npy) do python analyze_trajectory.py %f -o results_%~nf # Linux/Mac for f in *.npy; do python analyze_trajectory.py "$f" -o "results_${f%.npy}"; done

⚙️ 高级配置

自定义输出目录

python analyze_trajectory.py trajectory.npy -o custom_output

调整降采样步长

# 减少降采样,更详细但更慢 python analyze_trajectory.py trajectory.npy -s 2 # 增加降采样,更快但细节较少 python analyze_trajectory.py trajectory.npy -s 20

显示图形界面

python analyze_trajectory.py trajectory.npy --show-plots

🐛 故障排除

常见问题

  1. 找不到轨迹文件

    错误: 找不到 mytrajectory.npy 文件

    解决:

    • 检查文件是否在自动搜索路径中
    • 使用完整路径:python analyze_trajectory.py /full/path/to/file.npy
    • 确认文件存在:ls mytrajectory.npy
  2. 内存不足

    MemoryError

    解决:

    • 使用降采样:-s 10-s 20
    • 使用简化版本:python simple_trajectory_plot.py
    • 分批处理大文件
  3. 中文显示问题

    字体显示异常(方框或乱码)

    解决:

    • 安装中文字体:SimHei(Windows)或WenQuanYi(Linux)
    • 修改脚本中的字体设置
    • 或使用英文标签
  4. 导入错误

    ModuleNotFoundError: No module named 'numpy'

    解决:

    pip install -r requirements.txt

📝 示例输出

命令行工具输出

正在加载轨迹文件: mytrajectory.npy 原始轨迹形状: (688, 3, 100) 轨迹数据类型: float32 轨迹范围: [-0.730, 20.489] ================================================== 轨迹分析开始... ================================================== 1. 生成轨迹概览图... 2. 生成3D轨迹图... 3. 生成RMSD和能量分析图... 所有图片已保存到 trajectory_analysis/ 目录: - mytrajectory_overview_20251229_223234.png: 轨迹概览 - mytrajectory_3d_20251229_223234.png: 3D轨迹图 - mytrajectory_rmsd_20251229_223234.png: RMSD和能量分析 轨迹统计信息: 原子数量: 688 时间帧数: 100 坐标维度: 3 平均RMSD: 1.504 Å RMSD标准差: 0.319 Å 最大RMSD: 2.110 Å 最小RMSD: 0.000 Å

Jupyter Notebook 输出

单元格1: 数据加载

Found trajectory file: mytrajectory.npy Original trajectory shape: (1, 688, 100, 3) Data type: float32 Value range: [-0.730, 20.489] Detected 4D data, reshaping... Reshaped trajectory shape: (688, 3, 100) Trajectory info: Number of atoms: 688 Coordinate dimensions: 3 (X, Y, Z) Number of time frames: 100

单元格2: 轨迹概览分析

  • 生成综合分析图,包含6个子图
  • 自动保存到trajectory_analysis_results/comprehensive_analysis.png

单元格3: 3D轨迹可视化

  • 生成3D轨迹图和三个平面投影
  • 显示前6个原子的运动轨迹
  • 保存为trajectory_analysis_results/3d_trajectory.png

单元格4: RMSD计算和统计

RMSD Statistics: Mean: 1.504 Å Std Dev: 0.319 Å Min: 0.000 Å Max: 2.110 Å
  • 保存RMSD数据到trajectory_analysis_results/rmsd.npy
  • 保存统计信息到trajectory_analysis_results/statistics.txt

输出文件清单:

✅ comprehensive_analysis.png (1.39 MB) ✅ 3d_trajectory.png (1.23 MB) ✅ rmsd.npy (528 bytes) ✅ statistics.txt (349 bytes)

🚀 性能优化建议

  1. 大文件处理:

    • 使用--frame-step参数增加降采样
    • 考虑使用简化版工具simple_trajectory_plot.py
    • 分段处理长轨迹
  2. 批量分析:

    • 使用脚本批量处理多个文件
    • 考虑并行处理
  3. 存储优化:

    • 定期清理旧的输出结果
    • 使用适当的DPI设置(默认300 DPI)

📖 扩展功能

可以根据需要添加以下分析:

  • 原子簇分析
  • 氢键分析
  • 二次结构分析(蛋白质)
  • 扩散系数计算
  • 动态交叉相关分析
  • 径向分布函数(RDF)

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目基于 MIT 许可证开源。

🙋 常见问题

Q: 支持其他轨迹格式吗?
A: 目前主要支持 TorchMD 生成的.npy格式。可以通过修改load_trajectory函数来支持其他格式。

Q: 如何在服务器上使用?
A: 使用--show-plots参数可以禁用图形界面,只保存图片文件。

Q: 输出图片太大怎么办?
A: 可以修改代码中的dpi参数,或在保存时调整figsize

Q: 可以分析蛋白质轨迹吗?
A: 可以,只要是 TorchMD 生成的轨迹格式即可。对于特定的蛋白质分析,可以扩展功能模块。

📞 获取帮助

  • 查看 使用指南.md 获取详细说明
  • 查看 文件命名说明.md 了解输出文件命名规则
  • 查看代码中的文档字符串了解函数详情
  • 提交 Issue 报告问题或提出建议

🔗 相关资源

  • TorchMD 官方文档
  • Matplotlib 文档
  • NumPy 文档

开始分析你的分子动力学轨迹吧!🎉

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/13 10:48:32

论文AIGC痕迹太重?AI率92%暴降至5%!实测10款降AI工具(还有免费ai查重!)【2025年12月最新版】

2025年各大高校陆续引入AI检测系统,知网AIGC、维普AI、万方智能检测三大平台形成围剿之势。更狠的是,这些系统每个月都在更新算法——上个月能过的文章,这个月可能就亮红灯了。单纯的同义词替换、语序调整已经完全失效,降低ai率需…

作者头像 李华
网站建设 2026/1/4 21:59:37

jupyter notebook内核死机?重启PyTorch-CUDA-v2.8容器即可恢复

Jupyter Notebook内核死机?重启PyTorch-CUDA-v2.8容器即可恢复 在深度学习实验中,你是否曾经历过这样的场景:训练进行到一半,Jupyter Notebook突然卡住,内核显示“无响应”,强行刷新后依然连接失败&#xf…

作者头像 李华
网站建设 2026/1/13 0:08:34

2025最新!专科生必看10个AI论文平台测评,毕业论文轻松过!

2025最新!专科生必看10个AI论文平台测评,毕业论文轻松过! 2025年专科生论文写作新选择:AI平台测评全解析 随着人工智能技术的不断进步,AI在学术写作领域的应用越来越广泛。对于专科生而言,撰写毕业论文不仅…

作者头像 李华
网站建设 2026/1/5 6:17:40

本地没有GPU?使用PyTorch-CUDA-v2.8云镜像远程训练模型

本地没有GPU?使用PyTorch-CUDA-v2.8云镜像远程训练模型 在深度学习的世界里,算力就是生产力。可现实是,许多研究者、学生和开发者手头只有一台轻薄本,甚至还在用集成显卡的旧电脑——面对动辄几十GB显存的大模型,本地训…

作者头像 李华
网站建设 2026/1/4 18:57:11

ssh反向代理应用场景:通过PyTorch-CUDA-v2.8暴露本地服务

通过 SSH 反向代理暴露本地服务:基于 PyTorch-CUDA-v2.8 的远程开发实践 在深度学习项目中,一个常见的困境是:你手头有一台性能强劲的 GPU 服务器,但它藏在公司内网或校园防火墙之后,无法直接对外提供 Jupyter Noteboo…

作者头像 李华
网站建设 2026/1/4 22:56:40

github fork项目同步上游:更新你的PyTorch-CUDA-v2.8分支

GitHub Fork 项目同步上游:更新你的 PyTorch-CUDA-v2.8 分支 在深度学习工程实践中,一个常见的痛点是:你基于某个开源镜像(比如 PyTorch-CUDA-v2.8)做了定制化修改,但随着时间推移,原始仓库不断…

作者头像 李华