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'