如何检索给定KEGG化合物的所有ChEBI id?

2024-04-19 00:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我想使用bioservices将KEGG ID映射到ChEBI ID,我可以:

from bioservices import *

kegg_con = KEGG()
kegg_entry = kegg_con.parse(kegg_con.get('C00033'))
print(kegg_entry['DBLINKS']['ChEBI'].split())

这会回来的

[u'15366', u'30089']

这意味着有两个ChEBI id与KEGG化合物(KEGG entry C00033)相关。你知道吗

另一种方法是,如果必须进行大量映射,则使用built-in converter如下:

map_kegg_chebi = kegg_con.conv("chebi", "compound")
print(map_kegg_chebi['cpd:C00033'])

这将打印

u'chebi:15366'

因此,对于同一个复合物,虽然有两个ID被分配给这个复合物,但只返回一个ID。有没有办法把它们都找回来?你知道吗


Tags: fromimportidmapparseserviceconbio
1条回答
网友
1楼 · 发布于 2024-04-19 00:08:25

简言之,我没有答案,但这里有一些信息可以帮助你。你知道吗

C00033条目显示了CHEBI数据库中的两个相关实体:15366和30089。现在,如果我们查看CHEBI网站,我们可以看到这两个条目对应于:

醋酸盐是从醋酸中损失H+而产生的离子。你知道吗

为什么KEGG决定提供这两个条目:我不知道。你知道吗

使用kegg_con.conv公司,我们可以看到C00033只映射到chebi中的一个结果,这对我来说似乎是合理的(但我同意这一点),因为30089只是醋酸的离子形式(15366)。你知道吗

为了完整性,请注意,使用ChEBI服务(来自bioservices),我们可以将两个ChEBI条目映射回KEGG,我们可以看到:

from bioservices import ChEBI
chebi = ChEBI()
chebi.conv("CHEBI:30089", "KEGG COMPOUND accession")
chebi.conv("CHEBI:15366", "KEGG COMPOUND accession")

两种情况下都返回C00033!然而,在这个例子中,我想说的是,忽略了醋酸的离子形式,并不会损失太多信息。你知道吗

有意思的是系统地检查其他不明确的映射是否也属于这一类(离子形式)

相关问题 更多 >