skbio.tree.TreeNode.assign_supports#

TreeNode.assign_supports()[source]#

Extract support values from internal node labels of a tree.

Notes

A “support value” measures the confidence or frequency of the incoming branch (the branch from parent to self) of an internal node in a tree. Roots and tips do not have support values. To extract a support value from a node label, this method reads from left and stops at the first “:” (if any), and attempts to convert it to a number.

For examples: “(a,b)1.0”, “(a,b)1.0:2.5”, and “(a,b)’1.0:species_A’”. In these cases the support values are all 1.0.

For examples: “(a,b):1.0” and “(a,b)species_A”. In these cases there are no support values.

If a support value is successfully extracted, it will be stripped from the node label and assigned to the support property.

IMPORTANT: mathematically, “support value” is a property of a branch, not a node, although they are usually attached to nodes in tree file formats [1].

References

[1]

Czech, Lucas, Jaime Huerta-Cepas, and Alexandros Stamatakis. “A Critical Review on the Use of Support Values in Tree Viewers and Bioinformatics Toolkits.” Molecular biology and evolution 34.6 (2017): 1535-1542.

Examples

>>> from skbio import TreeNode
>>> newick = "((a,b)95,(c,d):1.1,(e,f)'80:speciesA':1.0);"
>>> tree = TreeNode.read([newick])
>>> tree.assign_supports()
>>> tree.lca(['a', 'b']).support
95
>>> tree.lca(['c', 'd']).support is None
True
>>> tree.lca(['e', 'f']).support
80
>>> tree.lca(['e', 'f']).name
'speciesA'