【问题标题】:How to predict product reaction using rdkit?如何使用 rdkit 预测产品反应?
【发布时间】:2022-10-24 23:19:17
【问题描述】:

如何使用 rdkit 预测产品化学反应,这是我的code

disodium_tetraborat = Chem.MolFromSmiles('B1(OB2OB(OB(O1)O2)[O-])[O-]')
kanamycin = Chem.MolFromSmiles('C1C(C(C(C(C1N)OC2C(C(C(C(O2)CN)O)O)O)O)OC3C(C(C(C(O3)CO)O)N)O)N')
rxn_smarts = '[NH2:1][C:2](=[S:3])[NH0:4].[C:5](=[O:6])[C:7][Cl:8]>>[N:4][c:2]1[s:3][c:5][c:7][n:1]1'
rxn = AllChem.ReactionFromSmarts(rxn_smarts)
product = rxn.RunReactants((disodium_tetraborat, kanamycin))[0][0]
Chem.SanitizeMol(product)

error 我得到:

IndexError Traceback (most recent call last)
<ipython-input-20-eda85f568910> in <module>
      3 rxn_smarts = '[NH2:1][C:2](=[S:3])[NH0:4].[C:5](=[O:6])[C:7][Cl:8]>>[N:4][c:2]1[s:3][c:5][c:7][n:1]1'
      4 rxn = AllChem.ReactionFromSmarts(rxn_smarts)
----> 5 product = rxn.RunReactants((disodium_tetraborat, kanamycin))[0][0]
      6 Chem.SanitizeMol(product)

IndexError: tuple index out of range

如何解决?谢谢你。

【问题讨论】:

  • rxn.RunReactants((disodium_tetraborat, kanamycin)) 的值是多少?

标签: python rdkit


【解决方案1】:

你会得到一个错误,因为反应没有通过,并且产品元组是空的。您在 rxn 中定义的反应与您的试剂无关,它是硫脲与 α 卤代羰基环化形成氨基噻唑。但是你们的试剂不满足这些标准。 这是一个代码块,其中包含满足这些标准的试剂:

reagent1 = Chem.MolFromSmiles('NC(=S)N(C)C')
reagent2 = Chem.MolFromSmiles('[Cl]CC(=O)c1ccccc1')
rxn_smarts = '[NH2:1][C:2](=[S:3])[NH0:4].[C:5](=[O:6])[C:7][Cl:8]>>[N:4][c:2]1[s:3][c:5][c:7][n:1]1'
rxn = AllChem.ReactionFromSmarts(rxn_smarts)
product = rxn.RunReactants((reagent1,reagent2))[0][0]
Chem.SanitizeMol(product)

这导致产品CN(C)c1ncc(-c2ccccc2)s1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    相关资源
    最近更新 更多