假设我想使用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。有没有办法把它们都找回来?你知道吗
简言之,我没有答案,但这里有一些信息可以帮助你。你知道吗
C00033条目显示了CHEBI数据库中的两个相关实体:15366和30089。现在,如果我们查看CHEBI网站,我们可以看到这两个条目对应于:
醋酸盐是从醋酸中损失H+而产生的离子。你知道吗
为什么KEGG决定提供这两个条目:我不知道。你知道吗
使用kegg_con.conv公司,我们可以看到C00033只映射到chebi中的一个结果,这对我来说似乎是合理的(但我同意这一点),因为30089只是醋酸的离子形式(15366)。你知道吗
为了完整性,请注意,使用ChEBI服务(来自bioservices),我们可以将两个ChEBI条目映射回KEGG,我们可以看到:
两种情况下都返回C00033!然而,在这个例子中,我想说的是,忽略了醋酸的离子形式,并不会损失太多信息。你知道吗
有意思的是系统地检查其他不明确的映射是否也属于这一类(离子形式)
相关问题 更多 >
编程相关推荐