MD 流程化

2025-2-26
2.2 使用 tleap 生成 Amber 参数文件
  • 输入文件:配体参数,蛋白结构,配体结构
  • 输出文件:Amber MD 参数文件(.prmtop 和 .inpcrd)
  • 脚本:md_parm_gen.py
  • 负责人:周兆寅
一次成功的GPT辅助脚本撰写,几次request如下:
  1. 告知输入和输出,脚本的目的,以及核心代码
  2. 补充要求,加个用户自定义参数
  3. 粗看一遍脚本,针对明显的错误直接提出
  4. 自己跑一下测试,发现报错,去看给出的脚本,判断哪里出错,针对错误之处提出修改意见
  5. 翻译
测试路径:23 /home/databank_70t/zzy/project/koff/md-auto/2.2-tleap
GPT的回复:
  1. 基本上脚本大部分都非常清晰合理
  2. 完美完成要求
  3. 完美完成要求
  4. 完美完成要求
  5. 不响应(可能是脚本太长了,无伤大雅,deepseek可用)
原始交流记录:
  1. 我现在有 以下输入文件: 配体参数:lig.prep lig.frcmod 配体结构:lig.pdb 蛋白结构:pro.pdb 需要通过 tleap 生成以下:amber参数  蛋白拓扑文件:pro.prmtop  蛋白坐标文件:pro.inpcrd 配体拓扑文件:lig.prmtop  配体坐标文件:lig.inpcrd 复合物拓扑文件:native.prmtop  复合物坐标文件:native.inpcrd 复合物结构文件:com-dry.pdb 复合物溶剂化后的拓扑文件:complex.prmtop  复合物溶剂化后的坐标文件:complex.inpcrd 复合物溶剂化后的结构文件:com.pdb  使用的tleap方法主要如下: 命令行进入tleap: source leaprc.protein.ff19SB source leaprc.gaff2 source leaprc.water.opc  loadamberparams lig.frcmod loadamberprep lig.prep  mol=loadpdb lig.pdb pro=loadpdb pro.pdb  com=combine {pro mol} saveamberparm pro pro.prmtop pro.inpcrd saveamberparm mol lig.prmtop lig.inpcrd saveamberparm com native.prmtop native.inpcrd savepdb com com-dry.pdb  charge com solvatebox com OPCBOX 10  addionsrand com Na+ X charge com  saveamberparm com complex.prmtop complex.inpcrd savepdb com com.pdb ################# 以上 ####################  请编写python 脚本,实现我的需求,有几点注意事项: 1. addionsrand com Na+ X 种 X 是个变量,可能需要进行一次tleap测试,从leap.log 里得知体系的带电情况再确定是加钠离子还是氯离子,加几个; 2. 添加必要的注释
  2. 非常好,我有一个新的请求:是否可以添加一个接口,使得用户可以在执行咱们这个脚本输入自定义参数来选择是进行复合物体系的准备还是仅仅对蛋白进行处理?python md_parm_gen.py 0 是处理蛋白,python md_parm_gen.py 1 是处理复合物。
  3. 很好,只是有一点需要修改:prepare_protein 函数中,蛋白的处理步骤有缺失,蛋白参数准备也需要进行溶剂化的,大致流程应该是: 命令行进入tleap: source leaprc.protein.ff19SB source leaprc.water.opc  pro=loadpdb pro.pdb  saveamberparm pro pro.prmtop pro.inpcrd savepdb pro pro-dry.pdb  charge pro solvatebox pro OPCBOX 10  addionsrand pro Na+ X charge pro  saveamberparm pro pro-sol.prmtop pro-sol.inpcrd savepdb pro pro-sol.pdb  聪明的你一定发现也需要对离子进行判断啦?请再做修改,谢谢!
  4. 我去测试了下脚本,发现有地方卡住了,问题出在parse_charge_from_log这个函数中! leap.log记录电荷信息的方式是这样的: > charge pro Total unperturbed charge:  -9.000000 Total perturbed charge:    -9.000000 > quit 请修改脚本的对应部分,使其能精准的提取到电荷信息!其他部分不需要修改,仅修改parse_charge_from_log函数并展示给我,谢谢!
  5. 请帮助我把这个我和你一起完成的脚本中的中文注释都换成英文,谢谢!