I've done some in-memory translation of molecules to ROMols, and have used
#2 without major problems. I do remember needing to make sure that the
stereoatoms are in the correct order - that is, that the first stereoatom
is bonded to the beginAtom of the bond. In Python, this is something like:
bond = mol.GetBondBetweenAtoms(begin, end)
if bond.GetBeginAtomIdx() != begin:
assert bond.GetBeginAtomIdx() == end
stereoatom1, stereoatom2 = stereoatom2, stereoatom1
bond.SetStereoAtoms(stereoatom1, stereoatom2)
bond.SetStereo(stereo)
- dan nealschneider
(né wandschneider)
Senior Developer
Schr*ö*dinger, Inc
Portland, OR
On Tue, Dec 4, 2018 at 7:02 AM Brian Cole <[email protected]> wrote:
> Hi Kovas,
>
> For your use-case #2 should suffice, "set STEREOCIS/STEREOTRANS tags +
> manually set stereo atoms". This is what the EnumerateStereoisomers code
> does:
> https://github.com/rdkit/rdkit/blob/master/rdkit/Chem/EnumerateStereoisomers.py#L38
>
> As to what is the 'ground truth', that is a more difficult question that I
> fear the answer may be 'none of them'. STEREOCIS/STEREOTRANS are rather
> recent additions to the RDKit API, while we strived to make sure
> STEREOCIS/STEREOTRANS across the RDKit, there are probably looming bugs in
> untested parts of the RDKit that don't handle them properly. However, I
> think those other APIs should be fixed to handle them properly, so please
> do report any problems you spot into the github issue tracker.
>
> Cheers,
> Brian
>
>
>
> On Mon, Dec 3, 2018 at 7:00 PM Kovas Palunas <[email protected]>
> wrote:
>
>> Hi All,
>>
>>
>>
>> I’m looking for a bit more clarity regarding double bond stereochem in
>> RDKit. Currently, my understanding is that there are 3 ways to currently
>> store this information:
>>
>>
>>
>> 1. STEREOE/STEREOZ tags + stereo atoms on either side of bond set by
>> CIP ranks, as computed when calling MolFromSmiles to make a new molecule
>> or
>> AssignStereochemistry on an existing molecule
>> 2. Manually set STEREOCIS/STEREOTRANS tags + manually set stereo atoms
>> 3. ENDUPRIGHT/etc. single bond directionality tags, which are set
>> when reading a molecule from smiles/inchi/mol file
>>
>>
>>
>> Is one of these methods the “ground truth” that is looked for by RDKit
>> functions that care about this info, like the substructure matching code or
>> the SMILES writing code?
>>
>>
>>
>> I am currently working on code that mutates molecules using a
>> predetermined list of changes to be made to the molecule. I’d like to be
>> able to include bond stereochemistry changing/creation/destruction here,
>> and was thinking of doing so using the STEREOCIS/STEREOTRANS tags (and also
>> providing the reference stereo atoms). Before I do this I want to make
>> sure that molecules with these tags will be handled correctly by other
>> RDKit functions downstream. Would these tags be a good choice here? Are
>> there any caveats I should keep in mind as I work with this information?
>>
>>
>>
>> Thanks!
>>
>>
>>
>> - Kovas
>>
>>
>> _______________________________________________
>> Rdkit-discuss mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
> _______________________________________________
> Rdkit-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss