计算化学公社
标题: 用于代替柔性扫描+过渡态自动搜索的Python脚本(解决RedCar failed问题 [打印本页]
作者Author: peifanli 时间: 6 hour ago
标题: 用于代替柔性扫描+过渡态自动搜索的Python脚本(解决RedCar failed问题
在做丝氨酸蛋白酶催化机理的QM计算时,需要扫描质子从SER-OG转移到HIS-NE2的过程来寻找过渡态初猜。使用Gaussian的opt=(modredundant)柔性扫描功能时,反复遇到以下报错:
New curvilinear step failed
RedCar failed.
尝试过改变原子冻结方式,扫描步数、步长,调整结构等方法依然不能解决,或者换其他结构时仍反复出现。
看到sob老师说将每一步做限制性优化,以此为灵感写了本脚本。
脚本功能:
- 从gjf文件自动读取坐标(支持带冻结标志的5列格式)
- 根据两原子初始距离和目标距离自动计算扫描步数
- 依次提交每步约束优化,实时输出能量
- 扫描完成后自动判断能量拐点(要求左右两侧能量均低于该点)
- 找到拐点后自动生成并提交过渡态搜索输入(可自定义,代码)
- 自动检查TS搜索结果:虚频数量、是否收敛、是否报错
使用方法:只需修改脚本顶部的用户配置区,填写gjf文件路径、两个原子编号、目标距离和步长,其余全自动处理。在终端输入python运行命令即可。
本人没有系统学过计算机编程,若使用过程中有问题欢迎批评并交流
作者Author: wal 时间: 6 hour ago
不错的脚本。提个问题点:如果你的目的是柔性扫描,那么过程中每一步除了待扫描的坐标以外,周围的基团也是在做调整的,所以如果你以初始结构一次拉到底,可能会出现(1)后期的点,一些原子直接撞上。撞车的基团理论上应该随着柔性扫描步进而不断调整构象(2)跨过了一些本来不该跨过的能垒形成产物。
可能比较抽象,我举个例子,假如六螺烯能找到一些反应坐标扫描翻转过渡态,那你扫到一半的时候两个苯环百分之百撞车
作者Author: peifanli 时间: 5 hour ago
好像明白您的意思了,我根据初始坐标生成了一系列输入文件。但其实应该等上一步结束后再提取坐标,写输入文件。谢谢您的意见
作者Author: wal 时间: 5 hour ago
对,就是这个意思。顺便也应该guess=read读一下波函数,不然对于某些体系可能收敛歪出去
作者Author: Daniel_Arndt 时间: 2 hour ago
我一般会用Gaussian 16里的generalized internal coordinates来实现这种scan。如果scan的结果还不行的话,我会考虑用ORCA的NEB功能。
作者Author: peifanli 时间: 1 hour ago
guess=read脚本里有的,每新的一步都会读前一步的波函数
作者Author: peifanli 时间: 1 hour ago
之前用ORCA的NEB太慢了,不知道是不是我设置有问题,后来体系一百多个原子的时候没再用过,怕算不动
| 欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |