skbio.tree.TreeNode.to_taxonomy

TreeNode.to_taxonomy(allow_empty=False, filter_f=None)[源代码]

返回self的分类表示形式

状态:从0.4.0开始实验。

参数:
  • allow_empty (bool, optional) -- 允许分类法存在空白(例如,没有名称的内部节点)。

  • filter_f (function, optional) -- 指定一个筛选函数,如果要返回沿袭,则返回True。此函数必须接受 TreeNode 作为第一个参数 list 它将血统表示为第二个参数。

生成器:

元组 —— (tip, [lineage]) 在哪里? tip 对应于树上的一个尖端 [lineage] 是从根到尖的扩展名。 None 在血统中省略空字符串。

备注

如果 allow_emptyTrue 并且根节点没有名称,则不会包括该名称。这是因为通常在分类法中表示多个域,这将导致根节点没有名称,并且在输出中表示也没有意义。

示例

>>> from skbio.tree import TreeNode
>>> lineages = {'1': ['Bacteria', 'Firmicutes', 'Clostridia'],
...             '2': ['Bacteria', 'Firmicutes', 'Bacilli'],
...             '3': ['Bacteria', 'Bacteroidetes', 'Sphingobacteria'],
...             '4': ['Archaea', 'Euryarchaeota', 'Thermoplasmata'],
...             '5': ['Archaea', 'Euryarchaeota', 'Thermoplasmata'],
...             '6': ['Archaea', 'Euryarchaeota', 'Halobacteria'],
...             '7': ['Archaea', 'Euryarchaeota', 'Halobacteria'],
...             '8': ['Bacteria', 'Bacteroidetes', 'Sphingobacteria'],
...             '9': ['Bacteria', 'Bacteroidetes', 'Cytophagia']}
>>> tree = TreeNode.from_taxonomy(lineages.items())
>>> lineages = sorted([(n.name, l) for n, l in tree.to_taxonomy()])
>>> for name, lineage in lineages:
...     print(name, '; '.join(lineage))
1 Bacteria; Firmicutes; Clostridia
2 Bacteria; Firmicutes; Bacilli
3 Bacteria; Bacteroidetes; Sphingobacteria
4 Archaea; Euryarchaeota; Thermoplasmata
5 Archaea; Euryarchaeota; Thermoplasmata
6 Archaea; Euryarchaeota; Halobacteria
7 Archaea; Euryarchaeota; Halobacteria
8 Bacteria; Bacteroidetes; Sphingobacteria
9 Bacteria; Bacteroidetes; Cytophagia