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:[email protected]]
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 [email protected]. 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss