analysis.tree_hierarchy
merge_func
def merge_func(transition_matrix: np.ndarray, n_clusters: int,
motif_norm: np.ndarray,
merge_sel: int) -> Tuple[np.ndarray, np.ndarray]
Merge nodes in a graph based on a selection criterion.
Parameters
- transition_matrix (
np.ndarray): The transition matrix of the graph. - n_clusters (
int): The number of clusters. - motif_norm (
np.ndarray): The normalized motif matrix. - merge_sel (
int): The merge selection criterion.
- 0: Merge nodes with highest transition probability.
- 1: Merge nodes with lowest cost.
Returns
Tuple[np.ndarray, np.ndarray]: A tuple containing the merged nodes.
graph_to_tree
def graph_to_tree(motif_usage: np.ndarray,
transition_matrix: np.ndarray,
n_clusters: int,
merge_sel: int = 1) -> nx.Graph
Convert a graph to a tree.
Parameters
- motif_usage (
np.ndarray): The motif usage matrix. - transition_matrix (
np.ndarray): The transition matrix of the graph. - n_clusters (
int): The number of clusters. - merge_sel (
int, optional): The merge selection criterion. Defaults to 1.
- 0: Merge nodes with highest transition probability.
- 1: Merge nodes with lowest cost.
Returns
nx.Graph: The tree.
_traverse_tree_cutline
def _traverse_tree_cutline(
T: nx.Graph,
node: List[str],
traverse_list: List[str],
cutline: int,
level: int,
community_bag: List[List[str]],
community_list: List[str] | None = None) -> List[List[str]]
DEPRECATED in favor of bag_nodes_by_cutline. Helper function for tree traversal with a cutline.
Parameters
- T (
nx.Graph): The tree to be traversed. - node (
List[str]): Current node being traversed. - traverse_list (
List[str]): List of traversed nodes. - cutline (
int): The cutline level. - level (
int): The current level in the tree. - community_bag (
List[List[str]]): List of community bags. - community_list (
List[str], optional): List of nodes in the current community bag.
Returns
List[List[str]]: List of lists community bags.
traverse_tree_cutline
def traverse_tree_cutline(T: nx.Graph,
root_node: str | None = None,
cutline: int = 2) -> List[List[str]]
DEPRECATED in favor of bag_nodes_by_cutline. Traverse a tree with a cutline and return the community bags.
Parameters
- T (
nx.Graph): The tree to be traversed. - root_node (
str, optional): The root node of the tree. If None, traversal starts from the root. - cutline (
int, optional): The cutline level.
Returns
List[List[str]]: List of community bags.
bag_nodes_by_cutline
def bag_nodes_by_cutline(tree: nx.Graph, cutline: int = 2, root: str = "Root")
Bag nodes of a tree by a cutline.
Parameters
- tree (
nx.Graph): The tree to be bagged. - cutline (
int, optional): The cutline level. Defaults to 2. - root (
str, optional): The root node of the tree. Defaults to 'Root'.
Returns
List[List[str]]: List of bags of nodes.