4
$\begingroup$

I'm writing a script and would like to use a "Gödel numbering" to search for specific reactions.

Is there any used procedure to assign an symbol (integer, possibly) to a chemical reaction? E.g. $$CH_4+4O_2=CO_2+2H_2O\ \ \ \Longrightarrow \ \ \ 121231412$$

$\endgroup$
  • $\begingroup$ To clarify, do you require reactions that are similar in some sense to generate similar numbers? $\endgroup$ – Richard Terrett Mar 8 '13 at 4:30
  • $\begingroup$ @RichardTerrett: Would be a feature, but isn't necessary. I don't expect the numbers/symbols to be accessible to a human. $\endgroup$ – Nikolaj-K Mar 8 '13 at 8:07
3
$\begingroup$

I don't know about Godel numbering specifically (though this is interesting, my being a math guy at heart), but there are existing textual systems for encoding molecules (not reactions that I know of). From these, you may be able to encode reactions.

Two examples are InChI and SMILES. These are Wikipedia links.

$\endgroup$
3
$\begingroup$

My suggestion is to dabble in combining SMILES representations of the reactants and products and a stoichiometric matrix in a consistent fashion and then using a hashing function (Now that I think of it, I guess Godel numbering is an example of hashing) to assign the reaction a unique identifier. You need to use a representation of the reactants and products that unambiguously describes the molecular graph (including stereochemistry) so that stereo- and/or constitutional isomers cannot give rise to the same identifiers, and so that different orderings of atoms in a string describing identical molecules do not give rise to differing identifiers.

There exist a number of reaction ontologies that can be used to categorise and describe chemical reactions. KEGG RCLASS and RPAIR is one such example which gives rise to numerical identifiers, however I'm not totally clear on how it works and it appears to be tailored to metabolomics. It is however a good example of the kind of thing people are doing.

The CMLReact format is an XML format for representing chemical reactions that may be suitable for generating short identifiers from through hashing, however being XML it has enough cruft in it that chemically insignificant changes to a CMLReact file may give rise to differing derived identifiers. Open documentation of the format is sadly not terribly forthcoming on the internet however there is an library for reading and writing CMLReact in OpenBabel.

$\endgroup$
1
$\begingroup$

SMARTS are a canonical way of representing chemical reactions (and other pattern-matching problems). This is a formal language so you could assign a Goedel numbering to the SMARTS. If you need a library to handle SMARTS/SMILES etc., take a look at OpenBabel.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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