计算化学公社

标题: RDkit是否支持读取gaussian_view产生的mol文件? [打印本页]

作者
Author:
ShangChien    时间: 2021-7-16 09:30
标题: RDkit是否支持读取gaussian_view产生的mol文件?
最近在搞分子高通量筛选的工作,刚刚接触rdkit这个工具,网络教程里都明确说支持mol文件的读取,但是我实操下来发现,rdkit读不了gaussian_view产生的mol文件,能读取chemdraw产生的mol文件。仔细对比发现,这两种程序产生的mol文件内容格式是一样的,数值有细微不同,高斯产生的mol文件的坐标是三维立体的,而chemdraw的mol是二维平面的。所以是不是rdkit不支持gaussian_view产生的这种三维mol文件? 探过路大佬请多多指点一下,谢谢!

作者
Author:
doublezhang    时间: 2021-7-16 16:53
中间贴一层openbabel把mol转成smiles
作者
Author:
ShangChien    时间: 2021-7-20 15:47
doublezhang 发表于 2021-7-16 16:53
中间贴一层openbabel把mol转成smiles

谢谢回复,我暂时确实也是这么做的,但是这会失去部分三维的坐标信息。期待开发组吧!
作者
Author:
ShangChien    时间: 2021-11-5 12:46
本帖最后由 ShangChien 于 2021-11-5 12:59 编辑

从祖传脚本中发现了更简单的方法,无需使用openbabel中间转换。具体方法为修改GassianView转换得到的*.mol文件:
将第四行最后的三个“0”修改为“0999 V2000”

修改前:
  1. s0 opt

  2. Created by GaussView 6.0.16
  3. 60 63  0  0  0  0  0  0  0  0  0    0
复制代码

修改后:
  1. s0 opt

  2. Created by GaussView 6.0.16
  3. 60 63  0  0  0  0  0  0  0  0999 V2000
  4.     0.0176   -1.3872   -0.0099 C   0  0  0  0  0  0  0  0  0  0  0  0
  5. ......
复制代码
然后就可以完美使用rdkit中的Chem.MolFromMolFile("*.mol")
撒花
作者
Author:
ShangChien    时间: 2021-11-5 12:58
本帖最后由 ShangChien 于 2021-11-8 10:38 编辑
ShangChien 发表于 2021-11-5 12:46
从祖传脚本中发现了更简单的方法,无需使用openbabel中间转换。具体方法为修改GassianView转换得到的*.mol ...

如果有小伙伴使用了Pathlib文件系统来传递mol文件的路径,那么Chem.MolFromMolFile(path)会报错。因为这个接口仅支持字符串https://github.com/rdkit/rdkit/issues/2923
解决办法也很简单:
  1. Chem.MolFromMolFile(str(path))
复制代码
or
  1. Chem.MolFromMolFile(path.as_posix())
复制代码


作者
Author:
hdb    时间: 2021-11-17 20:08
ShangChien 发表于 2021-11-5 12:46
从祖传脚本中发现了更简单的方法,无需使用openbabel中间转换。具体方法为修改GassianView转换得到的*.mol ...

我试了一下,这个方法好像不适合我的结构

作者
Author:
ShangChien    时间: 2021-11-18 11:28
本帖最后由 ShangChien 于 2021-11-18 11:29 编辑
hdb 发表于 2021-11-17 20:08
我试了一下,这个方法好像不适合我的结构

我试了一下你的结构,确实无法成功。很抱歉没有提供完美的方法。刚找到这段代码的时候只是测试了一个分子,所以也没有使用这种方法替换openbabel更新到自己的代码中(懒,怕出问题,果然有问题)。
我刚刚随机测试了一下,有的分子是可以的,有的不行。我暂时没有发现成功的规律,不过我可以提供一下我的测试代码和文件,期待后续有前辈能解决一下。 (, 下载次数 Times of downloads: 17)
(, 下载次数 Times of downloads: 14)
(, 下载次数 Times of downloads: 7)

作者
Author:
ShangChien    时间: 2021-11-18 12:14
ShangChien 发表于 2021-11-5 12:46
从祖传脚本中发现了更简单的方法,无需使用openbabel中间转换。具体方法为修改GassianView转换得到的*.mol ...

这个方法不是100%可以成功,具体看楼下讨论
作者
Author:
hdb    时间: 2021-11-19 11:58
ShangChien 发表于 2021-11-18 11:28
我试了一下你的结构,确实无法成功。很抱歉没有提供完美的方法。刚找到这段代码的时候只是测试了一个分子 ...

感谢回复,对比gaussview和rdkit输出的mol其实可以发现有很多不同点,目前不明确mol文件所有参数的含义,后续有进展我再跟进




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3