使用SpongeExt快捷完成CudaSPONGE结合PySAGES的增强采样

技术背景

在前面的一些文章中,我们介绍过关于CudaSPONGE的安装和基础使用方法,CudaSPONGE提供的Python接口,PySAGES增强采样软件的基本使用方法,还有一篇关于CudaSPONGE和PySAGES相结合的文章,并且做了一些简单的CudaSPONGE结合PySAGES的性能测试。其中因为CudaSPONGE与PySAGES的接口实际上是可以多场景共用的,因此考虑把这部分的接口单独封装一个包出来,使得用户可以尽可能无感的在CudaSPONGE中使用PySAGES。

Pip安装

SpongeExt最新的源码存储地址为:https://gitee.com/dechin/sponge-ext/tree/master,都是非常简单的Python代码,只是对环境有一些先置条件,例如Jax、Jaxlib、Cupy等,当然,PySAGES也是必须先安装好的。用户可以下载源码进行编译安装,也可以直接用pip安装:

$ python3 -m pip install SpongeExt --upgrade

没有报错即为安装成功。

使用方法

在开源仓库的example路径中,我们已经存放了一个完整的演示案例。其目录结构大致是这样的:

.
|-- README.md
|-- protein
|   |-- alad_LJ.txt
|   |-- alad_angle.txt
|   |-- alad_atom_name.txt
|   |-- alad_atom_type_name.txt
|   |-- alad_bond.txt
|   |-- alad_charge.txt
|   |-- alad_coordinate.txt
|   |-- alad_dihedral.txt
|   |-- alad_exclude.txt
|   |-- alad_mass.txt
|   |-- alad_nb14.txt
|   |-- alad_residue.txt
|   `-- alad_resname.txt
|-- pysages_metad.py
`-- workspace|-- mdbox.txt|-- mdcrd.dat|-- mdinfo.txt|-- mdout.txt|-- nvt.in|-- nvt_restart_coordinate.txt`-- nvt_restart_velocity.txt

其中pysages_metad.py就是我们所定义的PySAGES增强采样方法,文件内容是这样的:

from SpongeExt import enhanced_spongeimport pysages
from pysages.colvars import DihedralAngle
from pysages.methods import Metadynamicsdef phi_psi():from numpy import picvs = [DihedralAngle([4, 6, 8, 14]), DihedralAngle([6, 8, 14, 16])]height = 5.0  # kJ/molsigma = [0.4, 0.4]  # radiansstride = 3ngauss = 500grid = pysages.Grid(lower=(-pi, -pi), upper=(pi, pi), shape=(50, 50), periodic=True)method = Metadynamics(cvs, height, sigma, stride, ngauss, grid=grid)return methodpysages_method = phi_psi()
Calculate_Force, Mdout_Print = enhanced_sponge(pysages_method)

可以看到的是,我们只是调用了SpongeExt中的一个生成函数,没有在该脚本下直接调用CudaSPONGE底层的任何参数。而在PySAGES这边,也仅仅是定义了一个MetaDynamics的方法,没有定义任何其他PySAGES底层的SnapShot之类的参数,使用SpongeExt这个插件可以做到一个几乎无感的衔接。在protein/路径下存放的是我们使用Xponge生成的CudaSPONGE运行所需的输入参数文件。在workspace/路径下是我们运行的一个普通NVT的CudaSPONGE参数配置文件,其中只有一个nvt.in文件是我们需要配置的参数输入文件,其他文件都是通过CudaSPONGE运行产生的输出文件。nvt.in的文件内容为:

case1 MD simulationmode = NVT
default_in_file_prefix = ../protein/aladpbc=0 
cutoff=999dt = 1e-3
step_limit = 2000
write_information_interval = 10thermostat = middle_langevin
middle_langevin_gamma = 10rst = nvt_restartcoordinate_in_file = ../protein/alad_coordinate.txt
plugin = /usr/local/python-3.7.5/lib/python3.7/site-packages/prips/_prips.so
py = ../pysages_metad.py

相比于普通的NVT过程,这里只是多配置了pluginpy这两个参数,意指通过prips这个插件来调用python文件中的相关接口函数,从而达到一个外接软件实现增强采样方法的效果。

总结概要

基于CudaSPONGE高性能分子动力学模拟采样工具,和PySAGES高性能增强采样软件,我简单的封装了一个SpongeExt插件,可以用于无感结合CudaSPONGE和PySAGES进行增强采样分子动力学模拟。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/sponge-ext.html

作者ID:DechinPhy

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

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. https://gitee.com/dechin/sponge-ext/tree/master

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

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

相关文章

【亲测可用】Windows激活神器HEU KMS Activator v42.3.3

软件介绍 HEU KMS Activator,简洁高效的全能KMS/OEM激活工具,适用所有Windows, Office版本,无需联网即可一键激活,支持UEFI的KMS激活工具。KMS服务是微软对Windows, Office等产品的批量许可服务,利用KMS可以激活局域网内的产品。该工具利用KMS机制在系统搭建KMS服务器,从…

记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法

大语言模型(LLM)通过其参数储存了大量信息,这些信息主要以密集层中线性矩阵变换的权重形式存在。然而,参数规模的扩大必然导致计算成本和能源消耗的显著增加。 这种参数存储方式是否可以通过更高效的键值查找机制来优化? 尽管此前已有多项相关研究,但在当前 AI 架构规模下…

Prometheus+grafana实践:Doris数据库的监控

Doris数据库背景 Doris(Apache Doris)是一个现代化的MPP(Massive Parallel Processing,大规模并行处理)数据库,主要用于在线分析处理(OLAP)场景。 Doris数据库的特点 高性能:Doris采用了列式存储和MPP架构,能够对海量数据进行快速查询。 易用性:提供了类似SQL的查询…

哎哎

成退役老登了昔人已乘黄鹤去,此地空余黄鹤楼。转眼回归 whk 已经一个多月了啊,感觉不比集训轻松多少,不过结果是好的,期末进步了 1700 多名,年排 800 多,挺不错的成绩吧。 不过这个寒假我应该还会投入比较不少的时间到博客上的,因为报名了川大的网安少年生并且成功通过了…

如何修改网站数据库前缀

修改网站数据库的前缀可以提高网站的安全性,防止SQL注入等攻击。以下是详细的步骤:备份数据库: 在进行任何修改之前,确保备份整个数据库,以防出现意外情况。 登录数据库管理工具: 使用phpMyAdmin或其他数据库管理工具登录到数据库。 导出数据库: 导出当前的数据库文件,…

网站无法访问时,如何通过修改代码解决问题?

当网站无法访问时,可以通过以下步骤来诊断和解决问题:检查服务器状态: 确认服务器是否正常运行,可以通过ping命令或访问其他网站来判断。 查看错误日志: 检查服务器的错误日志(如Apache的error.log、Nginx的error.log),查找具体的错误信息。 登录FTP或SSH: 使用FTP工具…

如何在织梦CMS中修改网站logo?

织梦CMS是一种功能强大的内容管理系统,修改网站logo相对简单。以下是详细的步骤:备份文件: 在进行任何修改之前,确保备份网站的logo文件。 准备新logo: 准备一个新的logo图片,确保图片格式为PNG或JPEG,并且大小适合网站的需求。 上传新logo: 使用FTP工具(如FileZilla)…

请问如何修改网站的版面内容?

要修改网站的版面内容,您需要登录到网站的后台管理系统。通常,您可以通过在浏览器中输入域名/admin或类似的路径来访问。 在后台管理系统中,您可以找到各种选项和工具,用于修改网站的内容、布局、样式和功能。以下是一些常见的修改操作:内容管理:添加、编辑或删除网站的页…

请问如何在织梦CMS后台修改网站链接?

织梦CMS提供了强大的后台管理系统,可以方便地修改网站链接。以下是详细的步骤:登录后台管理系统: 使用管理员账户登录织梦CMS的后台管理系统。 导航到内容管理模块: 在后台管理系统中找到“内容管理”或“文章管理”模块。 选择要修改的文章: 在内容管理模块中,找到需要修…

代码随想录——动态规划、股票问题

https://www.programmercarl.com/动态规划-股票问题总结篇.html#买卖股票的最佳时机含手续费 只能买一次 不断更新最小买入值,不断更新profit=prices[i]-buy 可以买卖多次 动态规划 - 定义dp数组 dp[i][1],dp[i][0]分别表示第i天持有股票时的现金和第i天未持有股票时的现金 - …

请问如何修改网站架构模板?

修改网站架构模板需要一定的技术知识和经验。以下是一些基本的步骤:确定修改的目标:明确您想要修改的具体内容,例如页面布局、导航栏、侧边栏等。 备份原始模板:在进行任何修改之前,务必备份原始的网站架构模板,以防止意外错误或数据丢失。 选择合适的工具:根据您的技术…

请问网站首页内容在哪里修改?

网站首页内容的修改位置取决于您使用的网站构建工具或内容管理系统(CMS)。以下是一些常见的情况:静态HTML网站:如果您的网站是静态HTML网站,您需要直接编辑首页的HTML文件。通常,首页的HTML文件名为index.html或default.html。您可以使用文本编辑器(如Notepad++、Sublim…