3
$\begingroup$

I would like to retrieve the InChI representation for a given KEGG compound but I fail to find a direct solution for this (preferably doing it via bioservices).

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?

$\endgroup$
  • $\begingroup$ I had a look at the KEGG rest API but couldn't find anything; I think you might need to access the data in the KEGG FTP ($$$) $\endgroup$ – mgalardini Sep 1 '17 at 13:37
  • 1
    $\begingroup$ @mgalardini: I checked that, but seems it is not available at all, or I overlooked it. The way above is still feasible, just requires one additional step. $\endgroup$ – Cleb Sep 1 '17 at 13:39
  • 2
    $\begingroup$ It's not too bad, especially considering that you have a library to do it for you :) $\endgroup$ – mgalardini Sep 1 '17 at 15:43
2
$\begingroup$

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 the 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

| improve this answer | |
$\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.