我正在尝试创建一个KNIME工作流,它将接受一个化合物列表,并自动执行生物等位空间替换(我们将在这里使用以下示例:羧酸到四唑)。
注意:我使用以下工作流作为灵感:RDKit-生物异构物(myexperiment.org)。这使用文本文件作为智能输入。我似乎不能复制这里使用的SMARTS格式。
为此,我计划使用Rdkit单组分反应节点,它使用一组化合物作为输入来执行反应,并使用一个智能字符串来定义该反应。
我的问题是生成一个描述反应的工作智能字符串。
我想输入两个SDF文件(或另一种格式,不是特别附在SDF上):一个与取代的基团(羧酸)和一个可能的生物异甾体替代物(四唑)清单。然后,我会将这两者结合在一起,并生成一个智能字符串,以便在Rdkit One组件反应节点中使用该反应。
注意:输入的SDF文件有一个附加点(例如,羧酸的*COOH),它定义了要替换的组的附加位置。我怀疑这是我所经历的许多问题的原因。
到目前为止,我可以使用Indigo节点包中的反应生成器节点轻松地生成RXN格式的反应。然而,将此反应转换为被Rdkit单组分反应节点接受的智能字符串已被证明是很棘手的。
到目前为止,我已经尝试过:
scanner: BufferScanner::read() errorSMILES loader: unrecognised lowercase symbol: y- showing this as a string in KNIME shows that the conversion is not carried out and the string is of SDF format : `*filename*.sdf 0 0 0 0 0 0 0 V3000M V30 BEGIN` etc.- Carboxylic acid : `[#6](-[#8])=[#8]`
- Tetrazole : `[#6]1:[#7H]:[#7]:[#7]:[#7]:1`这是我所能得到的。然后,我可以在这两个smarts字符串之间加入>> (output:[#6](-[#8])=[#8]>>[#6]1:[#7H]:[#7]:[#7]:[#7]:1)来创建SMARTS反应字符串,但这不被接受为Rdkit One组件反应节点的输入。
KNIME控制台中的错误消息:错误RDKit单组分反应0:40从SMARTS值创建反应失败:空警告RDKit一个组件反应0:40无效反应智能:缺失
请注意,智能字符串是最后一个选项(3)的字符串。生成与myexperiments.org实例 ([*:1][C:2]([OH])=O>>[*:1][C:2]1=NNN=N1)中使用的生成非常不同。通过这些转换,我似乎也丢失了附件点信息,这些信息可能会在工作流的其余部分引起问题。
因此,我正在寻找一种方法,在我自己的一组代换子上生成在示例中使用的智能字符串。显然不是一种选择。我还希望这个工作流只使用KNIME中可用的开源节点,而不使用专有节点(Schrodinger等)。
希望有人能帮我解决这个问题。如果你需要我当前的工作流程,我很乐意上传源文件,如果需要的话。
提前感谢你的帮助,
保持安全和健康!
-Antoine
发布于 2020-11-15 09:10:37
您所描述的是模板生成,这是一个在化学反应预测和/或化学信息学中的反向合成方面的一致工作领域。我自己也不太熟悉KNIME,尽管我对RDKit有广泛的了解:您的最后一个选项(3)最接近于我认为可以使用的工作流。我会这么做的:
rdkit.Chem.MolToSmarts()对象导出为智能字符串rdkit.Chem.MolToSmarts()。before_substructure>>after_substructure中以生成反应智能字符串。rxn = rdkit.Chem.AllChem.ReactionFromSmarts()中rxn.RunReactants() 方法生成生物等位取代产品。不幸的是,您为RDKit单组分反应节点输入引用的错误在重要信息之前中断。在本地运行rdkit.Chem.AllChem.ReactionFromSmarts("[#6](-[#8])=[#8]>>[#6]1:[#7H]:[#7]:[#7]:[#7]:1")不会产生错误,这使我相信这是特定于KNIME节点功能的。
注意,[#6](-[#8])=[#8]和[*:1][C:2]([OH])=O之间的区别相对较小:前者代表O-C=O子结构,后者代表~COOH组。在后者的方括号内,:num指的是一个可选的“原子映射”数,它允许对反应物和产物原子进行一对一的映射。例如,[C:1][C:3].[C:2][C:4]>>[C:1][C:3][C:4][C:2]允许您跟踪哪种碳是在反应过程中,在可能重要的情况下。令牌[*:1]的意思是“任何原子”,相当于有机化学中的wavey线 (并且映射到#1)。
我只能想到[#6](-[#8])=[#8]和[*:1][C:2]([OH])=O可能有两种不同的情况:
COO- != COOH)将这些反应智能转化为RDKit反应对象,并在输入分子对象上运行它们,可能会产生许多替代产品。注意:通常,在广泛的项目中,会有一些智能模板需要一定程度的手动干预--指示附件点、指定显式氢原子等等。如果您需要任何帮助或有任何问题,请不要犹豫地放弃评论,我会尽我所能帮助您解决具体问题。
https://stackoverflow.com/questions/64339972
复制相似问题