前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VMD可视化hdf5格式的分子坐标文件

VMD可视化hdf5格式的分子坐标文件

作者头像
DechinPhy
发布于 2021-10-28 07:40:24
发布于 2021-10-28 07:40:24
65300
代码可运行
举报
文章被收录于专栏:Dechin的专栏Dechin的专栏
运行总次数:0
代码可运行

技术背景

VMD是分子动力学模拟领域常用的一款可视化软件,可以非常直观方便的展示分子的运动过程。而VMD本身对展现的格式有一定的要求,如果不是常见的rst等类型的坐标文件的话,就需要自己手动去实现一个可视化的插件。这里我们介绍的是通过VMD来可视化hdf5格式的坐标文件——hdf5是量子化学领域非常常用的一个数据格式,对于规模较大的数据集有很好的性能支持。

安装hdf5插件

这里本地使用的是Ubuntu20.04的系统,如果是其他系统,有可能需要针对性的修改下。首先我们将这个hdf5插件的源码下载到本地:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/h5md/VMD-h5mdplugin.git
正克隆到 'VMD-h5mdplugin'...
remote: Enumerating objects: 486, done.
remote: Total 486 (delta 0), reused 0 (delta 0), pack-reused 486
接收对象中: 100% (486/486), 1.18 MiB | 2.32 MiB/s, 完成.
处理 delta 中: 100% (302/302), 完成.
$ cd VMD-h5mdplugin/
$ ll
总用量 128
drwxrwxr-x 6 dechin dechin  4096 1026 15:58  ./
drwxrwxr-x 8 dechin dechin  4096 1026 15:58  ../
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  cmake/
-rw-rw-r-- 1 dechin dechin  2133 1026 15:58  CMakeLists.txt
-rw-rw-r-- 1 dechin dechin  3190 1026 15:58 'Documentation VMD parameters'
drwxrwxr-x 8 dechin dechin  4096 1026 15:58  .git/
-rw-rw-r-- 1 dechin dechin    18 1026 15:58  .gitignore
-rw-rw-r-- 1 dechin dechin 16210 1026 15:58  h5mdplugin.c
-rw-rw-r-- 1 dechin dechin  5000 1026 15:58  h5mdtest.c
-rw-rw-r-- 1 dechin dechin 45631 1026 15:58  libh5md.c
-rw-rw-r-- 1 dechin dechin  4178 1026 15:58  libh5md.h
-rw-rw-r-- 1 dechin dechin   732 1026 15:58  LICENSE
-rw-rw-r-- 1 dechin dechin  1300 1026 15:58  Makefile
-rw-rw-r-- 1 dechin dechin  2624 1026 15:58  README.md
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  samples/
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  tests/

这里直接clone或者是下载zip压缩包都是可以的,然后按照官方指示,直接执行make,我们发现输出了一个报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ make
HDF5_CC= h5cc -shlib -Wall -Wuninitialized -std=c99 -pedantic -fPIC -I/usr/local/lib/vmd/plugins/include   -c -o h5mdplugin.o h5mdplugin.c
/home/dechin/anaconda3/bin/h5cc: 1: eval: x86_64-conda_cos6-linux-gnu-cc: not found
make: *** [<内置>:h5mdplugin.o] 错误 127

经过了解,这个报错是由于没有安装gxx_linux-64这个库引起的,因此我们直接使用conda安装一下这个库即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ conda install gxx_linux-64
Collecting package metadata (current_repodata.json): done
Solving environment: done
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

安装完成后再次执行编译:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ make
HDF5_CC= h5cc -shlib -Wall -Wuninitialized -std=c99 -pedantic -fPIC -I/usr/local/lib/vmd/plugins/include   -c -o h5mdplugin.o h5mdplugin.c
HDF5_CC= h5cc -shlib -Wall -Wuninitialized -std=c99 -pedantic -fPIC -I/usr/local/lib/vmd/plugins/include   -c -o libh5md.o libh5md.c
libh5md.c: In function 'check_for_pos_dataset':
libh5md.c:94:4: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   94 |    if(pos_dataset_id>=0)
      |    ^~
libh5md.c:96:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   96 |     printf("Position dataset found in group /%s.\n", obj_name);
      |     ^~~~~~
libh5md.c: In function 'h5md_free_timeindependent_dataset_automatically':
libh5md.c:922:2: warning: enumeration value 'H5T_NO_CLASS' not handled in switch [-Wswitch]
  922 |  switch (type_class) {
      |  ^~~~~~
libh5md.c:922:2: warning: enumeration value 'H5T_TIME' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_BITFIELD' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_OPAQUE' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_COMPOUND' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_REFERENCE' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_ENUM' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_VLEN' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_ARRAY' not handled in switch [-Wswitch]
libh5md.c:922:2: warning: enumeration value 'H5T_NCLASSES' not handled in switch [-Wswitch]
libh5md.c: In function 'h5md_get_all_infromation_about_property':
libh5md.c:907:22: warning: 'dataset_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
  907 |   int current_status=H5Dread(dataset_id, wanted_memory_datatype, memspace_id, dataspace_id, H5P_DEFAULT, data_out);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HDF5_CC= h5cc -shlib -Wall -Wuninitialized -std=c99 -pedantic -fPIC -shared -Wl,--no-undefined -L. libh5md.o -o libh5md.so  -lm
HDF5_CC= h5cc -shlib -Wall -Wuninitialized -std=c99 -pedantic -fPIC -shared -Wl,--no-undefined -L. h5mdplugin.o -o h5mdplugin.so  -Wl,-rpath,'\$ORIGIN' -lh5md
HDF5_CC= h5cc -shlib h5mdtest.c -o h5mdtest h5mdplugin.c -I/usr/local/lib/vmd/plugins/include  -Wall -Wuninitialized -std=c99 -pedantic -fPIC -L. -Wl,-rpath,'\$ORIGIN'  -lh5md
$ ll
总用量 288
drwxrwxr-x 6 dechin dechin  4096 1026 16:24  ./
drwxrwxr-x 8 dechin dechin  4096 1026 15:58  ../
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  cmake/
-rw-rw-r-- 1 dechin dechin  2133 1026 15:58  CMakeLists.txt
-rw-rw-r-- 1 dechin dechin  3190 1026 15:58 'Documentation VMD parameters'
drwxrwxr-x 8 dechin dechin  4096 1026 15:58  .git/
-rw-rw-r-- 1 dechin dechin    18 1026 15:58  .gitignore
-rw-rw-r-- 1 dechin dechin 16210 1026 15:58  h5mdplugin.c
-rw-rw-r-- 1 dechin dechin 17536 1026 16:24  h5mdplugin.o
-rwxrwxr-x 1 dechin dechin 26456 1026 16:24  h5mdplugin.so*
-rwxrwxr-x 1 dechin dechin 31872 1026 16:24  h5mdtest*
-rw-rw-r-- 1 dechin dechin  5000 1026 15:58  h5mdtest.c
-rw-rw-r-- 1 dechin dechin  6664 1026 16:24  h5mdtest.o
-rw-rw-r-- 1 dechin dechin 45631 1026 15:58  libh5md.c
-rw-rw-r-- 1 dechin dechin  4178 1026 15:58  libh5md.h
-rw-rw-r-- 1 dechin dechin 31152 1026 16:24  libh5md.o
-rwxrwxr-x 1 dechin dechin 40808 1026 16:24  libh5md.so*
-rw-rw-r-- 1 dechin dechin   732 1026 15:58  LICENSE
-rw-rw-r-- 1 dechin dechin  1300 1026 15:58  Makefile
-rw-rw-r-- 1 dechin dechin  2624 1026 15:58  README.md
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  samples/
drwxrwxr-x 2 dechin dechin  4096 1026 15:58  tests/

此时我们发现编译构建成功,并且在当前的目录下生成了很多的so文件,这些动态链接库就是我们需要使用到的文件。接下来我们需要把这些动态链接文件拷贝到vmd的相应目录下,这个跟安装的位置有关系,比如博主的vmd是在local账号下安装的,vmd相关的库文件都在/usr/local/lib/vmd/这个路径下。总之就是需要在本地电脑上找到vmd下的molfile这个文件夹,然后将刚才生成的so文件都拷贝到这个文件夹下即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo cp *.so /usr/local/lib/vmd/plugins/LINUXAMD64/molfile

拷贝完成后,再次启动vmd时hdf5的插件就已经被包含在其中,我们可以直接加载hdf5格式的坐标文件。

VMD-hdf5案例测试

在刚才下载下来的VMD-h5mdplugin库中的samples目录下,有一些可以用于vmd插件测试和演示的样例文件,这里我们展示一下基本的读取过程:

  1. 在VMD上新建一个分子,并且将一个样例文件加载到分子信息中:
  1. 配置展示的模型和模型参数,比如这里使用了球棍模型:
  1. 查看最终展示效果:

总结概要

VMD是一个分子动力学模拟领域常用的可视化软件,hdf5是量子化学领域常用的一个二进制文件存储格式,本文通过介绍VMD-h5mdplugin这个插件的安装和使用方法,进一步演示了如何在VMD上直接展示hdf5格式文件的分子构象。

版权声明

本文首发链接为:https://cloud.tencent.com/developer/article/1894351

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在VMD上可视化hdf5格式的分子轨迹文件
在处理分子动力学模拟的数据时,不可避免的会遇到众多的大轨迹文件。因此以什么样的格式来存储这些庞大的轨迹数据,也是一个在分子动力学模拟软件设计初期就应该妥善考虑的问题。现有的比较常见的方式,大致可以分为存成明文的和存成二进制的两种方式。这两种方式各有优劣,明文存储可读性较好,二进制文件压缩率较好,不会占用太大的空间。又因为我们也不会经常性的去打开轨迹文件一个一个的检索,因此二进制文件是一个更好的存储格式选项。如果不仅仅限于分子动力学模拟的领域,在其他数据领域经常用的格式有npz等。而经过各种格式的对比之后,发现hdf5格式是一种非常适合用来存储分子动力学轨迹的文件,其原因主要有:
DechinPhy
2022/09/19
6950
增强采样软件PLUMED的安装与使用
增强采样(Enhanced Sampling)是一种在分子动力学模拟中常用的技术,其作用是帮助我们更加快速的在时间轴上找到尽可能多的体系结构及其对应的能量。比如一个氢气的燃烧反应,在中间过程中会产生众多的反应产物,但是我们光从结果来看的话,就是从
DechinPhy
2021/07/14
2.2K0
MindSponge分子动力学模拟——安装与使用(2023.08)
昇思MindSpore是由华为主导的一个,面向全场景构建最佳昇腾匹配、支持多处理器架构的开放AI框架。MindSpore不仅仅是软件层面的工具,更重要的是可以协同华为自研的昇腾Ascend平台,做到软硬件一体的行业解决方案。基于MindSpore的高通量、自动微分和自动并行等高级特性,以及对于python第三方库numpy的友好支持,我们开发了一款可以在MindSpore上进行分子动力学模拟的,模块化、高通量、端到端可微的下一代智能分子模拟程序库——MindSponge。该程序库最新的开发版,可以参考这个仓库地址的develop分支。而MindSponge的最新稳定版,会最终协同另外几个基于MindSpore开发的软件库,集成到这个仓库地址里面。
DechinPhy
2023/08/18
3020
MindSponge分子动力学模拟——安装与使用(2023.08)
Ubuntu: HDF5报错: HDF5 header version与HDF5 library不匹配
Warning! ***HDF5 library version mismatched error***
知忆
2021/06/16
1.6K0
【分享】FFMpeg checkout 版本n4.2.5,得到master版本, 导致后续OpenCV 4.5.4编译错误; 切换到指定远程分支,解决问题。
对FFMpeg checkout 版本n4.2.5,实际得到master版本,导致后续OpenCV 4.5.4编译错误。使用“git checkout -b n4.2.hankf.01 remotes/origin/release/4.2”,解决问题,后续OpenCV编译成功。
hankfu
2022/03/23
1.1K0
Caffe - 创建LMDB/HDF5格式数据
LMDB格式的优点: - 基于文件映射IO(memory-mapped),数据速率更好 - 对大规模数据集更有效.
AIHGF
2019/02/18
1.6K0
MindSpore Graph Learning
这是一个关于mindspore-gl的官方介绍,其定位非常接近于dgl,而且从文章(参考链接3)中的数据来看,mindspore-gl的运算效率还要高于dgl。
DechinPhy
2022/11/21
6350
MindSpore Graph Learning
GPM卫星数据hdf5格式读取与绘图
你刚开始拿到数据多半不知怎么看结构,一定很疑惑f['Swath/latentHeating'][:]怎么来的 hdf5数据逻辑和nc不太一样, 且看我下面如何操作
用户11172986
2024/06/20
4100
GPM卫星数据hdf5格式读取与绘图
Linux命令行从x度网盘下载数据
做开源项目的时候,尤其是现在的数据量越来越大,经常会面临到数据往哪里存放的问题。因为自己刚好有一个某度云的会员,看了一下还有几十个TB的空间还没用上。于是考虑把这个网盘变成一个定向共享数据的平台,当然,传输文件容易,为了更加方便使用,需要从Linux平台上直接下载这些共享文件就最好了。
DechinPhy
2024/01/27
2630
Linux命令行从x度网盘下载数据
持续集成之Jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码、打包、部署到web服务器、将web服务器从负载均衡器删除、解压、复制配置文件、创建软连接、测试每一台web服务器、将web服务器添加至负载均衡、回滚到任意指定版本、一键回滚到上一版本等功能,脚本放在www用户家目录并使用www用户身份执行,每个web服务器也都使用www用户运行web服务,且UID相同web目录和权限都一致,更严格的标准化可以带来更安全的生产环境和更高的效率: 1.1:在jenkins项目配置中调用shell脚本与环境准备: 1.1.1:#jenkins-项目-配置:
星哥玩云
2022/07/24
1.8K0
持续集成之Jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
cmake 3.5:find_package(HDF5) 指定HDF5_ROOT无效问题
10km
2018/01/03
1.2K0
如何使用Python处理HDF格式数据及可视化
原文链接:https://blog.csdn.net/Fairy_Nan/article/details/105914203
用户7886150
2020/12/29
1.7K0
Linux系统创建可执行文件软链接
由于创建软链接这个事情,在算法开发的日常中使用到的并不是很多,因此本文也是做一个简单的回顾。这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。
DechinPhy
2022/05/09
2.8K0
沉浸式体验WGBS(上游)
然后就可以看我在B站免费分享的视频课程《甲基化芯片(450K或者850K)数据处理 》
生信技能树
2023/02/27
3.3K1
沉浸式体验WGBS(上游)
(数据科学学习手札63)利用pandas读写HDF5文件
  HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式,文件后缀名为h5,存储读取速度非常快,且可在文件内部按照明确的层次存储数据,同一个HDF5可以看做一个高度整合的文件夹,其内部可存放不同类型的数据。在Python中操纵HDF5文件的方式主要有两种,一是利用pandas中内建的一系列HDF5文件操作相关的方法来将pandas中的数据结构保存在HDF5文件中,二是利用h5py模块来完成从Python原生数据结构向HDF5格式的保存,本文就将针对pandas中读写HDF5文件的方法进行介绍。
Feffery
2019/07/06
1.3K0
利用Python Numpy高效管理HDF5文件数据
在大数据处理和科学计算中,HDF5(Hierarchical Data Format version 5)文件格式因其高效的数据存储和处理能力被广泛应用。HDF5支持层次化结构,能够在单个文件中存储和管理大规模的多维数据集。Python中的Numpy库虽然以数值计算著称,但借助于外部库如h5py,可以轻松实现HDF5文件的读写操作。本文将详细介绍如何使用Numpy结合h5py库读写HDF5文件,适合需要处理大规模数据集的用户。
sergiojune
2024/09/24
3160
利用Python Numpy高效管理HDF5文件数据
Fastdfs + Nginx整合部署
记一次Fastdfs + Nginx整合部署 1、环境介绍 操作系统:CentOS Linux release 7.6.1810 (Core) Nginx编译安装,版本-nginx/1.18.0 Fastdfs编译安装,版本-fastdfs-5.11 server ip 用途 Nginx 10.110.10.110 Nginx/1.18.0 Fastdfs 10.110.10.110 Fastdfs/5.11 2、上传需要的安装包 [root@test-10 src]# pwd /usr/local/sr
染指流年
2023/03/13
5380
Fastdfs + Nginx整合部署
python3表格数据处理
数据处理是一个当下非常热门的研究方向,通过对于大型实际场景中的数据进行建模,可以用于预测下一阶段可能出现的情况。比如我们有过去的2002年-2018年的黄金价格的数据:
DechinPhy
2021/05/21
2.9K0
R海拾遗_hdf5r包
hdf5文件是一种大数据存储结构,除了目前介绍的hdf5r包之外,同时cran中的h5包,Bioconductor中的rhdf5也能够实现类似的功能。
火星娃统计
2021/02/05
1.5K0
如何使用Python处理HDF格式数据
HDF也是一种自描述格式文件,主要用于存储和分发科学数据。气象领域中卫星数据经常使用此格式,比如MODIS,OMI,LIS/OTD等卫星产品。对HDF格式细节感兴趣的可以Google了解一下。
MeteoAI
2019/07/24
9.6K4
相关推荐
在VMD上可视化hdf5格式的分子轨迹文件
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验