首页 > 其他分享 >使用CyFES对配体运动轨迹进行数据透视

使用CyFES对配体运动轨迹进行数据透视

时间:2024-08-20 09:38:06浏览次数:11  
标签:CyFES file 透视 site bias 配体 cyfes path

技术背景

如果我们有一个蛋白质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

标签:CyFES,file,透视,site,bias,配体,cyfes,path
From: https://www.cnblogs.com/dechinphy/p/18367345/cyfes

相关文章

  • 添加倒角和圆角容易导致装配体中几何关系丢失,需要怎么修改呢?进入报错的地方重新添加几
    问题描述:添加倒角和圆角容易导致装配体中几何关系丢失,需要怎么修改呢?进入报错的地方重新添加几何关系即可。问题解答:在SolidWorks中,当你对装配体中的零件添加倒角或圆角时,确实有可能导致原本的几何关系(如配合关系)丢失或报错。出现这种情况时,以下是处理的方法:1.检查报错信......
  • Pandas高级操作:多级索引、窗口函数、数据透视表等
            在数据处理和分析中,pandas库提供了强大的功能,支持从简单到复杂的数据操作。本文将介绍一些pandas的高级操作,包括多级索引(MultiIndex)、窗口函数(WindowFunctions)、数据透视表与复杂聚合、数据合并与连接、高级数据变换以及时间序列数据的高级处理。1.多级索......
  • 透视表
    <style>.dx-pivotgrid.dx-pivotgrid-area.dx-pivotgrid-area-data{font-size:16px;}.dx-pivotgrid.dx-pivotgrid-area.dx-pivotgrid-horizontal-headers,.dx-pivotgrid.dx-pivotgrid-area.dx-pivotgrid-vertical-headers{font......
  • 如何将零件放入装配体视图中呢?
    问题描述:如何将零件放入装配体视图中呢?问题解答:方法1:将装配体左平铺,零件右平铺,按着Ctrl键,用鼠标左键即可将零件拖拽到装配体视图中。方法2:通过浏览文件插入。方法3:通过插入零部件按钮在打开文档中插入的。方法4:在设计树中,通过按着Ctrl键,用鼠标左键即可将零件拖拽到......
  • 在solidworks中,Ctrl+Tab键无法切换装配体和零件的窗口,通过最小化装配,在左下角也没有找
    问题描述:在solidworks中,Ctrl+Tab键无法切换装配体和零件的窗口,通过最小化装配,在左下角也没有找到装配体和零件切换的选项,在窗口按钮也没有找到装配体和零件切换的按钮?上面三种方法我实验了一下,都不行,最后采用这两种方法可以从装配图界面转到零件界面。问题解答:方法1:在Fea......
  • SPONGE常用教程:蛋白+配体模拟3
    前序课程1前序课程2目录应用场景简述;-[Done]DSDP:蛋白-配体对接;-[Done]XPONGE:蛋白-配体建模,加溶剂;-[Done]SPONGE:能量极小化-NVT-NPT-正式模拟;-[Done]XPONGE:数据简单后处理。5.XPONGE:数据简单后处理经过1ns的SPONGE分子动力学模拟,得到了轨迹文件"mdcrd.dat......
  • 数据透视表(三)
    文章目录行汇总百分比与降序排列筛选的应用排序的应用与自定义排序批量生成透视子表1、把数据放入报表筛选的字段2、根据自定义的功能名称批量生成透视的子表认识切片器如何链接切片器与报表数据透视表布局数据透视表打印行汇总百分比与降序排列双击鼠标点击单元格......
  • 如何向 python pandas 数据透视表添加过滤器? (pd.read_excel)
    我正在尝试使用pandas库在python中重新创建我在Excel中制作的数据透视表。我试图用时间段作为过滤器来总结超过500k行的OD总行程数据。在Excel上,我只会执行行(O)、列(D)、值(行程)、过滤器(时间)。到目前为止,在python上我只有索引、列、值、aggfunc,但我不知道如何过滤。有......
  • 轻松透视财务数据:免费工具助力公司打造财务报表可视化看板
    面对海量的财务数据,如何快速、准确地提炼出有价值的信息,并以直观易懂的方式呈现给管理层及利益相关者,成为了每一家企业面临的重大挑战。 传统财务报表编制过程繁琐,不仅耗时耗力,还容易出错。而一些可视化工具,具有强大的数据处理能力,足以改变这一现状。例如,山海鲸可视化支持一键......
  • SPONGE常用教程:蛋白+配体模拟2
    前序课程目录应用场景简述;-[Done]DSDP:蛋白-配体对接;-[Done]XPONGE:蛋白-配体建模,加溶剂;-[Done]SPONGE:能量极小化-NVT-NPT-正式模拟;XPONGE:数据简单后处理。4.SPONGE:能量极小化-NVT-NPT-正式模拟文件下载进入建模文件目录,如下图:SPONGE输入文件采用独特的参......