skbio.tree.TreeNode.from_taxdump

classmethod TreeNode.from_taxdump(nodes, names=None)[源代码]

从NCBI分类数据库构建一棵树。

状态:0.5.8版本的试验性版本。

参数:
  • nodes (pd.DataFrame) -- 分类单元层级

  • names (pd.DataFrame or dict, optional) -- 分类单元名称

返回:

构建的树

返回类型:

TreeNode

备注

nodesnames 对应于NCBI分类数据库中的“nodes.dmp”和“names.dmp”。应使用以下命令将读入数据帧 skbio.io.read 在这次行动之前。或者, names 可以作为词典提供。如果 names 省略,则将分类ID用作分类名。

抛出:
  • ValueError -- 如果没有顶级节点

  • ValueError -- 如果存在多个顶级节点

示例

>>> import pandas as pd
>>> from skbio.tree import TreeNode
>>> nodes = pd.DataFrame([
...             [1, 1, 'no rank'],
...             [2, 1, 'domain'],
...             [3, 1, 'domain'],
...             [4, 2, 'phylum'],
...             [5, 2, 'phylum']], columns=[
...     'tax_id', 'parent_tax_id', 'rank']).set_index('tax_id')
>>> names = {1: 'root', 2: 'Bacteria', 3: 'Archaea',
...          4: 'Firmicutes', 5: 'Bacteroidetes'}
>>> tree = TreeNode.from_taxdump(nodes, names)
>>> print(tree.ascii_art())
                    /-Firmicutes
          /Bacteria|
-root----|          \-Bacteroidetes
         |
          \-Archaea