0

我想使用InChI作为输入从多个数据库中检索 ID,例如

InChI=1S/C6H14N2O2/c7-4-2-1-3-5(8)6(9)10/h5H,1-4,7-8H2,(H,9,10)/t5-/m0/s1

可以为此使用unichem from bioservices,但是,这些功能都需要InChIKey作为输入,例如

KDXKERNSBIXSRK-YFKPBYRVSA-N

是否可以使用将两者相互转换bioservices,如果没有,是否可以以某种方式使用unichemwithInChI而不是in 中的函数InChIKey

我试过了:

from bioservices import *
u = UniChem()
u.get_src_compound_ids_from_inchikey('KDXKERNSBIXSRK-YFKPBYRVSA-N')

但是,效果很好,

u.get_src_compound_ids_from_inchikey('InChI=1S/C6H14N2O2/c7-4-2-1-3-5(8)6(9)10/h5H,1-4,7-8H2,(H,9,10)/t5-/m0/s1')

不起作用并返回400

4

1 回答 1

0

不确定是否可以直接使用,但可以使用chemspiderbioservices执行以下解决方法:

import requests

host = "http://www.chemspider.com"
getstring = "/InChI.asmx/InChIToInChIKey?inchi="
inchi = 'InChI=1S/C6H14N2O2/c7-4-2-1-3-5(8)6(9)10/h5H,1-4,7-8H2,(H,9,10)/t5-/m0/s1'

r = requests.get('{}{}{}'.format(host, getstring, inchi))
if r.ok:
    res = str(r.text.replace('<?xml version="1.0" encoding="utf-8"?>\r\n<string xmlns="http://www.chemspider.com/">', '').replace('</string>', '').strip())
else:
    print "provide a valid inchi!"

这将提供所需的 InChIKey

'KDXKERNSBIXSRK-YFKPBYRVSA-N'

可用于unichem.

于 2017-09-01T12:47:53.293 回答