需求
我有一个物种taxonomy ID的list,想获得相应的物种名,不要一个个去NCBI Taxonomy官网查。反之根据物种名list查询对应的taxid。
实现
因为之前没怎么用过,我的第一个想法是通过下载到集群的taxonomy数据库文件来匹配。一般下载下来的数据库会有names.dmp和nodes.dmp文件,分别是物种层级关系文件和taxid与物种名对应文件。但我想要的只是species这个层级的,所以要结合这两个文件写个小程序才能实现,并且很可能出错,因为我不知道到底哪个才是标准的species name。
比如说,我想要知道taxid为10090的物种名,在names.dmp文件中有如下这么多对应关系:
其实,NCBI的Taxonomy数据库自带了一个叫TaxIdentifier的工具(https://www.ncbi.nlm.nih.gov/Taxonomy/TaxIdentifier/tax_identifier.cgi),可以轻松转换。
如上图我输入一个taxid list,直接得到以下结果:
通过选择full taxid lineage,也可以得到该物种的所有谱系关系:
反过来,通过taxname来获得taxid也是一样的,不过要注意名字的规范性。
可见在生物学问题研究上,很多轮子已经造成了,要学会搜索和使用。关键还是需求问题。