# gromacs_docker 在容器中使用gpu需要安装:[nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) 运行命令: ```shell docker run -it --net=host --gpus all --name 容器名 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all 镜像名 ``` 首次使用报错: ```shell docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]. ``` 解决办法: ```shell sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \ sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list sudo apt-get update sudo apt-get install nvidia-container-runtime ``` 02 验证执行下列命令: ```shell which nvidia-container-runtime ``` 输出 /usr/bin/nvidia-container-runtime,表示安装成功。 03 docker 使用: ```shell docker run -it --gpus all ** ``` 此时,设置使用设备上全部的显卡。 目前尚不支持debian12 ## Dockerfile.lower 为一些老旧的cpu一些加速指令集用 Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz ## 模拟教程 官方模拟教程 [GROMACS Tutorials](http://www.mdtutorials.com/gmx/) ## topol文件生成 [给小分子生成top学文件的工具总结帖](http://bbs.keinsci.com/thread-428-1-1.html) Sobtop(http://sobereva.com/soft/Sobtop) 这是我开发的GROMACS拓扑文件产生工具,主要产生GAFF、AMBER力场的拓扑文件,但由于其力场库可以自行非常方便地修改和扩充,因此Sobtop本质上是完全普适、通用的。Sobtop可谓是最理想、最灵活、最易用的产生GROMACS拓扑文件的工具。此程序用起来超级简单,什么额外的程序以及特殊的运行环境都不需要装,解压即用。Sobtop使用极其方便,照着屏幕上的提示敲几下键盘,itp、top和gro文件就产生了,另外也可以要求产生rtp文件。Sobtop的主页有非常详细的产生各类体系拓扑文件的例子,并给出了详细的相关要点的说明。从例子中你会体会到Sobtop的设计特别注重兼顾便利和灵活,初级用户会体会到它极其便利,而高级用户则会体会到通过Sobtop构建复杂体系拓扑文件特别灵活好用。 [下载](https://cloud.189.cn/t/MbiQ3yjMjmMr)(访问码:npg8) • acpype:这是一个Python脚本,可以在http://svn.code.sf.net/p/ccpn/code/branches/stable/ccpn/python/acpype/下载。使用前必须在机子里安装AmberTools(免费),acpype会调用其中的Antechamber先产生Amber格式的拓扑文件然后再转成GROMACS的。acpype用法很简单,要处理xxx.mol2就执行./acpype.py -i xxx.mol2,算完后会新产生一个xxx目录,里头有_GMX后缀的.gro、.itp、.top,直接在GROMACS里用即可。默认情况下,产生的拓扑文件是基于GAFF力场的,另外也会输出_OPLS后缀的基于OPLS力场的文件,但属于实验性质不建议用。.mol2文件用常用的GaussView就可以产生(但必须确保在gview里看到的分子结构中没有诡异的成键方式),也可以通过OpenBabel或Antechamber将其它格式转成.mol2。默认情况下acpype分配的原子电荷是Antechamber产生的AM1-BCC,虽然能用,但明显不如RESP/RESP2电荷理想。建议大家按前述做法用Multiwfn计算出RESP或RESP2电荷,自行写入分子拓扑信息的[atoms]的原子电荷那一列。 ## 小分子top学文件生成 生成拓扑(topology)文件的流程涉及多个步骤,通常包括分配原子类型、确定分子内的相互作用参数以及生成最终的拓扑文件。以下是一个通用的流程总结: 1. 准备分子结构文件(优先准备mol2格式) 输入文件: 提供分子结构文件,常见格式包括 .mol2、.pdb、.xyz 等。这些文件通常包含分子中各个原子的坐标和连接信息。 2. 分配原子类型 选择力场: 决定使用哪种力场(如 AMBER、GAFF、UFF 等)来分配原子类型。 分配原子类型: 使用自动工具根据分子的化学环境为每个原子分配适当的原子类型。 检查并手动修正未能自动分配的原子类型。 可能会使用如 assign_AT.dat 文件的自定义规则来辅助分配。 确认原子类型: 确保所有原子类型已正确分配。 3. 分配 Lennard-Jones (LJ) 参数 LJ_param.dat 文件: 检查并确保所使用的 LJ_param.dat 文件中包含所有已分配的原子类型的 LJ 参数。 检查参数: 如果工具提示找不到某些原子的 LJ 参数,手动添加或修改 LJ_param.dat 文件以包含缺失的参数。 4. 生成键合参数 选择生成方法: 直接使用预构建参数: 如果可能,使用预构建的键合参数(如键长、键角、二面角等)。 使用 mSeminario 方法: 如果需要更高精度的键合参数,可以选择基于 Hessian 矩阵的 mSeminario 方法。此方法需要外部量子化学软件生成的 Hessian 矩阵文件(如 Gaussian 的 .fchk 文件)。 混合方法: 结合预构建参数和 mSeminario 方法,缺失的参数可以通过猜测或其他方法补充。 5. 处理报错和修正 常见问题: 处理工具报错,如未找到特定原子类型的参数、文件格式错误等。 解决方案: 根据错误提示,修改相应的参数文件或重新分配原子类型,确保工具能够顺利生成拓扑文件。 6. 生成拓扑文件 确认生成文件: 当所有参数和原子类型都正确分配后,工具将生成最终的拓扑文件(通常是 .top 文件)。 输出文件检查: 检查生成的拓扑文件,确保所有参数和连接信息准确无误。 7. 后续处理 进一步优化: 如果有需要,可以使用其他工具或手动编辑拓扑文件以进行进一步优化。 使用拓扑文件: 将生成的拓扑文件与力场参数、坐标文件结合使用,开始分子动力学模拟或其他计算。 amber [立场原子](https://emleddin.github.io/comp-chem-website/AMBERguide-AMBER-atom-types.html) ## 文件介绍 .itp 文件 内容: .itp 文件通常用于存储分子类型的详细拓扑信息(如配体、小分子、辅因子等)。它包括分子中的原子类型、键、角度、二面角、非键相互作用等,但不包含坐标信息。 用途: .itp 文件可以被包含在主拓扑文件(.top 文件)中,用于为特定的分子类型定义拓扑。这种方法有助于模块化和重用拓扑定义,尤其是在多个体系中需要使用相同的小分子拓扑时。 .top 文件 内容: .top 文件是整个系统的主拓扑文件,通常包含: 力场信息: 包括使用的力场类型和相关参数。 分子类型的定义: 引用或包含.itp文件以定义特定分子的拓扑。 体系中的分子数量: [ molecules ] 部分列出整个系统中包含的分子类型及其数量。 其他全局参数: 如组分的排除规则([ exclusions ])、组合规则([ defaults ])等。 用途: .top 文件是系统的主拓扑定义文件,GROMACS 在模拟过程中会根据该文件来了解系统中的所有分子及其相互作用。 ## [小分子复合物合并](https://www.jianshu.com/p/d1ae60c96b33) .gro、.top和.itp文件[准备](https://blog.csdn.net/CocoCream/article/details/124001309) 准备工具是:ORCA+Multiwfn+sobtop 小分子蛋白模拟参考[简书教程](https://www.jianshu.com/p/d1ae60c96b33) ### RESP 原子电荷生成 ORCA+Multiwfn+sobtop 参考[博客](https://blog.csdn.net/CocoCream/article/details/124001309) 后续准备.gro、.top和.itp文件相关工具都准备到了docker镜像:orca_resp.tar 启动容器使用:docker-compose_resp.yml 文件启动。 下载 orca_resp.tar (https://cloud.189.cn/t/eEjANb6vI3am(访问码:3lhf))导入镜像,启动容器后启动,需要 AXV512 指令集的CPU处理器进行量化计算。 利用 ORCA+Multiwfn 生成小分子的 RESP 原子电荷(假设要计算mole.mol2): 默认axv2指令集,运行核心数目12 ```shell cd /root/workdir ./RESP_ORCA.sh mole.mol2 ``` script/RESP_ORCA.sh 这个脚本用于 小分子处理准备.gro、.top和.itp文件 ps: `RESP_ORCA.sh` 我进行了调整官方用的版本是界面版本,我用的是 `Multiwfn_noGUI` 可以参考源码仓库的 `RESP_ORCA.sh` 文件。 运行结束就可以得到一个 mole.chg 文件 ### 小分子键的优化 利用 ORCA+Multiwfn,来生成小分子键的优化 这一部分参照了这个[视频](https://www.bilibili.com/video/BV16t411g7AU?share_source=copy_web)的流程和这篇[文章](http://sobereva.com/490),主要是为了得到 .hess 文件): (1)将 FAD.mol2 文件转成 ORCA 输入文件 .inp 格式, 具体操作为:打开 Multiwfn 并导入第一步中用过的 FAD.mol2 文件,依次输入: 我这里使用 `Multiwfn_noGUI` 版本 容器映射关系: `- ./script/RESP_ORCA.sh:/root/script/RESP_ORCA.sh` ```shell Multiwfn_noGUI mole.mol2 # 交互式运行 Multiwfn_noGUI mole.mol2 > /dev/null << EOF 100 2 12 \n -11 1 0 4 1 0 q EOF ``` 操作注释 ```plaintext 100 # #选择其他功能的part 1 2 #文件转换功能 12 #生成 ORCA 输入文件 \n #输入你想保存的路径和名称,如果按回车就会保存在当前文件夹 -11 #选择 ORCA 版本 1 # 选择 ORCA 5.0 更高版本 0 #更改任务类型,因为我们要进行键的优化嘛 4 #优化 1 # B97-3c 0 # exit q # exit ``` 最后会得到一个 mole.inp 文件 (2)使用 ORCA 得到 .hess 文件;在.inp 文件(假设它叫 mole.inp)所在位置打开 cmd,输入: 需要使用绝对路径计算 ```shell /root/orca_6_0_0_shared_openmpi416_avx2/orca mole.inp > mole.out # 不行就试试ORCAPATH\orca mole.inp > mole.out,其中ORCAPATH是你的orca的绝对路径)等待计算完成就可以啦。 ``` (3) 使用sobtop生成topo 容器中已经安装在`/root/sobtop` 使用前将生成的.chg 文件和.hess 文件和.mol2 放到同一个文件夹中,执行: 操作前准备: ```shell cp -r /root/sobtop/* ./ chmod +x ./sobtop chmod +x ./atomtype /root/workdir/sobtop mole.mol2 ``` 操作 ```shell /root/workdir/sobtop mole.mol2 > /dev/null << EOF 7 10 /root/workdir/mole.chg 0 2 /root/workdir/mole.gro -1 4 1 2 2 /root/workdir/mole.hess /root/workdir/mole.top /root/workdir/mole.itp 0 EOF ``` 操作注释 ```plaintext '.mol2 path' #键入原本的 .mol2 文件的绝对路径 7 #添加电荷 10 #添加由 Multiwfn 生成的 .chg 文件 '.chg path' #键入第一步中得到的 .chg 文件的绝对路径 0 #返回 2 #产生 .gro 文件 'your path' #你希望储存的路径和名称,按回车就会生成在默认(应该是sobtop.exe所在的)文件夹里 -1 #设置力场的产生方法 4 #选用 DRIH 方法 1 #产生 GROMACS 拓扑文件 2 #使用 GAFF 原子类型,没法识别的自动用 UFF 原子类型 2 #通过DRIH方法得到力常数 '.hess path' #键入第二步中得到的 .hess 文件的绝对路径 '' #.top的储存路径和名称,按回车就会生成在默认文件夹里(和sobtop.exe在同一个文件夹内) '' #.itp的储存路径和名称,同上 #输出结束且无报错之后 0 ``` 然后,就得到了相应的.gro、.top和.itp文件了,接下来可以进行gromacs的分子动力学运算了。 ## .xvg 文件可视化 所有生成的 .xvg 文件可以使用 QtGrace(或其他工具)进行可视化。 安装 QtGrace: bash 复制代码 sudo apt install qtgrace 打开 .xvg 文件: bash 复制代码 qtgrace rmsd.xvg 按照这些步骤,你可以逐步进行 RMSD、RMSF、氢键、以及回旋半径的分析。你可以根据需求修改命令中的选项以适应不同的分子或参数。 ## RNA 小分子模拟 帖子:http://bbs.keinsci.com/thread-24273-1-1.html#:~:text=%E8%AF%B7%E6%95%99%E5%90%84%E4%BD%8D%E8%80%81%E5%B8%88%EF%BC%8C%E6%9C%AC RNA可以用Amber的Parmbsc1的力场,是amber中最新的适合模拟核酸的力场,文献见(Orozco et al. Nature methods, 13(1), pp.55-58.)不过OL5和OL3也可以用于核酸模拟,据说也能准确描述,不过我模拟核酸都用bsc1。 单纯的常规MD就用水中溶菌酶那个教程就行。力场用我上面提到的就行。 不过你模拟两个碱基的RNA有什么意义吗?是要模拟碱基配对过程(比如不同碱基之间的配对,这个貌似有人研究过了)吗还是怎么样。 你可以看下这篇文章,今晚才看见的, Assessment of AMBER Force Fields for Simulations of ssDNA(DOI: 10.1021/acs.jctc.0c0093)