Files
gromacs_docker/README.md
Your Name 6807368bf6 update
2024-11-06 10:15:05 +08:00

302 lines
13 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# gromacs_docker
在容器中使用gpu需要安装[nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
关于gromacs和使用orca准备topol文件时候需要交互可以使用python库 [pexpect](https://github.com/pexpect/pexpect) 进行自动化交互安装。[官方文档](https://pexpect.readthedocs.io/en/stable/overview.html)
```shell
pip install pexpect
```
运行命令:
```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)
Sobtophttp://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 ssDNADOI: 10.1021/acs.jctc.0c0093