学习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-05bond Energy diff: -3.986e-06 Force diff: 1.173e-04dihedral Energy diff: -5.242e-08 Force diff: 2.409e-07lennardjones Energy diff: 5.268e-09 Force diff: 3.749e-08electrostatic 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-04Running test: tests/data/4dihedrals/angle Energy diff: 1.501e-06 Force diff: 4.117e-05bond Energy diff: -3.988e-06 Force diff: 1.139e-04dihedral Energy diff: -2.097e-07 Force diff: 2.221e-07lennardjones Energy diff: 1.472e-07 Force diff: 4.044e-07electrostatic 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-04Running test: tests/data/2watersperiodic/angle Energy diff: 1.437e-06 Force diff: 2.273e-04bond Energy diff: -5.145e-06 Force diff: 8.183e-04dihedral Energy diff: 0.000e+00 Force diff: 0.000e+00lennardjones Energy diff: -5.396e-09 Force diff: 4.818e-04electrostatic 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.449sOK

测试通过! 

 

调试

执行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)
 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——二叉排序树

懒猫老师-数据结构-(58)二叉排序树的删除(二叉查找树)_哔哩哔哩_bilibili 概念 (1)若它的左子树不空&#xff0c;则左子树上所有结点的值均小于根结点的值; (2)若它的右子树不空&#xff0c;则右子树上所有结点的值均大于根结点的值; (3)它的左右子树也都是二叉排序树。 通…

SMB 协议详解之-TreeID原理和SMB数据包分析技巧

在前面分析SMB协议数据包的过程中,这里,可以看到在SMB协议中存在很多的ID,即Unique Identifiers。那么这些ID表示什么含义?在实际分析数据包的过程中如何根据这些ID进行过滤分析?本文将介绍SMB/SMB2中的tree id ,并介绍如何通过tree id 快速的分析SMB数据包中各种命令交互…

配置完串口,用了printf函数,LCD屏不显示了

配置完串口后&#xff0c;记得打开微库&#xff01; /* USER CODE BEGIN PFP */u8 rx[2];u8 rx_buff[10];int fputc(int c, FILE* s){u8 ch[1] {c};HAL_UART_Transmit(&huart1,ch, 1, 0xfff);return c; } /* USER CODE END PFP */

数据结构-链表练习(面试题)

1&#xff0c;翻转一个单链表 建立变量cur指向第二个节点&#xff0c;curN指向cur.next&#xff0c;将第二个节点的next改为head&#xff0c;headcur这样实现&#xff0c;前两个节点顺序的翻转&#xff0c;第二个节点指向了第一个节点&#xff0c;之后cur向后移&#xff08;cu…

设计模式之前端控制器模式

想象一下&#xff0c;你的Java Web应用是个交响乐团&#xff0c;每个功能模块是乐手&#xff0c;而用户请求就像是一首首待演绎的曲目。在这场音乐盛宴中&#xff0c;谁来保证演出的流畅与协调&#xff1f;答案就是——前端控制器模式&#xff01;它如同乐队的指挥&#xff0c;…

unaipp推荐算法的汽车租赁系统zaxzu 微信小程序hbuiderx

随着现代汽车租赁管理的快速发展&#xff0c;可以说汽车租赁管理已经逐渐成为现代汽车租赁管理过程中最为重要的部分之一。但是一直以来我国传统的汽车租赁管理并没有建立一套完善的行之有效的汽车租赁管理系统&#xff0c;传统的汽车租赁管理已经无法适应高速发展&#xff0c;…

python3安装教程

1.下载python 百度网盘下载python-3.12.3-amd64.exe 链接&#xff1a;https://pan.baidu.com/s/1MV3kvVdjCdS_G-_KgefwLw?pwdpgzu 提取码&#xff1a;pgzu 官网下载&#xff1a;Welcome to Python.org 有很多版本&#xff0c;选择需要的版本下载 2.安装python 双击python-…

静态分配IP,解决本地连接不上Linux虚拟机的问题

在Window环境下&#xff0c;使用远程终端工具连接不了VMware搭建的Linux虚拟机&#xff08;CentOS 7&#xff09;&#xff0c;并且在命令行ping不通该Linux虚拟机的IP地址。下面通过配置网关解决本地与Linux虚拟机连接问题&#xff1a; 1 查看虚拟机网关地址 在VMware虚拟机上…

鸿蒙开发-ArkTS语言-容器-非线性容器

鸿蒙开发-UI-web 鸿蒙开发-UI-web-页面 鸿蒙开发-ArkTS语言-基础类库 鸿蒙开发-ArkTS语言-并发 鸿蒙开发-ArkTS语言-并发-案例 鸿蒙开发-ArkTS语言-容器 文章目录 前言 一、非线性容器 1.HashMap 2.HashSet 3.TreeMap 4.TreeSet 5.LightWeightMap 6.LightWeightSet 7.P…

Angular中组件之间的传值

Angular中组件之间的传值 文章目录 Angular中组件之间的传值前言一、父亲向儿子传值二、儿子向父亲传值三、爷爷向孙子传值四、兄弟之间的传值 前言 Angular的组件是构成应用的基础单元&#xff0c;它们封装了HTML模板、TypeScript代码以及CSS样式&#xff0c;以实现特定的功能…

2024蓝桥杯CTF writeUP--packet

根据流量分析&#xff0c;我们可以知道129是攻击机&#xff0c;128被留了php后门&#xff0c;129通过get请求来获得数据 129请求ls Respons在这 里面有flag文件 这里请求打开flag文件&#xff0c;并以base64编码流传输回来 获得flag的base64的数据 然后解码 到手

产品推荐 | 基于 Virtex UltraScale+ XCVU3P的FACE-VPXSSD-3PA 存储板

01 产品概述 FACE&#xff08;FPGA Algorithm aCceleration Engine&#xff09;FPGA算法加速开发引擎是基于FPGA可编程器件构建的一系列算法加速开发引擎平台。FACE-VPXSSD-3PA存储平台是FACE系列中的一员。该平台板载2组2GB 64bit DDR4、2路QSFP28光接口、4个NVME SSD M.2接口…

Elasticsearch的基本使用

Elasticsearch的基本使用 1.基本概念1.1 文档和字段1.2 索引和映射1.3 mysql与elasticsearch对比 2.索引库2.1 es中mapping映射属性2.2.es中索引库的增删改查 3.文档3.1 新增文档3.2 查询文档3.3 删除文档3.4 修改文档3.4.1 全量修改3.4.2 增量修改3.5 总结 4.DSL查询语法4.1 D…

如何提高日语听力?日语学习日语培训柯桥小语种学校

每次一说起练日语听力&#xff0c;总离不开一个词&#xff0c;那就是“磨耳朵”。 可是&#xff0c;“磨耳朵”真的有用吗&#xff1f; 在讨论这个问题之前&#xff0c;我们需要先知道&#xff1a;什么是“磨耳朵”&#xff1f; 所谓的“磨耳朵”&#xff0c;其实就是让我们的耳…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容&#xff0c;这篇文章要写什么 二叉树的概念分类&#xff0c;都有哪些二叉树遍历 对一个数据结构&#xff0c;最先入手的都是定义&#xff0c;然后才会有哪些分类&#xff0c;对二叉…

LVS 负载均衡部署 NAT模式

一、环境准备 配置环境&#xff1a; 负载调度器&#xff1a;配置双网卡 内网&#xff1a;172.168.1.11(ens33) 外网卡&#xff1a;12.0.0.1(ens37)二台WEB服务器集群池&#xff1a;172.168.1.12、172.168.1.13 一台NFS共享服务器&#xff1a;172.168.1.14客户端&#xff…

爬虫爬取必应和百度搜索界面的图片

爬虫爬取必应和百度搜索界面的图片 爬取bing搜索图片界面爬取百度搜索界面图片结果如下 爬取bing搜索图片界面 浏览器驱动下载地址 对应版本即可 浏览器驱动 mad直接用 import os import re from selenium import webdriver from selenium.webdriver import Keys from sel…

docker系列9:容器卷挂载(下)

传送门 docker系列1&#xff1a;docker安装 docker系列2&#xff1a;阿里云镜像加速器 docker系列3&#xff1a;docker镜像基本命令 docker系列4&#xff1a;docker容器基本命令 docker系列5&#xff1a;docker安装nginx docker系列6&#xff1a;docker安装redis docker系…

2024抖音小店还能做吗?值得开通吗?一文带你揭秘!

大家好&#xff0c;我是电商花花。 抖音小店已经出台了这么几年&#xff0c;很多人不禁发问2024年的抖音小店还能做吗&#xff1f;还有利润空间和机会吗&#xff1f; 按照我们做电商这么多年来的经验&#xff0c;一家抖音小店的电商行业风向来看&#xff0c;2024年的抖音小店…

释放创造力,低成本实现您的梦想应用 —— 尽在我们的开源低代码平台!

在数字化时代&#xff0c;每个企业都渴望拥有自己的专属应用&#xff0c;但传统开发模式的高成本和技术壁垒让许多梦想搁浅。现在&#xff0c;我们为您带来了革命性的解决方案 —— 一个开源、免费、且功能强大的低代码开发平台&#xff01; 为什么选择我们的低代码平台&#…