I'm curious about what I should be using to set and get double bond
stereochemistry. Is it the bond stereo of the double bond, or the bond
directions of the adjacent bonds?

I've been in-memory translating Mol objects into our internal
representation of a molecule. I've been using the Bond::getStereo() and
Bond::setStereo() to get and set bond stereochemistry.

Recently, I noticed that the products of RDKit reactions seem to
consistently not have bond stereo set. They have bond directions, though.

Here's a demonstration:

    from rdkit import Chem
    from rdkit.Chem import AllChem
    import rdkit.Chem.rdchem

    mol = Chem.MolFromSmiles(r'F/C=C/F')
    rxn = AllChem.ReactionFromSmarts('[C:1]>>[C:1]')
    product = rxn.RunReactants([mol])[0][0]
    assert mol.GetBondBetweenAtoms(1, 2).GetStereo() ==
rdkit.Chem.rdchem.BondStereo.STEREOE
    assert product.GetBondBetweenAtoms(0, 2).GetBondType() ==
rdkit.Chem.rdchem.BondType.DOUBLE

    print(Chem.MolToSmiles(product))
    print(product.GetBondBetweenAtoms(1, 0).GetBondDir(),
product.GetBondBetweenAtoms(0, 2).GetStereo(),
product.GetBondBetweenAtoms(2, 3).GetBondDir())
    # this fails:
    assert product.GetBondBetweenAtoms(0, 2).GetStereo() ==
rdkit.Chem.rdchem.BondStereo.STEREOE

I think that this means that I don't understand how I should be using bond
stereochemistry. It's also possible, though, that RxnRunner needs to assign
bond stereo from the bond directions after the reaction.

- dan nealschneider


Senior Developer
Schr*รถ*dinger, Inc
Portland, OR
_______________________________________________
Rdkit-devel mailing list
Rdkit-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-devel

Reply via email to