计算化学公社

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

[算法与编程] 如何使用rdkit正确产生高斯坐标

[复制链接 Copy URL]

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

跳转到指定楼层 Go to specific reply
楼主
由于我需要在复杂的pandas库中方便多维操作。我的分子对象rdkit mol保存在pandas内,现在我需要让rdkit的mol对象合理的转换成xyz坐标,以及高斯输入文件。如何批量生成呢?
之前尝试用

try:
        # 从SMILES创建分子
        mol = Chem.MolFromSmiles(smiles)
        if mol is None:
            if logger:
                logger.warning(f"无效的SMILES字符串: {smiles}")
            return False

        # 添加氢原子
        mol = Chem.AddHs(mol)

        # 尝试多种方法生成3D构象
        success = False
        method_used = None

        # 方法1: ETKDG
        try:
            result = AllChem.EmbedMolecule(mol, AllChem.ETKDG())
            if result == 0:  # 成功
                AllChem.UFFOptimizeMolecule(mol)
                success = True
                method_used = "ETKDG"
        except Exception as e:
            if logger:
                logger.info(f"ETKDG方法失败: {str(e)}")

但是之前发现生成的坐标,有严重的高斯输入不合理性,这些输入可以视为高斯的初猜结构。是为了后面能避免Gaussian运算。请问大家有没有什么好办法,用Python代码解决坐标输入和电荷、自旋多重度的计算


1

帖子

0

威望

61

eV
积分
62

Level 2 能力者

40#
发表于 Post on 2025-7-16 16:13:17 | 只看该作者 Only view this author
sjkcn 发表于 2025-7-15 11:05
本质上,还是从smiles到初始坐标的过程。这里的过程怎么判断,细节很多。而且并不类似于蛋白与小分子对接 ...

我看rdkit的相关论文,就是从初始原子坐标进行优化使它们的距离满足目标键长和手性值,由于非键的原子对只能设置个范围值,因此用距离矩阵分解时只能随机设置并进行筛选。成键的键长估计是从uff力场那套定义计算的。之后又加了个力场优化和构象搜索

395

帖子

8

威望

3908

eV
积分
4463

Level 6 (一方通行)

石墨

39#
发表于 Post on 2025-7-15 16:05:21 | 只看该作者 Only view this author
sjkcn 发表于 2025-7-15 11:05
本质上,还是从smiles到初始坐标的过程。这里的过程怎么判断,细节很多。而且并不类似于蛋白与小分子对接 ...

你说的“构象搜索”我理解是构象的能稳定用的初始化和优化方案,即使输入是垃圾结构,输出应该基本像个分子样子,能作为量化之类的输入。

这个没有开箱即用的包,只能说自己去加载力场,做能量最小化,或者做MD。我所知的一种方法是用带限制的能量优化器或者积分器 + 软核势可以把很多垃圾结构搓正常。
http://bbs.keinsci.com/thread-42434-1-1.html
http://bbs.keinsci.com/thread-53708-1-1.html
自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

38#
 楼主 Author| 发表于 Post on 2025-7-15 11:05:27 | 只看该作者 Only view this author
Graphite 发表于 2025-6-30 21:59
...不知道纯技术的事情咋能引战了

本质上,还是从smiles到初始坐标的过程。这里的过程怎么判断,细节很多。而且并不类似于蛋白与小分子对接那种有口袋的构象搜索。去扭转啥的。不知道我的理解对不对哈

395

帖子

8

威望

3908

eV
积分
4463

Level 6 (一方通行)

石墨

37#
发表于 Post on 2025-6-30 21:59:47 | 只看该作者 Only view this author
本帖最后由 Graphite 于 2025-7-1 10:25 编辑

...不知道纯技术的事情咋能引战了


从本质上来说,SMILES是一种分子的图表示,当然是不包含三维坐标信息的。SMILES只能展开成一组键列表(拓扑、图的邻居列表),并且一般也不包含手性、顺反异构信息。(对映异构体和顺反异构体如果不做特殊处理,其实是图同构的

RDKit或OpenBabel或Chemdraw直接从SMILES生成三维坐标的方法,其实也是通过经验方法,用预制键长键角生成,没有MD的过程在。

如果要说从SMILES能够稳定地、99%以上地生成可用的三维坐标,一种可能的方法应该:1、展开拓扑,2、从拓扑通过图算法生长出初始的结构,这个结构很可能就是包含重叠原子、不合理的坐标。3、加载预制键长键角、soft势或其他稳健性强的原子间势,进行能量最小化。加氢问题相当于:在一个有节点度数约束的赋权图上,先确定边的正确权重,再根据顶点剩余权重,用氢饱和。

问题的复杂度在于其本质复杂度,而不是附加复杂度。现有的包表现差强人意、自己写总是免不了try-except、剔除异常结果只是核心问题的表象。如果选择更硬核的方法:自己开发写算法,要发文章还是以后转码都很锻炼人。如果只是快速要一批差不多的分子,就得接受当下10%、20%甚至更多的失败率、可能还是要反复人工剔除。



评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
Uus/pMeC6H4-/キ + 2 正解

查看全部评分 View all ratings

自在飞花轻似梦,无边丝雨细如愁。

全自动反应动力学(ReaxFF、AIMD、NEP等)后处理工具网页版:http://cc-portal.xyz/reax_tools

18

帖子

0

威望

43

eV
积分
61

Level 2 能力者

36#
发表于 Post on 2025-6-27 17:27:55 | 只看该作者 Only view this author
rdkit生成稍微大一些的分子的构象就有问题,到现在仍然没有一个很好的处理方法,都是尝试

18

帖子

0

威望

43

eV
积分
61

Level 2 能力者

35#
发表于 Post on 2025-6-8 19:35:52 | 只看该作者 Only view this author
rdkit生成结构算法就有问题,拿来做高斯意思不大

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

34#
 楼主 Author| 发表于 Post on 2025-6-5 16:56:38 | 只看该作者 Only view this author
wxyhgk 发表于 2025-6-5 14:43
只能先找一批类似的分子做,做机器学习和力场一起搞,但是问题在于如果在母核周围增加些复杂的芳环,立体 ...

请教下,我知道高斯是支持内坐标表示原子和原子的连接关系。但是,对于复杂的体系,内坐标的方法是不是也不太好呢?

227

帖子

6

威望

1712

eV
积分
2059

Level 5 (御坂)

33#
发表于 Post on 2025-6-5 14:43:38 | 只看该作者 Only view this author
sjkcn 发表于 2025-6-5 14:37
我很好奇,工业化解决的思路是什么呢?

只能先找一批类似的分子做,做机器学习和力场一起搞,但是问题在于如果在母核周围增加些复杂的芳环,立体结构强的(例如金刚烷什么的)就非常难受了,还是得自己手动修改。

如果你的情况是一些小分子(没有立体效应很强的,或者奇怪的刚性结构)可以用这些学术上的模型去搞没问题,如果是很复杂的基本都有问题

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

32#
 楼主 Author| 发表于 Post on 2025-6-5 14:41:18 | 只看该作者 Only view this author
Uus/pMeC6H4-/キ 发表于 2025-6-5 11:07
复读半天差不多得了,敢问可有哪怕半点建设性的、可重复的切实提议?工业化能赚钱就是清高就是了不起哦, ...

理性分析看待,思考即可。有理有据,我希望大家讨论都理性些,这个问题其实很多人都挺困扰的。算单个对于一般人来说不是很难。只要耐心算。但是大批量的计算,不仅是时间、精力还有错误率等等因素要考虑的。我开了这个贴也是多听听大家的思考方向如何。不管是学术界还是工业界,找得到方法都是好的。

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

31#
 楼主 Author| 发表于 Post on 2025-6-5 14:37:57 | 只看该作者 Only view this author
wxyhgk 发表于 2025-6-5 10:14
你这种都是些小分子/简单分子完全达不到工业化的标准,发论文吹吹牛还行,一用到实际就不行了

我很好奇,工业化解决的思路是什么呢?

881

帖子

3

威望

1665

eV
积分
2606

Level 5 (御坂)

傻傻的木瓜

30#
发表于 Post on 2025-6-5 11:07:32 | 只看该作者 Only view this author
wxyhgk 发表于 2025-6-5 10:14
你这种都是些小分子/简单分子完全达不到工业化的标准,发论文吹吹牛还行,一用到实际就不行了

复读半天差不多得了,敢问可有哪怕半点建设性的、可重复的切实提议?工业化能赚钱就是清高就是了不起哦,指指点点这么多连搞简单小体系的科研努力都要否定(注意这不代表我就不反感学术界灌水的行为),除了逞口舌之快毫无意义(流汗黄豆)想反驳我随意,我不会浪费时间跟进的。

√546=23.36664289109

227

帖子

6

威望

1712

eV
积分
2059

Level 5 (御坂)

29#
发表于 Post on 2025-6-5 10:14:23 | 只看该作者 Only view this author
Peng14 发表于 2025-6-4 22:02
最近一直在做类似的事情,我目前的经验是:对于一些常见的有机化合物(成键方式没有太离谱,也不包含金属 ...

你这种都是些小分子/简单分子完全达不到工业化的标准,发论文吹吹牛还行,一用到实际就不行了

19

帖子

0

威望

29

eV
积分
48

Level 2 能力者

28#
 楼主 Author| 发表于 Post on 2025-6-5 09:58:34 | 只看该作者 Only view this author
Peng14 发表于 2025-6-4 22:02
最近一直在做类似的事情,我目前的经验是:对于一些常见的有机化合物(成键方式没有太离谱,也不包含金属 ...

xtb我不是很熟悉,rdkit用的针对大环张力效果不是很好。我一直有一个疑问,对于力场优化。是不是类似药物小分子在受体的结合那种力的计算啊

8

帖子

0

威望

361

eV
积分
369

Level 3 能力者

27#
发表于 Post on 2025-6-4 22:02:42 | 只看该作者 Only view this author
sjkcn 发表于 2025-6-4 11:06
我只希望用保守的方式生成,就可以了。至于forcefield那些设置啥的,我又不是专门做这块,我的目的只是希 ...

最近一直在做类似的事情,我目前的经验是:对于一些常见的有机化合物(成键方式没有太离谱,也不包含金属配位键之类的),可以用RDKit解析SMILES,生成包含包含原子三维坐标信息和键连关系的mol/mol2文件,再用xtb调用GFN-FF力场(避免键的断裂)进行快速的结构优化,同时也会输出优化后结构的mol文件,这时候的坐标、键长、二面角等参数基本是比较合理的

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

GMT+8, 2025-8-12 23:41 , Processed in 0.206991 second(s), 23 queries , Gzip On.

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