Gromacs基础教程一:入门建议

        本系列教程针对的群体:非计算化学专业,而是偏生物方向的、有少量分子动力学模拟需求的人群。比如我本人当时在一个抗体工程实验室,之前从未接触过计算化学相关,甚至没有编程基础,课题组里面没有人接触过计算化学,也没有任何能讲授相关背景知识的人,但导师需要在一周到两周的时间内给出阶段性成果。所以比起懂与不懂,我们更关注时间,就算是一开始囫囵吞枣地做出一点什么东西,那也比卡壳了好久都做不出来强。

        首先肯定要从构建概念框架开始,由此便需要阅读一些有经验的大佬们写的博客。虽然官方手册也很重要,但是我强烈不推荐上来就生啃手册、文献甚至是外文教材,如果我们在完全没有背景了解的情况下就开始阅读外文,只会读得云里雾里最终读不进去。例如Periodic Boundary Conditions,每个词你都认得,翻译过来叫“周期性边界条件”,问题是串在一起突然就看不明白了。甚至一开始连阅读中文相关的周期性边界条件说明,想要理解都很困难,更别说生啃英文。我的看法是,虽然外文资料有大量质量极高参考价值很好的内容,但如果我们没法消化,甚至连看都看不下去还逼着自己看,这么做的效率太低了。这就像有一个营养价值非常高的食物摆在你面前,但它看上去非常黑暗料理,闻起来非常奇怪,吃起来味道很差,营养价值再高也吃不下去,吃不下去这些营养就不会变成你的一部分。

思想家公社的门口:量子化学·分子模拟·二次元icon-default.png?t=M85Bhttp://sobereva.com/        所以我最推荐的博客,思想家公社的门口,里面都是sobereva大佬非常用心写的博文,内容从各种初学者常见问题到高端操作都有涵盖,强烈建议都看一遍。当然也不是说把每篇博文都完完整整看,只需要点到目录,标题一个一个看过去,感觉想看就点进去。例如GROMACS软件在Linux和Windows下的编译安装方法,甚至Windows预编译都有四个现成版本准备好了,下载下来解压按照说明加入环境变量就可以。还有计算化学购机配置推荐,我之前也做过一期视频介绍过硬件相关。以及“谈谈分子动力学模拟蛋白-配体复合物过程中配体发生脱离的原因”或“谈谈怎么判断分子动力学模拟是否达到了平衡”这类教程里面不会说,但实际上非常重要的问题。或者是“谈谈我对计算化学代算的看法”或“为什么我极度鄙视和厌恶百毒”这些由于长期工作得出的肺腑之言,以及“有感于如今许多超懒的科研工作者”之类的鞭策,乍一看会觉得这个人怎么这么说话,但仔细想想话糙理不糙。在科研领域躺平或内卷是个人选择,当然,要是选择了躺平也就不要抱怨怎么别人那么多成果了。博客也包含“计算化学中的一些常见不良写法和用词”、“计算化学相关的免费的在线数据库及工具”这些实用性很高的资料。同时博客也比较,至少会标注博文发布或更新的时间。计算领域代际更新速度太快时间一旦长了资料的参考价值就会大幅降低,因为不再适用于当前版本了

哲●科●文Jerkwinicon-default.png?t=M85Bhttp://jerkwin.github.io/        这也是第二个博客哲科文Jerkwin的主要问题。虽然完整翻译了GROMACS的教程、文档、手册等等,但由于代际问题已经不再适用于当前的GROMACS,如果照着这些内容来做必定会出大问题。不过,哲科文对概念原理性知识文件分析的博文相当详细,例如“周期性边界条件”“最速下降”之类专有名词的解析

超算云播课-GROMACSicon-default.png?t=M85Bhttps://space.bilibili.com/506735836/search/video?keyword=GROMACS        如果看完这些文档,仍然觉得这些专有名词晦涩难懂,可以在b站“超算云播客”里搜索关键词“GROMACS”,找到田文得老师的课程,视频一开始就是对这些概念的讲述。至于后面的具体操作内容我也不推荐大家照着看,例如视频里有命令开头是“gmx_mpi”,但翻阅大部分GROMACS教程的命令开头都是“gmx”,他并没有讲到为什么会有这两种命令开头的区别,其实是由于使用的超算平台上预装的GROMACS版本为MPI版本所致。对于大部分我们这样在自己电脑上安装的GROMACS,编译的时候都不会选MPI版本,命令行自然也就和视频里的不一样。这也是我非常想提醒初学者们的一点——无论如何都不要想都不想就直接照搬别人的办法。一开始不理解,依葫芦画瓢,没问题;但是不能画完瓢就完了,一边做要一边想为什么这么做,这一步骤的目的是什么,选择这些参数的原因是什么,我的体系是否真的适用这种方案,甚至这种方案是否合理……例如GROMACS官方教程的“蛋白质-配体复合物”,力场选择CHARMM36,配体小分子的拓扑文件用CGenFF生成,但这并不是最佳方案。前面提到“思想家公社的门口”,博主sob老师写了一个叫Sobtop的软件,能够非常简单地生成适用于GROMACS的配体小分子拓扑,输几个数字敲几下回车就搞定了,绝对比CGenFF好用得多。同时,Sobtop需要配套使用Amber14sb力场,在github上面可以找到“Trusted force field files for gromacs”,下载其中“amber14sb_parmbsc1.ff”,但是为什么下载安装好了,明明是“trusted force field”却会报错呢?这也确实是它的问题,力场文件中缺了一个成键参数。ffbonded.itp打开,在第783行之后添加一行“NA CV CC CT 4 180.00 4.60240 2”即可正常运行。所以有时候即便官方也会出错,一定要在报错的时候仔细看报错内容,思考报错的原因,然后解决它

        对于初学者来说报错真是再正常不过的事了,放平心态冷静阅读错误内容,排查错误方案,或者是到计算化学公社论坛、github、手册之类的地方翻找解决办法,尤其是注意细节

        很多细节性的东西教程里不会体现。例如受体是异源多聚体蛋白,只有其中一个亚基可以结合配体,那么模拟对象应该是配体结合亚基+小分子还是整个异源多聚体蛋白+小分子呢?这个问题就需要你对你所模拟的蛋白各亚基功能有清晰的理解。如果其他亚基对底物结合亚基并没有显著的功能上的影响,可以忽略。但如果其他亚基是作为调节亚基存在的,尤其是实验观察到当这个亚基不存在时,底物结合亚基将失去生物学活性,那就必须放在一起模拟!

        再比如各种力场都有什么特性,该怎么选择Amber力场的特性是参数规范化,所以适用范围极广,几乎可以称之为通用型力场不知道该选哪个就选这个GROMOS力场就不具有这种参数规范化的特征,所以适用范围有限,但对于完全的生物大分子体系模拟,它的精度非常好。这里边还有一个小故事,就是一开始GROMACS的开发者后来分成了两派,一派主张提升性能,另一派主张精度优先。于是提升性能的那一派造就了今天的GROMACS——世界上速度最快的分子动力学模拟软件,没有之一。但是为了性能它甚至牺牲了部分功能,例如隐式水模型,现在的版本已经不支持了。而主张精度优先的那一派则创造了GROMOS。

        此外,如果是由于虚拟筛选而想要做分子动力学模拟,切记思考这两个问题

①分子动力学模拟和分子对接有什么区别?

②为什么说思路要永远从结果出发,抵达模拟?

        简单来说就是,动力学模拟是模拟瞬态,分子对接则是稳态,就像动力学和热力学各自研究的对象不同,但一个反应会同时受热力学和动力学影响。这方面就需要对物理化学的概念熟悉,本科没好好学物化的可以重新捡起来补一补了。记得sob老师博文提到的一个“为什么说是相互作用而不是相互作用力”,因为衡量相互作用,用的是“能(焦耳)”,而不是“力(牛顿)”。至于思路要永远从结果出发,是因为计算机模拟永远都是“假的”,只有实验结果才是真的。我们对一个结果做出各种各样的解释,其本质都是猜想假说,并没有绝对正确的说法,只有合理性大小的说法。但学习过程中很多时候过于强调了从已知的各种学说出发,我们很容易无意识地认为那就是“真的”。

GROMACS Tutorialsicon-default.png?t=M85Bhttp://www.mdtutorials.com/gmx/index.html        至于官方教程,还有几个点要注意。对于入门生物分子体系模拟,最好把“水中的溶菌酶Tutorial 1: Lysozyme in Water”和“蛋白-配体复合物Tutorial 5: Protein-Ligand Complex”都看过一遍之后再开始做。并且在开始做之前先明确要做的体系是什么类型的体系,单一的蛋白质还是蛋白质+配体,配体是生物大分子还是有机小分子,受体是单一亚基还是多聚体,这个多聚体由同源亚基还是异源亚基构成;这个体系适用于体内还是体外还是某种特殊环境内,通常温度是多少即便你想做的是蛋白配体复合物,也不要忽略“水中的溶菌酶”这个教程,因为它里面包含了很多基础的解释,例如GROMACS可以使用的文件类型是什么样的,拓扑文件的某个部分有什么含义,以及如何在GPU上运行GROMACS。大部分教程没有提到在GPU上运行GROMACS,这导致很多人不知道GROMACS用GPU加速比纯CPU运行速度快了多少倍,有人上来就问我“为啥给这么高的显卡,GROMACS不是吃CPU的吗”,甚至我与北京超算交涉时客户经理还理直气壮说“GROMACS大多都是在CPU上跑的啊!”。。。

天哪你们租超算的时候千万别被这种人忽悠。我现身说法,浙江超算M6区单节点128核纯CPU,一个四万多原子的体系,50ns跑了一天多。现在我自己笔记本电脑24线程+一张RTX3080Ti,一个八万多原子的体系,50ns也只要一天。租北京超算做动力学模拟啥也别想,直接奔着宁夏超算N30区去就可以,那个区RTX3090并且最多能申请到16核CPU,已经是做模拟性价比最高的配置了。千万别租Tesla显卡,那个不是双精度计算就用不上,性价比太低了。一般的GROMACS模拟,单精度已经足够。

如果租用超算,绝大部分肯定都是Linux系统。这时候学一点bash shell就很有必要了,至少Linux基础的命令行操作得会。

最后一些血泪教训就是,尽量不要看百度或者知乎的教程。百度我就不说了,但凡有点科研需求的人早把这玩意丢下水道去了;知乎看别的东西可以,GROMACS教程质量真的是奇差,我一开始看那个什么从入门到发文章,看得满头问号:既然是“入门”,光列个步骤出来,这也叫教程?

下一期介绍GROMACS模拟蛋白质的准备方法。

你可能感兴趣的:(经验分享)