English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french
查看: 7|回复: 0

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

[复制链接]
查看: 7|回复: 0

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

[复制链接]
查看: 7|回复: 0

372

主题

0

回帖

1126

积分

金牌会员

积分
1126
人工智能机械臂

372

主题

0

回帖

1126

积分

金牌会员

积分
1126
2025-2-5 18:04:28 | 显示全部楼层 |阅读模式
技术背景

在前面的一些文章中,我们介绍过关于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 pysagesfrom pysages.colvars import DihedralAnglefrom pysages.methods import Metadynamicsdef phi_psi():    from numpy import pi    cvs = [DihedralAngle([4, 6, 8, 14]), DihedralAngle([6, 8, 14, 16])]    height = 5.0  # kJ/mol    sigma = [0.4, 0.4]  # radians    stride = 3    ngauss = 500    grid = 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 = NVTdefault_in_file_prefix = ../protein/aladpbc=0 cutoff=999dt = 1e-3step_limit = 2000write_information_interval = 10thermostat = middle_langevinmiddle_langevin_gamma = 10rst = nvt_restartcoordinate_in_file = ../protein/alad_coordinate.txtplugin = /usr/local/python-3.7.5/lib/python3.7/site-packages/prips/_prips.sopy = ../pysages_metad.py相比于普通的NVT过程,这里只是多配置了plugin和py这两个参数,意指通过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
参考链接

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

372

主题

0

回帖

1126

积分

金牌会员

积分
1126

QQ|智能设备 | 粤ICP备2024353841号-1

GMT+8, 2025-3-10 15:34 , Processed in 1.105606 second(s), 27 queries .

Powered by 智能设备

©2025

|网站地图