From all we know only tautomers should get the same InChI key, or, in case of the second block, if there are lots of stereo centers. However these cases are just collisions, they still have different InChI. I have found a class of molecule pairs, with four real-world examples in ChEBI and PubChem, where both web input pages of ChEBI and PubChem generate identical InChI and keys, despite there being a different E-Z configuration on a double bond. And these are also entries in the said databases. My question:

Is this normal/expected? Is it a bug in both software, which part of it?

The pairs:

  1. 5,7-dihydroxy-2-(4-hydroxy-3,5-dimethoxyphenyl)-1-benzopyran-1-ium-3-yl 6-O-[(2Z)-3-(3,4-dihydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside and 5,7-dihydroxy-2-(4-hydroxy-3,5-dimethoxyphenyl)-1-benzopyran-1-ium-3-yl 6-O-[(2E)-3-(3,4-dihydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside

  2. 2-(3,4-dihydroxy-5-methoxyphenyl)-5,7-dihydroxychromenium-3-yl 6-O-[(2Z)-3-(4-hydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside and 2-(3,4-dihydroxy-5-methoxyphenyl)-5,7-dihydroxychromenium-3-yl 6-O-[(2E)-3-(4-hydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside

  3. 5,7-dihydroxy-2-(4-hydroxy-3,5-dimethoxyphenyl)chromenium-3-yl 6-O-[(2Z)-3-(4-hydroxyphenyl)prop-2-enoyl]--β-D-glucopyranoside and 5,7-dihydroxy-2-(4-hydroxy-3,5-dimethoxyphenyl)chromenium-3-yl 6-O-[(2E)-3-(4-hydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside

  4. 5,7-dihydroxy-2-(4-hydroxy-3-methoxyphenyl)chromenium-3-yl 6-O-[(2Z)-3-(4-hydroxyphenyl)prop-2-enoyl]-β-D-glucopyranoside and 5,7-dihydroxy-2-(4-hydroxy-3-methoxyphenyl)chromenium-3-yl 6-O-[(2E)-3-(4-hydroxyphenyl)prop-2-enoyl]-β-D-glucoside-glucopyranoside

Addendum: I also confirmed with two different SDF files that the current inchi-1 Linux binary generates the same InChi.

P.S. This is a pair of minimal molecules:

Both have the InChi InChI=1S/C11H10O3/c1-14-8-11(13)7-4-9-2-5-10(12)6-3-9/h2-8H,1H3/p+1. If the methyl is removed, leaving a =OH+ group at the end, both isomers get different InChi.

  • 1
    $\begingroup$ Observation: I started with the .sdf of all four pairs and converted them into .smi (OpenBabel 3.1.1, as repackaged for Debian 11/bullseye, branch testing). Pairwise, the SMILES are different. Note, converting the .sdf into .inchi (again same OpenBabel version), e.g. by obabel -isdf 2A_ChEBI_75708.sdf -oinchi -O 2A.inchi yielded this warning information: *** Open Babel Warning in InChI code petunidin 3-O-(6-O-(Z)-4-coumaroyl-beta-D-glucoside) :Proton(s) added/removed 1 molecule converted. (Then, pair wise, inchis equate each other.). Maybe there is some sanitizing issue. $\endgroup$
    – Buttonwood
    Commented May 6, 2021 at 17:22
  • $\begingroup$ I also get Warning (Proton(s) added/removed) structure #1 from INCHI-1. Do all these software (web input at ChEBI, PubChem, OpenBabel) use the same InChi library? $\endgroup$ Commented May 6, 2021 at 17:26
  • $\begingroup$ Indeed, it could be that there is one reference implementation with a license permissive enough to be copy-pasted into OpenBabel (perhaps a question for Geoff Hutchison?). Could be this strives RDKit, too. $\endgroup$
    – Buttonwood
    Commented May 6, 2021 at 17:33
  • $\begingroup$ I vaguely recall a presentation (either OpenBabel, or RDKit UGM) about the difficulties to represent and later sanitize the structure representation as strings. But I think, this was more around metal organic compounds (their sometimes less classical bonding), and tautormerism (e.g., 2-hydroxy pyridine vs. 2-pyrididone). From there I got the term of «sanitizing strings». $\endgroup$
    – Buttonwood
    Commented May 6, 2021 at 17:37
  • 1
    $\begingroup$ @RalfStephan : I think you're right: the issue is very likely to be the OH in para to the vinyl substituent. That is common to all your examples. I don't think the oxonium matters. If the software generates a quinone-like tautomer, it will indeed make an enol on the original enone side, probably losing the stereochemistry. I had a similar issue at work, and I had to change the settings of the Inchikey calculation, to avoid having unwanted loss of stereochemistry. So in essence my guess is: long-range tautomerism forming a quinone. Easy to test: draw the quinone and calculate its Inchi. $\endgroup$ Commented May 11, 2021 at 18:07

1 Answer 1


Professor Jonathan M Goodman gave an explanation on the InChi mailing list:


In summary, the given class of molecules represents a special case where the current InChi algorithm (1.06) produces less than useful results in order to being able to handle all other cases satifyingly. Prof Goodman hints at work being done in organometallics which may affect this behaviour. So, it's not a bug in the implementation of the algorithm, it is the algorithm itself that needs improvement.

The linked message also contains a smaller minimal case, confirming that it is the hetero-ion together with the keto-enol configuration causing the phenomenon.

  • $\begingroup$ Another aspect of the side effects of the tautomerism code is that structures are changed when converting. I wanted to convert the europinidine structure COc1c(O)c(O)[c]c(-c2[o+]c3c(c(OC)[c]c(O)[c]3)[c]c2O)[c]1 to InChI, this gives InChI=1S/C17H14O7/c1-22-13-5-9(18)6-14-10(13)7-12(20)17(24-14)8-3-11(19)16(21)15(4-8)23-2/h3-7H,1-2H3,(H3-,18,19,20,21)/p+1 which looks like a pseudo-tautomer but I don't believe that change is possible, at all. Of course it breaks matching a naive SMARTS pattern aimed at anthocyanidins... $\endgroup$ Commented Jul 31, 2021 at 17:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.