找到手性中心

2024-10-03 04:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

通过对一些分子和反应的研究,我们发现,在施予反应之后,可能无法发现smiles中的手性中心。在

在分子上施加一些反应后,我得到的是这样的微笑:C[C](C)[C]1[CH+]/C=C(\\C)CC/C=C(\\C)CC1

它实际上似乎在碳3[C]中有一个手性中心。如果我使用Chem.FindMolChiralCenters(n,force=True,includeUnassigned=True)我得到一个空列表,这意味着没有手性中心。在

问题是,如果我在碳3上加氢,它就变成了{},它被认为是手性中心,但具有未赋值的类型(R或S)。我试着用Chem.AddHs(mol)添加Hs,然后再试一次Chem.FindMolChiralCenters(),但没有得到任何手性中心。在

我想知道是否有一种方法可以识别这个手性中心,即使它们不加H,并按照某种规则设置适当的手性标记。在

在对我的初始摩尔(^{)施加两个1,2氢化物位移后,我得到了前面提到的微笑。鉴于我有一些初始的手性标记,我想知道是否有办法在反应后恢复失去的手性。在

用于1,2氢化物转移的智能体:[Ch:1]-[C+1:2]>>[C+1:1]-[Ch+0:2]

mol = Chem.MolFromSmiles('C/C1=C\\C[C@H]([C+](C)C)CC/C(C)=C/CC1')
rxn  = AllChem.ReactionFromSmarts('[Ch:1]-[C+1:2]>>[C+1:1]-[Ch+0:2]')
products = list()
for product in rxn.RunReactant(mol, 0):
    Chem.SanitizeMol(product[0])
    products.append(product[0])
print(Chem.MolToSmiles(products[0]))

把这个反应应用到产品上两次后,我终于得到了这个微笑。在

^{pr2}$

实际上它应该是碳3中的手性中心

有什么想法或者我应该把它当作一个bug来报告吗?在


Tags: 标记trueproductch中心分子productscc
1条回答
网友
1楼 · 发布于 2024-10-03 04:37:30

这不是虫子。我想您没有指定要在MolToSmiles函数中使用规范的smiles。所以当我试着:

mol = Chem.MolFromSmiles('C/C1=C\\C[C@H]([C+](C)C)CC/C(C)=C/CC1')
rxn  = AllChem.ReactionFromSmarts('[Ch:1]-[C+1:2]>>[C+1:1]-[Ch+0:2]')
products = list()
for product in rxn.RunReactant(mol, 0):
    Chem.SanitizeMol(product[0])
    products.append(product[0])
print(Chem.MolToSmiles(products[0]))
Chem.MolToSmiles(ps[0][0])

我得到了和你完全一样的结果:

^{pr2}$

但是当你用这个的时候:

Chem.MolToSmiles(ps[0][0], True)

您可以获得以下结果:

'CC(C)=[C@H]1C/C=C(\\C)CC/C=C(\\C)CC1'

相关问题 更多 >