学习torchmd分子动力学模拟

TorchMD打算提供一种简单易用的API,用于使用PyTorch进行分子动力学。这使研究人员能够更快地进行力场开发研究,并以PyTorch的简单性和强大性将神经网络潜力无缝集成到动力学中。
TorchMD使用与经典MD代码(如ACEMD)一致的化学单位,即kcal/mol表示能量,K表示温度,g/mol表示质量,Å表示距离。
TorchMD目前正在进行中,请随时提供有关API或GitHub问题跟踪器中潜在错误的反馈。
还要检查TorchMD-Net是否具有快速准确的神经网络电位https://github.com/torchmd/torchmd-net/

TorchMD intends to provide a simple to use API for performing molecular dynamics using PyTorch. This enables researchers to more rapidly do research in force-field development as well as integrate seamlessly neural network potentials into the dynamics, with the simplicity and power of PyTorch.

TorchMD uses chemical units consistent with classical MD codes such as ACEMD, namely kcal/mol for energies, K for temperatures, g/mol for masses, and Å for distances.

TorchMD is currently WIP so feel free to provide feedback on the API or potential bugs in the GitHub issue tracker.

Also check TorchMD-Net for fast and accurate neural network potentials GitHub - torchmd/torchmd-net: Neural network potentials

 首先搭建torchmd环境:

torch环境这里略,主要思路就是到官网,根据cuda信息选择合适的安装包进行安装。 

使用conda安装分子动力学相关软件:

conda install moleculekit parmed jupyter -c acellera -c conda-forge -y
conda install -c conda-forge openmm -y

安装torchmd

pip install torchmd natsort

下载torchmd源代码

git clone https://openi.pcl.ac.cn/skywalk163/torchmd

测试torchmd

进入torchmd目录,然后执行:

python tests/test_torchmd.py 

输出:


Running test: tests/data/1dihedral/
  angle Energy diff: 3.243e-07 Force diff: 1.107e-05
  bond Energy diff: -3.986e-06 Force diff: 1.173e-04
  dihedral Energy diff: -5.242e-08 Force diff: 2.409e-07
  lennardjones Energy diff: 5.268e-09 Force diff: 3.749e-08
  electrostatic Energy diff: 1.477e-10 Force diff: 1.158e-09
All forces. Total energy: 0.747 Energy diff: -3.709e-06 Force diff 1.210e-04

Running test: tests/data/4dihedrals/
  angle Energy diff: 1.501e-06 Force diff: 4.117e-05
  bond Energy diff: -3.988e-06 Force diff: 1.139e-04
  dihedral Energy diff: -2.097e-07 Force diff: 2.221e-07
  lennardjones Energy diff: 1.472e-07 Force diff: 4.044e-07
  electrostatic Energy diff: -5.384e-09 Force diff: 2.444e-09
All forces. Total energy: 7.416 Energy diff: -2.555e-06 Force diff 1.446e-04

Running test: tests/data/2watersperiodic/
  angle Energy diff: 1.437e-06 Force diff: 2.273e-04
  bond Energy diff: -5.145e-06 Force diff: 8.183e-04
  dihedral Energy diff: 0.000e+00 Force diff: 0.000e+00
  lennardjones Energy diff: -5.396e-09 Force diff: 4.818e-04
  electrostatic Energy diff: -3.844e-07 Force diff: 1.260e-06
All forces. Total energy: -0.213 Energy diff: -4.098e-06 Force diff 1.528e-03
ok

----------------------------------------------------------------------
Ran 2 tests in 75.449s

OK

测试通过! 

 

调试

执行test报错ModuleNotFoundError: No module named 'natsort'

安装natsort

pip install natsort

执行test报错,File tests/data/prod_alanine_dipeptide_amber/structure.prmtop was not found.

~/work/paddlemd/torchmd/tests]$ python test_torchmd.py 

Traceback (most recent call last):
  File "/usr/home/skywalk/work/paddlemd/torchmd/tests/test_torchmd.py", line 474, in test_replicas
    mol = Molecule(os.path.join(testdir, "structure.prmtop"))
  File "/home/skywalk/miniconda3/lib/python3.10/site-packages/moleculekit/molecule.py", line 412, in __init__
    self.read(filename, **kwargs)
  File "/home/skywalk/miniconda3/lib/python3.10/site-packages/moleculekit/molecule.py", line 1369, in read
    raise FileNotFoundError(f"File {ff} was not found.")
FileNotFoundError: File tests/data/prod_alanine_dipeptide_amber/structure.prmtop was not found.
原来是没有在torchmd的根目录执行,改正:

~/work/paddlemd/torchmd]$ python tests/test_torchmd.py 

报错:ModuleNotFoundError: No module named 'openmm'

安装

pip install openmm

还是报错,原来包的名字是:openmm-systems

pip install openmm-systems

还是报错,咋回事呢? 还是用conda装吧

conda install -c conda-forge openmm -y

报错Could not find or import OpenMM version 7.0+

  File "/opt/conda/lib/python3.10/site-packages/parmed/utils/decorators.py", line 17, in new_fcn
    raise ImportError('Could not find or import OpenMM version 7.0+')
ImportError: Could not find or import OpenMM version 7.0+

conda安装7.1 还是不行,7.1没装上,不过在另一台机器8.1版本是ok的

使用import openmm,发现报错:

import openmm
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.10/site-packages/openmm/__init__.py", line 24, in <module>
    from openmm.openmm import *
  File "/opt/conda/lib/python3.10/site-packages/openmm/openmm.py", line 10, in <module>
    from . import _openmm
ImportError: /opt/conda/lib/python3.10/site-packages/openmm/../../../libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /opt/conda/lib/python3.10/site-packages/openmm/../../../libOpenMM.so.8.0)
 

按照网上讲的修改gcc版本等,都没生效。后来改为gpu环境,搞定。也就是换了个环境。不知道为什么有些环境就是会有GLIBCXX_3.4.30这样的报错。

报错Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

Traceback (most recent call last):
  File "/usr/home/skywalk/work/paddlemd/torchmd/tests/test_torchmd.py", line 514, in test_replicas
    assert np.abs(Epot[0] + 1722.3569) < 1e-4 and np.abs(Epot[1] + 1722.3569) < 1e-4
  File "/home/skywalk/miniconda3/lib/python3.10/site-packages/torch/_tensor.py", line 1062, in __array__
    return self.numpy()
RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.
把这个文件work/paddlemd/torchmd/tests/test_torchmd.py的这句代码assert np.abs(Epot[0] + 1722.3569) < 1e-4 and np.abs(Epot[1] + 1722.3569) < 1e-4改成:

assert np.abs(Epot[0].detach().numpy() + 1722.3569) < 1e-4 and np.abs(Epot[1].detach().numpy() + 1722.3569) < 1e-4

最后看结果是-1722.3567 ,就差了万分之2 ,或说这里应该再除以1722的,这样这里就过了。

最终修改成了这样:

assert np.abs(Epot[0].detach() + 1722.3569) < (1e-4 *1722) and np.abs(Epot[1].detach() + 1722.3569) < (1e-4*1722)
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/606894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实在Agent智能体:引领智能自动化新纪元

在数字化转型的浪潮中&#xff0c;实在智能科技有限公司凭借其前沿技术&#xff0c;推出了实在Agent智能体——一款革命性的超自动化智能体。它不仅代表了人工智能技术的新高度&#xff0c;更预示着未来工作方式的变革。 什么是实在Agent智能体&#xff1f; 实在Agent智能体是…

《Fundamentals of Power Electronics》——状态空间平均法

文献中出现了许多交流变换器建模技术&#xff0c;包括电流注入法、电路平均法和状态空间平均法。尽管给定方法的支持者可能更喜欢用特定形式表示最终结果&#xff0c;但几乎所有方法的最终结果都是等效的。所有人都会赞同&#xff0c;平均和小信号线性化是PWM变换器建模的关键步…

云动态摘要 2024-05-06

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

用得助全媒体呼叫中心,让AI落到实处帮品牌做营销

怎么让人工智能落到实处的帮助到我们&#xff1f;我们今天来讲讲中关村科金得助全媒体呼叫中心是怎么让AI帮品牌。 这次聊的案例是知名的护肤品牌&#xff0c;该品牌在中国功能性护肤品市场占有率达到20.5%&#xff0c;这么高的市场占有率客户的咨询量也是非常庞大的&#xff0…

MAC M1 配置 Git SSH

背景 换了新笔记本&#xff0c;本地想要克隆github 上的项目需要配置ssh 公钥到自己的github账户中&#xff0c;否则使用ssh 地址克隆会报错&#xff0c;如下。 gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository.操作 1. 生成s…

探索大型语言模型(LLM)的世界

​ 引言 大型语言模型&#xff08;LLM&#xff09;作为人工智能领域的前沿技术&#xff0c;正在重塑我们与机器的交流方式&#xff0c;在医疗、金融、技术等多个行业领域中发挥着重要作用。本文将从技术角度深入分析LLM的工作原理&#xff0c;探讨其在不同领域的应用&#xff0…

安卓使用Fiddler抓包 2024

简介 最近试了一下安卓使用fiddler 抓包&#xff0c;发现https包基本都会丢失。原因是Anandroid 7版本针对ssl安全性做了加强&#xff0c;不认可用户的证书。我们要做的就是把fiddler导出的证书进过处理后放置到系统证书目录下面&#xff0c;这样才能抓包https请求。 这里使用…

【Anaconda】升级Anaconda Navigator提示JSONDecoderError,删除.condarc文件后搞定

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、报错&#xff1a;JSONDecoderError二、错误原因三、解决问题总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 时间长未升级Ana…

AI 绘画神器 Fooocus 本地部署指南:简介、硬件要求、部署步骤、界面介绍

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ 随着人工智能技术的飞速发展&#xff0c;AI 绘画逐渐成为创意领域的新宠。Fooocus 作为一款免费开源的 AI 绘画工具&am…

窜货溯源采买的目的

当品牌遇到窜货时&#xff0c;不管是线上还是线下渠道&#xff0c;快速的治理方法&#xff0c;就是找到窜货源头&#xff0c;对源头进行打击&#xff0c;这里面有一步很关键的操作便是买货&#xff0c;将货品买回后做溯源&#xff0c;通过产品本身或者外包装上的条码&#xff0…

【Java orm 框架比较】十 新增hammer_sql_db 框架对比

迁移到&#xff08;https://gitee.com/wujiawei1207537021/spring-orm-integration-compare&#xff09; orm框架使用性能比较 比较mybatis-plus、lazy、sqltoy、mybatis-flex、easy-query、mybatis-mp、jpa、dbvisitor、beetlsql、dream_orm、wood、hammer_sql_db 操作数据 …

[uniapp 地图组件] 小坑:translateMarker的回调函数,会调用2次

大概率是因为旋转和移动是两个动画&#xff0c;动画结束后都会分别调用此函数 即使你配置了 【不旋转】它还是会调用两次&#xff0c; 所以此处应该是官方的bug

未来娱乐新地标?气膜球幕影院的多维体验—轻空间

在中国&#xff0c;一座独特的娱乐场所正在崭露头角&#xff1a;气膜球幕影院。这个融合了气膜建筑与激光投影技术的创新场所&#xff0c;不仅令人惊叹&#xff0c;更带来了前所未有的科幻娱乐体验。让我们一起探索这个未来的娱乐空间&#xff0c;感受其中的多维魅力。 现场演出…

Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文&#xff09;---- 目录 一、知识点二、实验&#xff08;一&#xff09;为服务器配置网卡和IP&#xff08;二&#xff09;为服务器安装DHCP服务软件&#xff08;三&a…

DenseCLIP论文讲解

文章目录 简介方法总体框架 &#xff08;Language-Guided Dense Prediction&#xff09;上下文感知提示 &#xff08;Context-Aware Prompting&#xff09;应用实例 论文&#xff1a;DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting 代码&#xff1…

Python3实现三菱PLC串口通讯(附源码和运行图)

基于PyQt5通过串口通信控制三菱PLC 废话不多说&#xff0c;直接上源码 """ # -*- coding:utf-8 -*- Project : Mitsubishi File : Main_Run.pyw Author : Administrator Time : 2024/05/09 下午 04:10 Description : PyQt5界面主逻辑 Software:PyCharm "…

一个注解完美实现分布式锁(AOP)

前言 学习过Spring的小伙伴都知道AOP的强大&#xff0c;本文将通过Redisson结合AOP&#xff0c;仅需一个注解就能实现分布式锁。 &#x1f36d; 不会使用aop和redisson的小伙伴可以参考&#xff1a; 【学习总结】使Aop实现自定义日志注解-CSDN博客 【学习总结】使用分布式锁和…

Vulstack红队评估(一)

文章目录 一、环境搭建1、网络拓扑2、web服务器(win7)配置3、域控&#xff08;winserver2008&#xff09;配置4、域内机器&#xff08;windows 2003&#xff09;配置5、调试网络是否通常 二、web渗透1、信息搜集2、端口扫描3、目录扫描4、弱口令5、phpmyadmin getshell日志gets…

AI时代:人工智能大模型引领科技创造新时代

目录 前言一. AI在国家战略中有着举足轻重的地位1.1 战略1.2 能源1.3 教育 二. AI在日常生活中扮演着重要角色2.1 医疗保健2.2 智能客服2.3 自动驾驶2.4 娱乐和媒体2.5 智能家居 三. AI的未来发展趋势 总结 前言 随着AI技术的进步&#xff0c;新一代的AI技术已经开始尝试摆脱依…

域名系统(DNS)、DNS 服务器和 IP 地址概念解释

​  域名系统、DNS服务器和IP地址是构成互联网基础设施的重要部分。它们共同协作&#xff0c;使得人们能够方便地使用各种网络服务&#xff0c;而无需去记住复杂的数字地址。那么&#xff0c;域名系统、DNS 服务器和 IP 地址又该如何理解?本文主要讲讲关于这几个名词的概念解…