TaxonKit:小巧、高效、实用的NCBI分类学数据命令行工具
2025-11-16 23:46:28
TaxonKit: 小巧、高效、实用的NCBI分类学数据命令行工具集
宏基因组按:NCBI物种分类注释信息格式复杂,存在层级不整齐、缺失、名称变动等问题,在使用中存在一定困难。最近发现了一款分类信息查询和格式化的工具TaxonKit,该工具于2019年发布于Biorxiv上,目前已经被引用19次(Google学术,截止2020年2月7日)。推荐给大家,助力NCBI分类信息的使用和宏基因组数据分析。
图形摘要:软件的主要功能。a. 分类信息名称-ID转换、过滤、查询、LCA、格式化等。b. 名称历史追溯。
NCBI Taxonomy 数据库
从事生物多样性的研究者对NCBI Taxonomy数据库一定不会陌生,它包含了NCBI所有核酸和蛋白序列数据库中每条序列对应的物种名称与分类学信息。大多数生态学研究对物种组成的描述都是基于NCBI Taxonomy数据库,当然目前也开始使用其他数据库,如GTDB等。
NCBI Taxonomy数据库始于1991年,一直随着Entrez数据库和其他数据库更新,1996年推出网页版。NCBI Taxonomy数据库官方地址为 https://www.ncbi.nlm.nih.gov/taxonomy ,公开数据下载地址为 https://ftp.ncbi.nih.gov/pub/taxonomy/ ,数据每小时更新,每个月初生成一份数据归档存于 taxdump_archive 目录,最早可追溯到2014年8月。
TaxonKit 使用
TaxonKit是采用Go语言编写的命令行工具,提供Linux, Windows, macOS操作系统不同架构(x86-64/arm64)的静态编译的可执行二进制文件。发布的压缩包不足3Mb,除了Github托管外,还提供国内镜像供下载,同时还支持conda和homebrew安装。用户只需要下载、解压,开箱即用,无需配置,仅需下载解压NCBI Taxonomy数据文件解压到指定目录即可。
源代码 https://github.com/shenwei356/taxonkit ,
文档 http://bioinf.shenwei.me/taxonkit (介绍、使用说明、例子、教程)
选择系统对应的版本下载最新版 https://github.com/shenwei356/taxonkit/releases ,解压后添加环境变量即可使用。或可选conda安装
conda install taxonkit -c bioconda -y
# 表格数据处理,推荐使用 csvtk 更高效
conda install csvtk -c bioconda -y
测试数据下载可直接 https://github.com/shenwei356/taxonkit 下载项目压缩包,或使用git clone下载项目文件夹,其中的example为测试数据
git clone https://github.com/shenwei356/taxonkit
TaxonKit为命令行工具,采用子命令的方式来执行不同功能,大多数子命令支持标准输入/输出,便于使用命令行管道进行流水作业,轻松整合进分析流程中。
子命令
功能
list
列出指定taxID下所有子单元的的TaxID
lineage
根据TaxID获取完整谱系(lineage)
reformat
将完整谱系转化为“界门纲目科属种株”的自定义格式
name2taxid
将分类单元名称转化为TaxID
filter
按分类学水平范围过滤TaxIDs
lca
计算最低公共祖先(LCA)
taxid-changelog
追踪TaxID变更记录
version
显示版本信息、检测新版本
genautocomplete
生成shell自动补全配置脚本
备注:
输出:
所有命令输出中包含输入数据内容,在此基础上增加列。
所有命令默认输出到标准输出(stdout),可通过重定向(>)写入文件。
或通过全局参数-o或--out-file指定输出文件,且可自动识别输出文件后缀(.gz)输出gzip格式。
输入:
除了list与taxid-changelog之外,lineage, reformat, name2taxid, filter 与 lca均可从标准输入(stdin)读取输入数据,也可通过位置参数(positional arguments)输入,即命令后面不带任何flag的参数,如 taxonkit lineage taxids.txt
输入格式为单列,或者制表符分隔的格式,输入数据所在列用-i或--taxid-field指定。
TaxonKit直接解析NCBI Taxonomy数据文件(2秒左右),配置更容易,也便于更新数据,占用内存在500Mb-1.5G左右。数据下载:
# 有时下载失败,可多试几次;或尝试浏览器下载此链接
wget -c https://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz
tar -zxvf taxdump.tar.gz
# 解压文件存于家目录中.taxonkit/,程序默认数据库默认目录
mkdir -p $HOME/.taxonkit
cp names.dmp nodes.dmp delnodes.dmp merged.dmp $HOME/.taxonkit
list 列出指定taxID所在子树的所有TaxID
taxonkit list用于列出指定TaxID所在分类学单元(taxon)的子树(subtree)的所有taxon的TaxID,可选显示名称和分类学水平。此功能与NCBI Taxonomy网页版类似。
如,
# 以人属(9605)和肠道中著名的Akk菌属(239934)为例
$ taxonkit list --show-rank --show-name --indent " " --ids 9605,239934
9605 [genus] Homo
9606 [species] Homo sapiens
63221 [subspecies] Homo sapiens neanderthalensis
741158 [subspecies] Homo sapiens subsp. 'Denisova'
1425170 [species] Homo heidelbergensis
2665952 [no rank] environmental samples
2665953 [species] Homo sapiens environmental sample
239934 [genus] Akkermansia
239935 [species] Akkermansia muciniphila
349741 [strain] Akkermansia muciniphila ATCC BAA-835
512293 [no rank] environmental samples
512294 [species] uncultured Akkermansia sp.
1131822 [species] uncultured Akkermansia sp. SMG25
1262691 [species] Akkermansia sp. CAG:344
1263034 [species] Akkermansia muciniphila CAG:154
1679444 [species] Akkermansia glycaniphila
2608915 [no rank] unclassified Akkermansia
1131336 [species] Akkermansia sp. KLE1605
...
list使用最广泛的的功能是获取某个类别(比如细菌、病毒、某个属等)下所有的TaxID,用来从NCBI nt/nr中获取对应的核酸/蛋白序列,从而搭建特异性的BLAST数据库。