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_empty
是True
并且根节点没有名称,则不会包括该名称。这是因为通常在分类法中表示多个域,这将导致根节点没有名称,并且在输出中表示也没有意义。示例
>>> 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