Dear All, I think this question is in some way related to the following closed issue: https://github.com/rdkit/rdkit/pull/3015
I am working with 2020.09.1, but see the following error when calling EnumerateStereoisomers(): RuntimeError: Pre-condition Violation Stereo atoms should be specified before specifying CIS/TRANS bond stereochemistry Violation occurred on line 288 in file Code/GraphMol/Bond.h Failed Expression: what <= STEREOE || getStereoAtoms().size() == 2 RDKIT: 2020.09.1 BOOST: 1_72 I may be wrong, but I think my issue has something to do with incoming STEREOANY bonds *terminating* at double bonds. Here is an example (not very pretty, I know!): [cid:image001.png@01D6D861.708D15D0] The intention for the wavy bonds is (probably) to say that nothing is known about the configuration at the 3 stereocentres. But the intention for the double bonds is that they are as drawn (the hydrazone is trans, and the alkene is cis). Here is the corresponding molblock: Mrv1921 12222012592D 10 11 0 0 0 0 999 V2000 15.6513 1.4711 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 16.0635 0.7558 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 16.8890 0.7546 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 17.3010 0.0394 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 17.3788 -0.6754 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 18.0262 -1.1519 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 18.7209 -1.2321 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 18.6301 -0.4794 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 17.3831 -1.5741 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 17.8753 -0.3874 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 2 0 0 0 0 4 3 1 4 0 0 0 4 5 1 0 0 0 0 6 5 1 4 0 0 0 6 7 1 0 0 0 0 7 8 2 0 0 0 0 6 9 1 0 0 0 0 10 9 1 4 0 0 0 10 4 1 0 0 0 0 10 8 1 0 0 0 0 M END And we can see 3 atoms are set with atom parity = 3 (either or unmarked; ignored when read). And 3 single bonds are set with bond stereo = 4 (either). Both double bonds are set with bond stereo = 0 (use coords to determine cis or trans). If I read this into RDKit, however, I see one of the double bonds (the hydrazone one) is interpreted as STEREOANY and not STEREONONE as the molblock intended: mol = Chem.MolFromMolBlock(test_mb_20) for bond in mol.GetBonds(): if bond.GetBondType() == Chem.BondType.DOUBLE: print(bond.GetStereo()) STEREOANY STEREONONE And if I make a call to EnumerateStereoisomers() I see the above error. Is there a step (or understanding) I am missing? Kind regards James ________________________________ PLEASE READ - This email is confidential and may be privileged. It is intended for the named addressee(s) only and access to it by anyone else is unauthorised. If you are not an addressee, any disclosure or copying of the contents of this email or any action taken (or not taken) in reliance on it is unauthorised and may be unlawful. If you have received this email in error, please notify the sender or postmas...@vernalis.com. Email is not a secure method of communication and the Company cannot accept responsibility for the accuracy or completeness of this message or any attachment(s). Please check this email for virus infection for which the Company accepts no responsibility. If verification of this email is sought then please request a hard copy. Unless otherwise stated, any views or opinions presented are solely those of the author and do not represent those of the Company. Vernalis (R&D) Limited (no. 1985479) Granta Park, Great Abington Cambridge, CB21 6GB, United Kingdom Tel: +44 (0)1223 895 555 ________________________________
_______________________________________________ Rdkit-discuss mailing list Rdkit-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rdkit-discuss