I would like to retrieve the InChI representation for a given KEGG compound but I fail to find a direct solution for this.
One could do it via ChEBI like this:
from bioservices import *
kegg_con = KEGG()
kegg_entry = kegg_con.parse(kegg_con.get('C00047'))
chebi_con = ChEBI()
chebi_entry = chebi_con.getCompleteEntity('CHEBI:' + kegg_entry['DBLINKS']['ChEBI'])
print chebi_entry.smiles
print chebi_entry.inchi
print chebi_entry.inchiKey
which will print
NCCCC[C@H](N)C(O)=O
InChI=1S/C6H14N2O2/c7-4-2-1-3-5(8)6(9)10/h5H,1-4,7-8H2,(H,9,10)/t5-/m0/s1
KDXKERNSBIXSRK-YFKPBYRVSA-N
Is there a direct way which does not require to go via ChEBI
?
I'm not aware of a functionality in the KEGG service that would allow you to do that directly. I believe your solution (using e.g. ChEBI) is A correct one. You may have other useful service such as unichem, chemspider (you would need a login though for that one) could help as well. (disclaimer: I'm the bioservices main author)