Skip to main content
`Ctrl`+`K`

# skbio.stats.composition.tree_basis

skbio.stats.composition.tree_basis(tree)

  Calculate the sparse representation of an ilr basis from a tree.

  This computes an orthonormal basis specified from a bifurcating tree.

  Parameters:
    tree skbio.TreeNode

      Input bifurcating tree. Must be strictly bifurcating (i.e. every internal node needs to have exactly two children). This is used to specify the ilr basis.

  Returns:
    scipy.sparse.coo_matrix

      The ilr basis required to perform the ilr_inv transform. This is also known as the sequential binary partition. Note that this matrix is represented in clr coordinates.

    list of str

      List of tree node names indicating the ordering in the basis.

  Raises:
    ValueError

      If the tree doesn’t contain two branches.

  Examples

      >>> from skbio import TreeNode
      >>> tree = u"((b,c)a, d)root;"
      >>> t = TreeNode.read([tree])
      >>> basis, nodes = tree_basis(t)
      >>> basis.toarray()
      array([[-0.40824829, -0.40824829,  0.81649658],
             [-0.70710678,  0.70710678,  0.        ]])