计算化学公社

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

[虚拟筛选] 如何解决rdkit.AllChem模块中EmbedMolecule()方法无法生成复杂分子3D结构?

[复制链接 Copy URL]

9

帖子

0

威望

1041

eV
积分
1050

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 wangxubin 于 2021-11-7 15:12 编辑

我最近在学习分子模拟相关内容,其中涉及将SMILES翻译成包含分子3D信息的xyz文件。
我尝试使用openbabel、rdkit对SMILES进行翻译,结果是对于小分子,它们都可以给出较合理的xyz文件。然而,对于复杂的分子而言,RDKit具有更好的鲁棒性,但仍无法处理所有分子。程序是可以正常运行的,但是生成的“mol.xyz”文件的内容为空。希望有从事相关研究的大佬可以予以解答,十分感谢!
具体的代码如下所示:

from rdkit import Chem
from rdkit.Chem import AllChem

smi = 'N#Cc1c(c(c(c(c1n1c2ccc(cc2c2c1ccc(c2)c1ccccc1)c1ccccc1)n1c2ccc(cc2c2c1ccc(c2)c1ccccc1)c1ccccc1)C#N)n1c2ccc(cc2c2c1ccc(c2)c1ccccc1)c1ccccc1)n1c2ccc(cc2c2c1ccc(c2)c1ccccc1)c1ccccc1'
#smi = 'c1ccccc1'
mol = Chem.MolFromSmiles(smi)
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol)
Chem.MolToXYZFile(mol, 'mol.xyz')

print('finish')

代码中"smi"所对应的分子结构如图片所示


SMILES.png (63.18 KB, 下载次数 Times of downloads: 29)

SMILES.png
日摸一鱼无有尽,功不唐捐终入海

56

帖子

1

威望

1562

eV
积分
1638

Level 5 (御坂)

12#
发表于 Post on 2023-1-10 19:52:50 | 只看该作者 Only view this author
收藏

9

帖子

0

威望

1041

eV
积分
1050

Level 4 (黑子)

11#
 楼主 Author| 发表于 Post on 2023-1-7 12:31:49 | 只看该作者 Only view this author
libo371324 发表于 2022-12-29 10:40
我想问一下这个模块目前默认的产生坐标的设置是useExpTorsionAnglePrefs=True, useBasicKnowledge=True, ...

抱歉啊,刚看见,不知道你是否已经解决。
按照我之前的解决方案,应该将你的代码改为
“AllChem.EmbedMolecule(a, useRandomCoords=True)”,应该可以避免原子重叠。
至于openbabel的pybel的安装依照“冰释之川”的回答即可。
日摸一鱼无有尽,功不唐捐终入海

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

10#
发表于 Post on 2022-12-30 09:50:49 | 只看该作者 Only view this author
libo371324 发表于 2022-12-30 09:30
我昨天弄了一天的openbabel包,但是一直不成功,from openbabel import pybel,一直导入失败,到现在也没 ...

直接conda装就行了 conda install openbabel
Stand on the shoulders of giants

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

9#
发表于 Post on 2022-12-30 09:30:43 | 只看该作者 Only view this author

我昨天弄了一天的openbabel包,但是一直不成功,from openbabel import pybel,一直导入失败,到现在也没有下载成功,我按照网站上下载安装,也是不成功,能给一下详细的下载教程吗

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

8#
发表于 Post on 2022-12-29 21:13:35 | 只看该作者 Only view this author
libo371324 发表于 2022-12-29 10:40
我想问一下这个模块目前默认的产生坐标的设置是useExpTorsionAnglePrefs=True, useBasicKnowledge=True, ...

换pybel 试试
RDKit_3D_mols_gen.py (2.7 KB, 下载次数 Times of downloads: 42)
Stand on the shoulders of giants

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

7#
发表于 Post on 2022-12-29 10:40:22 | 只看该作者 Only view this author
wangxubin 发表于 2021-11-9 21:51
谢谢社长,我试过直接用openbabel产生结构,对于复杂分子,存在生成极不合理的分子结构的情况,比如多个 ...

我想问一下这个模块目前默认的产生坐标的设置是useExpTorsionAnglePrefs=True, useBasicKnowledge=True,但是我在使用的过程中出现了那种极不合理的分子结构,所有的原子都重合了,即a= AllChem.EmbedMolecule(),等于-1的那种情况,我师弟给我说是生成失败了,这种情况应该怎么办,换用open babel这个软件包吗,还是说rdkit有其他的构象生成的方法。

9

帖子

0

威望

1041

eV
积分
1050

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2021-11-9 21:51:21 | 只看该作者 Only view this author
sobereva 发表于 2021-11-8 22:31
把openbabel搞出来的结构,以及进一步用openbabel做MMFF94力场优化后的结构都截个图。如果后者就已经足够合 ...

谢谢社长,我试过直接用openbabel产生结构,对于复杂分子,存在生成极不合理的分子结构的情况,比如多个原子重叠。
目前已通过下述方法实现生成、优化分子结构。
AllChem.EmbedMolecule(mol, useRandomCoords=True)
AllChem.MMFFOptimizeMolecule(mol)
日摸一鱼无有尽,功不唐捐终入海

5万

帖子

99

威望

5万

eV
积分
112351

管理员

公社社长

5#
发表于 Post on 2021-11-8 22:31:03 | 只看该作者 Only view this author
把openbabel搞出来的结构,以及进一步用openbabel做MMFF94力场优化后的结构都截个图。如果后者就已经足够合理,就用它就完了
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

68

帖子

0

威望

1637

eV
积分
1705

Level 5 (御坂)

4#
发表于 Post on 2021-11-8 15:24:09 | 只看该作者 Only view this author
wangxubin 发表于 2021-11-8 11:05
都有xyz文件了,直接用openbabel转换更方便一些。
obabel -ixyz test.xyz -omol -O test.mol

嗯呢 这不是想着少用一个工具算一个么

9

帖子

0

威望

1041

eV
积分
1050

Level 4 (黑子)

3#
 楼主 Author| 发表于 Post on 2021-11-8 11:05:26 | 只看该作者 Only view this author
心向暖阳 发表于 2021-11-8 09:36
插楼问一下哈,xyz转成mol有自带的函数么

都有xyz文件了,直接用openbabel转换更方便一些。
obabel -ixyz test.xyz -omol -O test.mol
日摸一鱼无有尽,功不唐捐终入海

68

帖子

0

威望

1637

eV
积分
1705

Level 5 (御坂)

2#
发表于 Post on 2021-11-8 09:36:00 | 只看该作者 Only view this author
插楼问一下哈,xyz转成mol有自带的函数么

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

GMT+8, 2024-11-23 11:22 , Processed in 2.037734 second(s), 25 queries , Gzip On.

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