首页 > 极客资料 博客日记
使用CyFES对配体运动轨迹进行数据透视
2024-08-20 10:00:07极客资料围观23次
技术背景
如果我们有一个蛋白质X和一个配体Y,那么可以对这个X+Y的体系跑一段长时间的分子动力学模拟,以观测这个体系在不同结合位点下的稳定性。类似于前面一篇博客中计算等高面的方法,我们可以计算轨迹的KDE函数,然后保存成Cube格式(高斯中用于保存电子轨道的一种格式)的文件。然后就可以通过可视化软件如VMD等,来加载蛋白和cube文件进行分析。
软件介绍与安装
CyFES是一款基于Python开发用户层,基于Cython开发链路层以及CUDA C++开发物理层Kernel函数的一个高性能开源FES计算软件。
目前功能还比较简单,仅支持三维分子运动轨迹的数据透视。安装支持源码和pip安装,pip安装方法如下:
$ python3 -m pip install cyfes --user --upgrade -i https://pypi.org/simple
之所以建议采取--user
的策略,是因为很多环境中没有权限在site-packages路径下创建文件,会导致动态链接库缺失的问题,--user
可以一定程度上规避这个问题。下载的时候国内的镜像源同步会有一定的延迟,如果需要及时的下载最新版本的CyFES,可以使用-i https://pypi.org/simple
参数配置。安装成功后,可以使用如下指令确认CyFES是否安装成功:
$ python3 -m cyfes --help
python3 -m cyfes --help
usage: __main__.py [-h] [-i I] [-ic IC] [-ib IB] [-s S] [-e E] [-g G] [-o O]
[-no_bias NO_BIAS] [-f32 F32] [-sigma SIGMA]
optional arguments:
-h, --help show this help message and exit
-i I Set the input record file path.
-ic IC Set the cv index of input record file. Default: 0,1,2
-ib IB Set the bias index of input record file. Default: 3
-s S CV length. Default: None
-e E Edge length. Default: 1.0
-g G Grid numbers. Default: 10,10,10
-o O Set the output FES file path.
-no_bias NO_BIAS Do not use the bias from input file. Default: false
-f32 F32 Use float32. Default: false
-sigma SIGMA Sigma value when calculating FES. Default: 0.3
当然,也可以从CyFES-Gitee主页下载源码进行源码安装。安装完成后,可以执行一个python脚本确认一下动态链接库是否缺失的问题:
# check_dynamics.py
import os
import site
from pathlib import Path
site_path = Path(site.getsitepackages()[0])
site_file_path = site_path.parent.parent.parent / 'cyfes' / 'libcufes.so'
site_dynamics_path = str(site_file_path)
user_site_path = Path(site.USER_SITE)
user_file_path = user_site_path.parent.parent.parent / 'cyfes' / 'libcufes.so'
user_dynamics_path = str(user_file_path)
if not os.path.exists(site_dynamics_path) and not os.path.exists(user_dynamics_path):
print ('Check dynamics complete, no libcufes.so file founded!')
else:
print ('Installation of CyFES success!')
确认安装成功之后,我们可以开始使用CyFES进行轨迹数据透视。
轨迹输入
CyFES支持读取这样的一个轨迹文件xyz_bias.txt
:
23.5578 33.8817 37.8341 0.000000
23.4752 33.7842 37.8489 0.882319
23.4557 33.7728 37.8236 1.544485
23.4979 33.6253 37.8524 1.952011
23.5502 33.6256 37.8981 2.140049
23.6389 33.6791 37.9141 1.437173
...
其中前三列表示轨迹的x、y、z坐标,最后一列表示对应坐标位置的偏置势bias,用于计算权重。在CyFES-2.6之后的版本中,可以支持不给定bias,那么默认就全部都是0。
CyFES终端指令
最简单的场景,我们可以使用这样一行简单的代码执行CyFES的计算:
$ python3 -m cyfes -i xyz_bias.txt -o z.cub
这样就可以根据轨迹文件生成一个可以用于可视化的cube格式文件。如果需要更多的一些配置,常用的有:
$ python3 -m cyfes -i xyz_bias.txt -o z.cub -e 5.0
表示边缘增加5A(这里注意单位是埃,而最终保存的cube格式文件会转为波尔bohr长度)的空隙。
$ python3 -m cyfes -i xyz_bias.txt -o z.cub -g 20,30,40
表示x、y、z方向的格点数量分别为20,30和40个格点。
$ python3 -m cyfes -i xyz_bias.txt -o z.cub -sigma 0.2
表示禁带宽度band width设置为0.2。屏幕打印输出的样式大致是这样的:
$ python3 -m cyfes -i xyz_bias.txt -e 5.0 -g 10,20,30 -sigma 0.1 -o z_x.cub
2024-08-19 09:34:26,304 [CyFES] Start to initialize parameters
2024-08-19 09:34:26,318 [CyFES] CV (1000, 3)
2024-08-19 09:34:26,318 [CyFES] Bias (1000,)
2024-08-19 09:34:26,319 [CyFES] Origin crd [16.0653 28.2584 32.4803]
2024-08-19 09:34:26,319 [CyFES] Final crd [29.4832 41.7948 47.3887]
2024-08-19 09:34:26,320 [CyFES] Grids (6000, 3)
2024-08-19 09:34:26,320 [CyFES] BandWidth [0.1 0.1 0.1]
2024-08-19 09:34:26,320 [CyFES] Start to calculate FES
2024-08-19 09:34:27,285 [CyFES] Writting FES into file /home/cy-fes/tests/z_x.cub
2024-08-19 09:34:27,306 [CyFES] Task complete :)
这里主要是记录一些参数和运行日志,最终的计算结果会按照Cube文件的格式输出到z_x.cub
文件中,文件格式可以查阅下一个章节的介绍。
Cube输出
简单的说明一下我们这里生成的cube文件格式内容,大体如下:
Generated by CyFES
Total 1000000 grids
1 30.3589 53.4004 61.3785
100 0.256121 0 0
100 0 0.258383 0
100 0 0 0.284572
1 1.000000 43.1649 66.3195 75.6072
34.6304 34.1533 33.6897 33.2396 32.8028 32.3795
31.9696 31.5731 31.19 30.8203 30.464 30.121
29.7914 29.4751 29.1721 28.8823 28.6057 28.3422
28.0918 27.8543 27.6297 27.4177 27.2182 27.031
...
第一行是标题,第二行是格点数声明,第三行是原子数和原点坐标,第四行到第六行是x、y、z方向的格点数和偏移矢量。第七行是原子信息,这里我们直接在轨迹盒子的中心位置放了一个氢原子,第二列是核电荷数,后面三列是坐标。第八列开始是每一个格点的势能数值,每一行最多6个格点数据。
数据可视化
在此前的文章中我们介绍过关于VMD可视化软件的安装与使用,用户可以直接用VMD来对cub文件和原始的pdb文件做可视化。不过这里要推荐的是另外一个免安装和部署的工具:在线的molstar平台,在这里可以像VMD一样直接加载PDB格式的文件和Cub格式的轨道:
大家可以根据自己的使用习惯来选择相应的工具。这是两个效果对比图,首先是VMD生成的效果:
然后是molstar生成的效果:
得到的那个区域就是分子运动轨迹的数据透视图,可以一定程度上衡量区域自由能的相对大小。
总结概要
分子动力学模拟是一个以时间换空间的方法,那么在时间尺度上留下轨迹之后,如何把轨迹做一个静态的展现,正是数据透视所解决的问题。CyFES是一个开源的、基于GPU硬件加速的数据透视高性能计算工具,我们通过一个蛋白-配体相互作用的运动轨迹的示例,演示一下CyFES的基本使用方法。
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/cyfes.html
作者ID:DechinPhy
更多原著文章:https://www.cnblogs.com/dechinphy/
请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”