计算化学公社

 找回密码 Forget password
 注册 Register
Views: 7033|回复 Reply: 45
打印 Print 上一主题 Last thread 下一主题 Next thread

[其它程序] 基于gmx_MMPBSA程序的结合自由能计算-MMGBSA方法

  [复制链接 Copy URL]

57

帖子

0

威望

683

eV
积分
740

Level 4 (黑子)

本帖最后由 jackshoulder 于 2025-5-15 20:18 编辑

基于gmx_MMPBSA程序的结合自由能计算-MMGBSA方法

1 前言

结合自由能,在模拟计算中,用以量化受体-配体之间的结合强度的一种指标。尤其是对于药物设计,蛋白-蛋白互作,蛋白-核酸,核酸-小分子等研究领域,均会涉猎分子动力学模拟的工作。在众多工作中,分子动力学数据后处理中,直接用以量化研究对象之间的识别强度和结合能力的指标较少,所以结合自由能在研究受体-配体间结合强度的尤为重要。但对于初学者,众多动力学程序及计算结合自由能相关程序,难以入手,特别是没有耐心看用户手册的新手们(毕竟大部分都是英文,畏难情绪更加大)。于是,作为一个踩过坑的新手我来说,再次分享一下有关结合自由能计算的经验。

由于本人刚入坑时,也是一头雾水,不经意间逛到强大的计算化学公社,从此几乎将其视为圣经。所以根据流行程度,选择了Gromacs程序来研究分子动力学。为什么选择,可以参考sob老师的帖子,《2021年计算化学公社论坛“你最常用的计算化学程序和DFT泛函”投票结果统计》(http://bbs.keinsci.com/thread-23482-1-1.html)和《2024年计算化学公社举办的计算化学程序和DFT泛函的流行程度投票结果》(http://bbs.keinsci.com/thread-45272-1-1.html)毕竟这是真适合新手入门的程序(对于我而言)。于是做完分子动力学之后,为了我课题研究的完整性,我要通过计算的方法来量化受体-配体间的结合强度,因此又要挑选相关程序来进行计算。起初,本人也是使用了李老师的脚本来进行结合自由能计算,也许是本人能力有限,每次算出来的值要么为0,要么为正值,这明显的不对(因为动力学轨迹来看,我的蛋白-核酸结合良好),于是就不停查文献找其他程序,后里找到了gmx_MMPBSA这个程序。专门为Gromacs开发的用以计算结合自由能程序。

gmx_MMPBSA,该文献发表于2021年,各位可以进入其官方网址,进行详细了解(https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/)。对其相关推荐和讨论,可以参考sob老师的《GROMACS做MM/PBSA结合自由能计算最理想的工具:gmx_MMPBSA》(http://bbs.keinsci.com/thread-23634-1-1.html)。正如其官网介绍所说,“gmx_MMPBSA 是基于 AMBERMMPBSA.py 的新工具,旨在使用 GROMACS 文件执行自由能量计算”。因此,在这里,大佬们不要抬杠,毕竟 AMBER我不会,会AMBER的可以直接用MMPBSA.py计算。从我开始使用这个程序以来,已经有一年之久,从其1.6.2版本到现在的1.6.4版本,使用其计算过较多体系:蛋白-蛋白,蛋白-小分子,蛋白-核酸,核酸-小分子,核酸-核酸,核酸-多肽,蛋白-多肽等体系。也常与使用此程序的一些友友们交流经常。本人对此程序稍有了解和使用经验,突发奇想来论坛写一篇帖子,互相交流和分享经验。



2 安装
       本人使用的是ubuntu系统,从最开始的20,到22再到现在的24,均自己安装配置部署,也可以交流分享ubuntu系统部署经验。
         安装方法,我这里不详细介绍,毕竟安装方法,官网介绍的非常详细https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/installation/ 。我是1.6.2版本入坑的,最开始我纯属小白,按照官网的安装,包括env.file  始终会卡在git和pip某些程序安装不了,于是找人安装(100元子,大概23年12月左右)。反正也是用着把毕业论文做完了。但由于后续维护,以及后面我继续在组里读博,程序安装始终都要解决。又捣鼓了很久,自己在装1.6.3版本的时候,装成功了。总结经验:有些安装包,可能是在当前的conda源没有,也有可能是网络问题,导致有些环境配置过程中断; 因为,那个时候流行用chatgpt,都知道的,要**上网嘛,于是我在组里的机器(双系统,我都装了个工具),使用env.file 安装的时候,非常顺畅;还有一种情况就是不要用校园网,毕竟有些校园网拒绝访问很多网址。
          现在安装相对简单一行命令就可以搞定,其实就是官网给的方法 。只要你网络顺畅,conda源update一下,基本上都能安装成功。
  1. conda env create --file env.yml
复制代码
        由于在使用env.file时,里边有gromacs的安装,如果你的系统中安装了gromacs程序,你可以将env.file中“- gromacs<=2024.3”所在行删除掉。后续在使用的时候,程序会自动读取你当前系统中,bashrc文件中写入的gromacs版本。



3 使用方法
gmx_MMPBSA gmx_MMPBSA_ana两部分主要程序
         gmx_MMPBSA 负责计算,  gmx_MMPBSA_ana负责绘图
         本人先声明一点,我分享的经验不一定全面,所使用的代码和方法,以及命令参数,均是前言中提到的体系中,成功跑通过,如果你按照我的方法,没有跑通,表明缺失了相应的文件,或者中间有些步骤没有正确处理。我的处理方式和方法不一定最优,但可以畅通无阻。一般体系分别包括“蛋白-小分子”,“蛋白-蛋白”,“蛋白-核酸”,“核酸-小分子”为什么不提多肽,其实多肽可以分为两种情况,一种是短肽,还有一种是长肽,短肽你可以把其视为“小分子”处理,这样就跟“蛋白-小分子”体系类似;另一种是长肽,你可以将其为一种较短的蛋白质处理,这样就跟“蛋白-蛋白”体系类似。为什么要提到“核酸-小分子”这种小众的体系,其实这并不小众,可能大家不怎么了解,现在在检测领域,核酸又称适配体,现在更流行的叫法,功能核酸,在抗生素残留和肿瘤标志物检测,会做核酸-小分子的动力学,并且适配体几乎都是单链的DNA和RNA。做这种体系的模拟比较少。还有一个原因是,本人就是做适配体的,所以将其作为一个例子分享一下,因为适配体-小分子的模拟比较小众,对很多刚入门新手,几乎找不到很好的方法和策略。于是借此分享一点个人经验。
        后文提到的方法中,均是使用MMGBSA方法进行的计算,MMPBSA和RISM后续再专门写帖子介绍
        强烈建议大家,有时间,多去看看官网给的使用手册以及例子。

(1) 准备工作
       如工作流程图所示(https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/howworks/),需要对提供的complex,recepotor,ligand通过parmed和tleap进行转换为AMBER程序所能识别的文件;注意:大多因为结构文件有问题报错,均会在这个环节出现,如小分子结构扭曲,键连关系不正确,下载小分钟结构时为2d导致的结构等问题均会在这里报错。另外一类常见报错就是index索引超出范围,这里一般均是你提供给程序的结构文件和你的轨迹文件中原子数不一致导致的。
        与此同时,对提供的gromacs轨迹(xtc或trr)进行转换。流程图中有“clean up”和“dry trajectory”,这个意思是你要对你的轨迹进行清除,在(https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/gmx_MMPBSA_running/)中提到“The trajectory defined in -ct, -rt, or -lt doesn't contain PBC”,要求对轨迹进行周期性矫正。一般这里不做周期性矫正,同样也会导致index超出范围的报错等问题。

(2) 输入文件

        参数文件:mmpbsa.in       结构文件:tpr(是你正式md时的tpr,一般会命名为md.tpr或者md_0_1.tpr)     索引文件    index.ndx        轨迹文件:  xtc或者trr       top文件(可选,但被要求)          参考结构文件  pdb (可选)     加粗均是必须提供的。

        这里我提供一个基于MMGBSA方法的mmpbsa.in文件,大家可以直接用到自己的计算中,稍作修改即可,主要是更改力场,温度,离子浓度即可。通用性参数文件; mmpbsa.in (5.29 KB, 下载次数 Times of downloads: 279)


        对相关参数做一定的解释,注:我提供的mmpbsa.in文件中,在接下来没有进行解释的,都是按照官网推荐默认值。
  sys_name             = "SAs16-1 with SMP"      # 用户自定义;
  startframe           = 1                                              # 起始帧,建议轨迹中的第一帧,但也可以自己定义从自己轨迹的第多少帧开始;
  endframe             = 9999999                               # 结束帧可以是自己轨迹的最后一帧所对应的帧号,也可以写9999999,这样的目的是使轨迹中的帧尽可能算完,因为你的轨迹也不可能超过9999999帧
forcefields       = "leaprc.protein.ff14SB/leaprc.gaff2"     # 最关键的一点来了,力场参数,“/”左边是受体力场,右边是配体力场。(这里“/”也可以是“,”两种方法,程序都是能识别的。力场的写法至关重要,见官网对力场的写法要求“https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/input_file/#general-namelist-variables”中“forcefields”部分的介绍。这里力场尽可能与你动力学轨迹中所用力场一致。
ions_parameters      = 1     # 这个参数跟“forcefields ”字段一样。
PBRadii              = 4       # 这个参数,我改过,因为我是用MMGBSA中的“igb=8”所以这个地方就必须写4 ,具体这个值写多少,必须根据你用的哪种“igb”方法;具体见官网“https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/input_file/#general-namelist-variables”中“PBRadii”字段。
temperature          = 298.15    # 温度,不用过多赘述,这个跟你跑动力学时,保持一致即可。
gmx_path             = ""   # 这个地方,我常会看见有网友去进行定义,其实这里不需要,如果你是使用的ubuntu系统,只要你在bashrc中添加了gromacs的环境变量,那么这个地方空着不写,程序会自动去检查的系统gromacs版本并使用的。
igb         = 8    # 这个地方,根据大家的选择,官网默认用的5 如果用的5 那么记得把PBRadii 改成3,这个地方我习惯性使用8,具体哪个好哪个差,我判别不了。
intdiel              = 5                  #内部介电常数,我一般写的5,因为我平时算核酸和小分子体系比较都,因为核酸的带电性质。
extdiel              = 78.5         #  外部介电常数,一般就默认,78.5
saltcon   = 0.15   #  盐浓度,这个就跟你动力学模拟时一致吧,基本上要么为0,要么为0.15,因为现在动力学大部分基本都是按照0.15生理条件在设置。
idecomp   = 2      #  残基能量分解,这里我习惯用2 将每一个残基都进行分解到1-4 EEL added to EEL and 1-4 VDW added to VDW potential terms,具体看个,只是分解的不同项归到哪个类别里边。“https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/input_file/#decomp-namelist-variables
dec_verbose          = 3      #    这里也是看个人,因为我有时候会去看Complex, Receptor, Ligand,的各项值的分解,以及主链和侧链对能量的贡献,因此我会选择3。
print_res            = "within 1000"        #  这里,很多伙伴会写6或者5,有或者更小,我一般是选择尽可能的大,这样程序会自动去判断你受体与配体之间多远的距离的残基,去做能量分解,写的越大,基本上会把你体系中,每一个残基都进行考虑,这个地方,其实,建议考虑所有残基,通常,无限远的残基,结合自由能分解出来,也是0,这里不会增加计算的时间,这里只是做统计。因为你写的小了,你也不能完全保证,在整个轨迹中,哪些残基之间是保持在这些范围内的,因为这里在分解的时候,是根据你提供的初始结构去判断的,但你也不能保证初始结构按照within 6或者更短判断出来的残基在动力学过程中,是否有超出6或者其他值,也有可能在轨迹后期,有其它残基距离在6之内,但你在提供做残基分解的时候,最开始没有考虑到这一残基对,这样就不会分解到此残基上。索性,这里就写很大,尽肯能考虑所有残基。


(3)具体实现

          假设你已经跑完某个体系的动力学模拟。备注:以下动力学代码,来自sob老师培训班中,学习后,总结的。


         1)首先对md结束的轨迹进行周期性矫正
  1. gmx trjconv -s md_0_1.tpr -f md_0_1.xtc -o md1.xtc -pbc nojump -n index.ndx            
复制代码
        在选择的时候,选择自己index.ndx中,定义的复合物的那个组,如果没有建立组,就建一个,并命名为complex。这个时候得到的md1.xtc中就只包含了你的复合物分子,像水和离子是不存在的。周期性这里,其实,你选择的什么组 输出的组里边就只含有什么。

         2)做平动与转动的消除
  1. gmx trjconv -f md1.xtc -s md_0_1.tpr -fit rot+trans -o fit.xtc -n index.ndx
复制代码
      在选择的时候,两次均选择complex组,即受体和配体在一起的组。得到的fit.xtc就是一个比较干净的没有水和离子,做完周期性矫正和平动与转动消除的轨迹,符合gmx_MMPBSA计算对轨迹的要求。
      
         3) 新建一个文件夹“energy”(名字自定义),将相应的mmpbsa.in文件拷贝进去;并修改其中的力场,温度,离子浓度,内部介电常数
          注意1:“蛋白-蛋白”体系,你需要将mmpbsa.in文件中的forcefields          = "leaprc.DNA.bsc1,leaprc.gaff2"的力场改为自己md运行时所用的力场,intdiel = 1,内部介电常数改为1。由于我跑蛋白体系,力场一般都会用amber14sb,所以这里提供一个“蛋白-蛋白”体系,我常用的参数文件: mmpbsa.in (5.31 KB, 下载次数 Times of downloads: 148)
          注意2:“蛋白-小分子”体系,直接提供参数文件了,改动主要是力场的写法。 mmpbsa.in (5.3 KB, 下载次数 Times of downloads: 275)
          注意3:“蛋白-核酸”体系,核酸我一般会用bsc1那个力场,由于我们经常做适配体(含有单链核酸的体系,我曾试过解析的晶体结构,bsc1,OL15,以及OL3等,柑橘bsc1在多个适配体晶体结构,模拟效果较佳) mmpbsa.in (5.3 KB, 下载次数 Times of downloads: 45)
          注意4:“核酸-小分子”体系,内部介电常数改成5。 mmpbsa.in (5.29 KB, 下载次数 Times of downloads: 35)

         4) gmx_MMPBSA运行
若你用env.file成功且正确安装,那么你应该也正确安装了MPI并行化程序,这样就可以直接用下边的命令:
  1. mpirun --allow-run-as-root --oversubscribe -np 64 gmx_MMPBSA MPI -O -i mmpbsa.in -cs ../md_0_1.tpr -ct ../fit.xtc -ci ../index.ndx -cg 1 12 -cp ../topol.top -o FINAL_RESULTS_MMPBSA.dat -eo FINAL_RESULTS_MMPBSA.csv
复制代码
             --allow-run-as-root:这个参数,是由于我使用的是root用户,不加这个就会报错。
              --oversubscribe:   这个命令,没记错应该是我当时报超线程那个错误,加了这个就不报错了。
              -np 64    :这里是系统中的CPU核心数,这里的数字一定要小于你轨迹中的帧数,倘若-np后边的值大于你轨迹中的帧数也会报错,如果报这种错,那就把-np降一降。
              -cg 1 12    :这里是index.ndx中,你受体,配体所在的组号。这里也是与forcefields          = "leaprc.DNA.bsc1,leaprc.gaff2"字段对应的,先写受体的,再写配体的。

              -nogui  :    如果你在命令上加上这个参数,代表你只进行计算,不自动调用gmx_MMPBSA_ana做图形化的数据可视化分析。  后续可以手动可视化分析,调用gmx_MMPBSA_ana。直接运行就行了

注意:由于我是把gmx_MMPBSA写到了bashrc中,所以就可以直接调用,如果你们严格按照env.file安装的,那你应该要先激活环境
  1. conda activate gmxMMPBSA
复制代码

所有的运行就到这里结束了!

总结:此程序对于gromaca用户真的很有好,大家总是容易报错,主要原因还是没有好好的看官网的介绍,其实此程序官网写的是真的非常好,该做的提醒都写到了,只是大家没有仔细认真的去看完,导致处处碰壁报错。


目前只是基于此程序做了MMGBSA模型的结合自由能计算,正如题目所写,后期空闲时,再来总结MMPBSA,以及IE,3D-RISM,还有ALA突变给总结出来。至于本贴提到的一些参数,也仅仅是一个初探,具体设置为多少,没有一个特好的标准,如比:内部介电常数,在不同体系,可能就不太一样。

结语:祝大家工作顺利,科研畅通。祝计算化学公社千千万万同仁,一帆风顺!


评分 Rate

参与人数
Participants 16
eV +62 收起 理由
Reason
Carden-Li + 3 谢谢分享
Gandyiii + 3 谢谢分享
nnnnnn + 4
樊樊樊 + 5 谢谢
Dr.Assassin + 2 牛!
safia + 3
13277552957 + 4
国小药 + 3
tptp + 5
AxiEJohn + 5 谢谢
reniiiiuuu + 4 谢谢
running123 + 4 谢谢分享
深执成伤OvO + 3 谢谢分享
0x7F + 4 谢谢
数据挖掘 + 5 牛!
love_yy + 5 赞!

查看全部评分 View all ratings

148

帖子

0

威望

1039

eV
积分
1187

Level 4 (黑子)

46#
发表于 Post on 1 hour ago | 只看该作者 Only view this author
keeper14335 发表于 2026-1-23 16:04
感谢老师答疑!我已按照您提供的办法找到了amber99sb-ildn力场在mmpbsa.in文件中的写法,目前正在计算最 ...

一般来说是算RMSD平稳之后那段轨迹(间隔取样),如果模拟了200ns但只取最后1ns计算,那有点搞笑,可能会被审稿人批。
此外,MM-PBSA主要靠CPU算,不靠GPU。你可以考虑开纯CPU的机器。

3

帖子

0

威望

33

eV
积分
36

Level 2 能力者

45#
发表于 Post on 4 hour ago | 只看该作者 Only view this author
jackshoulder 发表于 2026-1-21 22:09
对于amber99sb的写法,官网是有的哦,链接如下:https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/i ...

感谢老师答疑!我已按照您提供的办法找到了amber99sb-ildn力场在mmpbsa.in文件中的写法,目前正在计算最后10ns的结合自由能,并且把间隔帧数改成了1,之前一直用的10,希望有效果吧!如果计算模拟全程的话,这个成本有点太夸张了,我模拟了200ns,毕竟是在超算平台计算的,还是要考虑一下成本问题。至于EEL的正负问题,因为目前我看了两个文献中他们EEL都为负值,所以才怀疑是自己计算时哪里出现问题。

57

帖子

0

威望

683

eV
积分
740

Level 4 (黑子)

44#
 楼主 Author| 发表于 Post on 前天 22:09 | 只看该作者 Only view this author
keeper14335 发表于 2026-1-20 17:29
楼主您好,请问我计算的eel为正值是什么原因呢?我是蛋白-蛋白对接后用gmx进行动力学模拟,然后利用gmx_mmp ...

对于amber99sb的写法,官网是有的哦,链接如下:https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/input_file/               在页面中检索“Forcefields for Protein/Nucleic Acids”就会看到了,这里提供了较老版本的写法。     计算出来eel为正并不奇怪,可能的原因,两个蛋白相互作用上,其主要由范德华驱动,而不是静电相互作用。如果你想改善这一点,你可以增加计算结合自由能的帧数,你目前是取的模拟最后1ns,应该只有100帧,也不排除计算的样本量不足导致,你可以尝试将最后10ns,或者全段轨迹都进行计算,提高计算样本的量,来弥补偶然性。希望解答了你的疑惑

57

帖子

0

威望

683

eV
积分
740

Level 4 (黑子)

43#
 楼主 Author| 发表于 Post on 前天 22:01 | 只看该作者 Only view this author
科研小白0126 发表于 2026-1-14 18:25
老师我的给体和受体都是有sobtop软件构建的itp,里面都是gaff力场,那我在mmpbsa.in这么写 forcefields   ...

两个都要写哦,因为我们在计算的时候,命令里边会写入受体和配体的组,如:1 2,  受体和配体所用的参数都得明确的在in文件中进行定义,在计算的时候才会被载入

3

帖子

0

威望

33

eV
积分
36

Level 2 能力者

42#
发表于 Post on 3 day ago | 只看该作者 Only view this author
楼主您好,请问我计算的eel为正值是什么原因呢?我是蛋白-蛋白对接后用gmx进行动力学模拟,然后利用gmx_mmpbsa进行计算,mmpbsa.in文件用的您的,计算帧数选的模拟的最后1ns,是否因为力场不匹配?因为我模拟时用的力场为amber99sb-ildn,而在官方手册上寻找力场参数时发现其针对“蛋白-蛋白”体系提供的只有leaprc.protein.ff19SB和leaprc.protein.ff14SB两种力场,没有我需要的amber99sb-ildn力场,这种情况该怎么办呢?

73

帖子

0

威望

435

eV
积分
508

Level 4 (黑子)

41#
发表于 Post on 2026-1-14 18:25:07 | 只看该作者 Only view this author
本帖最后由 科研小白0126 于 2026-1-14 18:29 编辑
UPL_JUN 发表于 2025-6-11 10:56
借楼标记一下:1.mpirun detected that one or more processes exited with non-zero states ,我系统上 ...

老师我的给体和受体都是有sobtop软件构建的itp,里面都是gaff力场,那我在mmpbsa.in这么写 forcefields          = "leaprc.gaff/leaprc.gaff" 对吗,还是只要写一个 forcefields          = "leaprc.gaff",这里的leaprc是加载脚本的意思吗

6

帖子

0

威望

149

eV
积分
155

Level 3 能力者

40#
发表于 Post on 2025-12-29 17:29:59 | 只看该作者 Only view this author
Loading0760 发表于 2025-12-23 16:31
肯定不合适的,金属和DNA的作用类型不适合用PB或者GB模型描述。

感谢您的回复 是的 前段时间尝试的时候  一直给我报错显示不支持金属离子存在

6

帖子

0

威望

149

eV
积分
155

Level 3 能力者

39#
发表于 Post on 2025-12-29 17:28:53 | 只看该作者 Only view this author
jackshoulder 发表于 2025-12-23 15:31
这个,无法严格计算,gmx_MMPBSA程序计算你当前的这个体系可能会有些困难,但你可以尝试,将环状DNA一个 ...

好的 非常感谢您的回复 不行我就试试别的方法了

152

帖子

0

威望

888

eV
积分
1040

Level 4 (黑子)

38#
发表于 Post on 2025-12-23 16:31:17 | 只看该作者 Only view this author
新人计算 发表于 2025-12-17 10:55
楼主您好 最近刚好在了解这个gmxMMPBSA 我有一个问题想请教一下您 我的结构是一个环状DNA 然后环状的中心存 ...

肯定不合适的,金属和DNA的作用类型不适合用PB或者GB模型描述。

57

帖子

0

威望

683

eV
积分
740

Level 4 (黑子)

37#
 楼主 Author| 发表于 Post on 2025-12-23 15:31:07 | 只看该作者 Only view this author
新人计算 发表于 2025-12-17 10:55
楼主您好 最近刚好在了解这个gmxMMPBSA 我有一个问题想请教一下您 我的结构是一个环状DNA 然后环状的中心存 ...

这个,无法严格计算,gmx_MMPBSA程序计算你当前的这个体系可能会有些困难,但你可以尝试,将环状DNA一个组,金属离子一个组,然后进行计算,但这样计算的严谨性与准确性无法保证

6

帖子

0

威望

149

eV
积分
155

Level 3 能力者

36#
发表于 Post on 2025-12-17 10:55:05 | 只看该作者 Only view this author
楼主您好 最近刚好在了解这个gmxMMPBSA 我有一个问题想请教一下您 我的结构是一个环状DNA 然后环状的中心存在几个金属离子  那么我能不能通过gmxMMPBSA来计算金属离子与环状DNA的结合能呢

57

帖子

0

威望

683

eV
积分
740

Level 4 (黑子)

35#
 楼主 Author| 发表于 Post on 2025-12-13 19:02:26 | 只看该作者 Only view this author
prolifery 发表于 2025-12-12 10:51
Building Normal Complex Amber topology...
  File "/public/software/anaconda3/envs/gmxMMPBSA/bin/gm ...

建议你将此问题,复制给大模型,找具体解决办法。目前我能给的帮助如下:这个问题,应该是你topol文件有问题,但具体问题出在哪里,我不清楚,由于我无法查看你所运行的问题。应该是topol文件或者是topol中引用的某些文件参数有问题。极有可能是小分子的top出现了问题。如果你小分子top是按照sob老师的方法生成的应该不会出问题。其次,如果你的小分子的配体是非常规的,比如那种奇奇怪怪的二面角等参数,非常容易报错。

1

帖子

0

威望

27

eV
积分
28

Level 2 能力者

34#
发表于 Post on 2025-12-12 10:51:57 | 只看该作者 Only view this author
[INFO   ] Building Normal Complex Amber topology...
  File "/public/software/anaconda3/envs/gmxMMPBSA/bin/gmx_MMPBSA", line 8, in <module>
    sys.exit(gmxmmpbsa())
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/GMXMMPBSA/app.py", line 98, in gmxmmpbsa
    app.make_prmtops()
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/GMXMMPBSA/main.py", line 687, in make_prmtops
    self.FILES.mutant_receptor_prmtop, self.FILES.mutant_ligand_prmtop) = maketop.buildTopology()
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/GMXMMPBSA/make_top.py", line 125, in buildTopology
    tops = self.gmxtop2prmtop()
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/GMXMMPBSA/make_top.py", line 534, in gmxtop2prmtop
    com_top = self.cleantop(self.FILES.complex_top, self.indexes['COM']['COM'])
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/GMXMMPBSA/make_top.py", line 822, in cleantop
    rtemp_top = parmed.gromacs.GromacsTopologyFile(ttp_file.as_posix())
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/parmed/gromacs/gromacstop.py", line 346, in __init__
    self.read(fname, defines, parametrize)
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/parmed/gromacs/gromacstop.py", line 497, in read
    key, knd, t, replace = self._parse_dihedraltypes(line)
  File "/public/software/anaconda3/envs/gmxMMPBSA/lib/python3.9/site-packages/parmed/gromacs/gromacstop.py", line 928, in _parse_dihedraltypes
    per = int(words[si+3])
ValueError: invalid literal for int() with base 10: '3.0'

这是什么情况?

39

帖子

0

威望

219

eV
积分
258

Level 3 能力者

33#
发表于 Post on 2025-10-20 14:22:09 | 只看该作者 Only view this author

anyway 感谢

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-23 20:55 , Processed in 0.216247 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list