TaxonKit工具:获取物种NCBI数据库的Taxonomy ID

705 阅读3分钟

网址: bioinf.shenwei.me/taxonkit/ TaxonKit工具,采用命令行模式,可以便于使用loop循环进行流水作业。

想要实现的功能:输入一个科名列表文件,批量查询其taxonomy ID;

| 子命令 | 功能 | [list]——列出指定TaxId下所有子单元的的TaxID [lineage] ——根据TaxID获取完整谱系(lineage) [reformat]——将完整谱系转化为“界门纲目科属种株"的自定义格式 | [name2taxid]——将分类单元名称转化为TaxID | [filter]——按分类学水平范围过滤TaxIDs | [lca]——计算最低公共祖先(LCA) | [taxid-changelog]——追踪TaxID变更记录 | version——显示版本信息、检测新版本 | genautocomplete ——生成shell自动补全配置脚本 |

1. 安装

选择系统对应的版本下载最新版 github.com/shenwei356/…

conda install taxonkit -c bioconda -y 表格数据处理,推荐使用 csvtk 更高效 conda install csvtk -c bioconda -y

2. 下载NCBI Taxonomy数据文件库

TaxonKit直接解析NCBI Taxonomy数据文件(2秒左右),配置更容易,也便于更新数据,占用内存在500Mb-1.5G左右。 数据下载: 有时下载失败,可多试几次;或尝试浏览器下载此链接

wget -c ftp.ncbi.nih.gov/pub/taxonom… tar -zxvf taxdump.tar.gz

解压文件存于家目录中.taxonkit/,程序默认数据库默认目录

mkdir -p HOME/.taxonkitcpnames.dmpnodes.dmpdelnodes.dmpmerged.dmpHOME/.taxonkit cp names.dmp nodes.dmp delnodes.dmp merged.dmp HOME/.taxonkit

3. 使用

功能1: list 列出指定TaxId所在子树的所有TaxID 示例:

以人属(9605)和肠道中著名的Akk菌属(239934)为例 taxonkit list --show-rank --show-name --indent " " --ids 9605,239934

功能2: lineage 根据TaxID获取完整谱系

查找指定taxids列表的物种信息,tee可输出屏幕并写入文件 taxonkit lineage taxids.txt | tee lineage.txt

功能3: reformat 生成标准层级物种注释 目的是生成“界门纲目科属种”的分类学谱系(complete lineage),因为很多级别即不常用,而且不完整。通常只想保留界门纲目科属种。 值得注意的是,不是所有物种都有完整的界门纲目科属种水平,特别是病毒以及一些环境样品。 TaxonKit可以用自定义内容替代缺失的分类单元,如用“__”替代。 更厉害有用的是,TaxonKit还可以用更高层级的分类单元信息来补齐缺失的层级 (-F/--fill-miss-rank),比如:

-F参数会用family信息来补齐genus信息 $ echo 1327037 | taxonkit lineage | taxonkit reformat -F | cut -f 1,3

其它有用的选项:

-P/--add-prefix:给每个分类学水平添加前缀,比如s__species。 -t/--show-lineage-taxids:输出分类学单元对应的TaxID。 -r/--miss-rank-repl: 替代没有对应rank的taxon名称 -S/--pseudo-strain: 对于低于species且rank既不是subspecies也不是stain的taxid,使用水平最低taxon名称做为菌株名称。

功能4: name2taxid 将分类单元名称转化为TaxID 分类单元名称转化为TaxID非常容易理解,唯一要注意的是某些TaxId对应相同的名称,比如

-i指定列,-r显示级别,-L不显示世系 echo Drosophila | taxonkit name2taxid | taxonkit lineage -i 2 -r -L Drosophila 7215 genus Drosophila 32281 subgenus Drosophila 2081351 genus 获取TaxID之后,可以立即传给taxonkit进行后续操作,但要注意用-i指定TaxId所在列。

实例操作: 输入一个科名列表文件,批量查询其taxonomy ID;

/mnt/d$ cat /mnt/d/FamilyID_list.txt | taxonkit name2taxid | taxonkit lineage -i 2 -r -L | tee /mnt/d/example_lineage.txt #读取FamilyID_list.txt文件中的科名,批量查询Taxonomy ID并屏幕输出保存到/mnt/d/example_lineage.txt文件中 Pinaceae 3318 family Pinaceae 3318 family Simaroubaceae 23808 family ...

**更多有用的功能:

功能5: filter 按分类学水平范围过滤TaxIDs filter可以按分类学水平范围过滤TaxIDs,注意,不仅仅是特定的Rank,而是一个范围。 比如genus及以下的分类学水平,用-L genus -E genus,类似于 <= genus。

功能6: lca 计算最低公共祖先(LCA)

功能7: TaxID changelog 追踪TaxID变更记录 NCBI Taxonomy数据每天都在更新,每月初(大多为1号)的数据作为存档保存在 taxdump_archive/ 目录, 旧版本最早数据到2014年8月,新版本只到2018年12月。

原文链接:www.jianshu.com/u/3bb1fd161…