# Stability Analysis¶

pybel_tools.analysis.stability.get_contradiction_summary(graph)[source]

Yield triplets of (source node, target node, set of relations) for (source node, target node) pairs that have multiple, contradictory relations.

Parameters: graph (pybel.BELGraph) – A BEL graph iter[tuple]
pybel_tools.analysis.stability.get_regulatory_pairs(graph)[source]

Finds pairs of nodes that have mutual causal edges that are regulating each other such that A -> B and B -| A.

Parameters: graph (pybel.BELGraph) – A BEL graph A set of pairs of nodes with mutual causal edges set
pybel_tools.analysis.stability.get_chaotic_pairs(graph)[source]

Finds pairs of nodes that have mutual causal edges that are increasing each other such that A -> B and B -> A.

Parameters: graph (pybel.BELGraph) – A BEL graph A set of pairs of nodes with mutual causal edges set
pybel_tools.analysis.stability.get_dampened_pairs(graph)[source]

Finds pairs of nodes that have mutual causal edges that are decreasing each other such that A -| B and B -| A.

Parameters: graph (pybel.BELGraph) – A BEL graph A set of pairs of nodes with mutual causal edges set
pybel_tools.analysis.stability.get_correlation_graph(graph)[source]

Extracts a graph of only correlative relationships

Parameters: graph (pybel.BELGraph) – A BEL Graph networkx.Graph
pybel_tools.analysis.stability.get_correlation_triangles(graph)[source]

Returns a set of all triangles pointed by the given node

Parameters: graph (networkx.Graph) – A non-directional graph set[tuple]
pybel_tools.analysis.stability.get_triangles(graph)[source]

Gets a set of triples representing the 3-cycles from a directional graph. Each 3-cycle is returned once, with nodes in sorted order.

Parameters: graph (networkx.DiGraph) – A directional graph set[tuple]
pybel_tools.analysis.stability.get_separate_unstable_correlation_triples(graph)[source]

Yields all triples of nodes A, B, C such that A positiveCorrelation B, A positiveCorrelation C, and B negativeCorrelation C

Parameters: graph (pybel.BELGraph) – A BEL graph An iterator over triples of unstable graphs, where the second two are negative iter[tuple]
pybel_tools.analysis.stability.get_mutually_unstable_correlation_triples(graph)[source]

Yields all triples of nodes A, B, C such that A negativeCorrelation B, B negativeCorrelation C, and C negativeCorrelation A.

Parameters: graph (pybel.BELGraph) – A BEL graph iter[tuple]
pybel_tools.analysis.stability.jens_transformation_alpha(graph)[source]

Applies Jens’ transformation (Type 1) to the graph

1. Induce a subgraph over causal + correlative edges
2. Transform edges by the following rules:
• increases => increases
• decreases => backwards increases
• positive correlation => two way increases
• negative correlation => delete

The resulting graph can be used to search for 3-cycles, which now symbolize unstable triplets where A -> B, A -| C and B positiveCorrelation C.

Parameters: graph (pybel.BELGraph) – A BEL graph networkx.DiGraph
pybel_tools.analysis.stability.jens_transformation_beta(graph)[source]

Applies Jens’ Transformation (Type 2) to the graph

1. Induce a subgraph over causal and correlative relations
2. Transform edges with the following rules:
• increases => backwards decreases
• decreases => decreases
• positive correlation => delete
• negative correlation => two way decreases

The resulting graph can be used to search for 3-cycles, which now symbolize stable triples where A -> B, A -| C and B negativeCorrelation C.

Parameters: graph (pybel.BELGraph) – A BEL graph networkx.DiGraph
pybel_tools.analysis.stability.get_jens_unstable(graph)[source]

Yields triples of nodes where A -> B, A -| C, and C positiveCorrelation A. Calculated efficiently using the Jens Transformation.

Parameters: graph (pybel.BELGraph) – A BEL graph An iterable of triplets of nodes iter[tuple]
pybel_tools.analysis.stability.get_increase_mismatch_triplets(graph)[source]

Iterates over triples of nodes where A -> B, A -> C, and C negativeCorrelation A.

Parameters: graph (pybel.BELGraph) – A BEL graph An iterable of triplets of nodes iter[tuple]
pybel_tools.analysis.stability.get_decrease_mismatch_triplets(graph)[source]

Iterates over triplets of nodes where A -| B, A -| C, and C negativeCorrelation A.

Parameters: graph (pybel.BELGraph) – A BEL graph An iterable of triplets of nodes iter[tuple]
pybel_tools.analysis.stability.get_chaotic_triplets(graph)[source]

Iterates over triples of nodes that mutually increase each other, such as when A -> B, B -> C, and C -> A.

Parameters: graph (pybel.BELGraph) – A BEL graph An iterable of triplets of nodes iter[tuple]
pybel_tools.analysis.stability.get_dampened_triplets(graph)[source]

Iterates over triples of nodes that mutually decreases each other, such as when A -| B, B -| C, and C -| A.

Parameters: graph (pybel.BELGraph) – A BEL graph An iterable of triplets of nodes iter[tuple]
pybel_tools.analysis.stability.summarize_stability(graph)[source]

Summarize the stability of the graph

Parameters: graph (pybel.BELGraph) – A BEL graph dict