这个问题涉及:
How to get taxonomic specific ids for kingdom, phylum, class, order, family, genus and species from taxid?
这里给出的解决方案是可行的,但是我希望为定义的列组提供每个分类ID的名称。我在ete3上找到了这个可以做的工作:
names = ncbi.get_taxid_translator(lineage)
print [names[taxid] for taxid in lineage]
但作为python程序员,我未能将其整合到上面链接中给出的代码中。以下是我尝试过的:
^{pr2}$
非常感谢您能提供的任何帮助。在
Tags:
我没有足够的声誉来评论马克西米利安·彼得斯的回答。我尝试了他的代码,它成功了,但是信息没有按
desired_ranks = ['kingdom', 'phylum', 'class', 'order', 'family', 'genus', 'species']
的顺序显示。在要获取右栏中的信息以及超级王国信息,请使用:
输出:
^{pr2}$此输出与NCBI信息匹配,例如https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1204725。在
让我们让你的
taxids
保持原样。在然后为每个
^{pr2}$taxid
调用get_desired_ranks
。在现在为}中的每个
ranks
和{key
(rank)调用ncbi.get_taxid_translator
输出:输出
改进输出的完整代码
如果您想要一个用制表符分隔的输出,可以用}中,并使用
\t
连接字符串,或者只将所有结果添加到list
和{\t
。在在下面的代码片段中,结果存储在一个名为
list
的results
中,其中包含另一个存储字段(原始ID、kingdom等)的列表。在每个循环中,结果被添加到最后一个条目(results[-1]
)。在输出
相关问题 更多 >
编程相关推荐