3

我的问题是:是否有任何算法可以将 SMILES 结构转换为拓扑指纹?例如,如果甘油是输入,则答案将是 3 x -OH、2x -CH2 和 1x -CH。

我正在尝试构建一个 python 脚本,可以使用人工神经网络预测混合物的密度。作为输入,我希望从 SMILES 结构开始获得分子的结构/指纹。

我已经熟悉 -rdkit 和 morganfingerprint 但这不是我想要的。我也知道我可以在 rdkit 中使用“匹配子结构”搜索,但是我必须定义所有不同的子组。有没有更方便/更短的方法?

4

2 回答 2

4

对于大多数结构,没有找到碎片的现有选项。但是,rdkit 中有一个模块可以为您提供片段的数量,尤其是当它是一个功能组时。在这里查看。例如,假设您想找出-OH分子中脂肪族基团的数量。您可以简单地调用以下函数来做到这一点

from rdkit.Chem.Fragments import fr_Al_OH
fr_Al_OH(mol)

或以下将返回芳族基团的数量-OH

from rdkit.Chem.Fragments import fr_Ar_OH
fr_Ar_OH(mol)

同样,还有 83 个可用功能。其中一些对您的任务很有用。对于那些,您没有获得预先编写的功能,您可以随时查看这些 rdkit 模块的源代码,了解它们是如何实现的,然后为您的功能实现它们。但正如您已经提到的,方法是定义一个 SMARTS 字符串,然后进行片段匹配。片段匹配模块可以在这里找到。

于 2021-03-29T09:09:58.190 回答
1

如果您想在预测混合物之前预测纯组分的密度,我推荐以下论文: https ://pubs.acs.org/doi/abs/10.1021/acs.iecr.6b03809

您可以按照 mnis 的建议使用 rdkit 指定的片段。或者,您可以将组指定为 SMARTS 模式,并按照您自己的建议使用 GetSubstructMatches 自己查找它们。

将一个分子分解成特定的组并不像最初看起来那么简单。您也可以使用我不久前发布的算法: https ://jcheminf.biomedcentral.com/articles/10.1186/s13321-019-0382-3 它包括 UNIFAC 模型的 SMARTS 列表,但您也可以使用它们对于其他事情,比如密度预测。

于 2021-11-06T22:45:45.340 回答