corneto.data.util#
Utility functions for data generation.
This module provides utility functions for generating random networks.
Functions#
- generate_preferential_attachment_networkGenerate a random network using the
Barabasi-Albert preferential attachment model.
- generate_duplication_divergence_networkGenerate a random network using the
duplication-divergence model.
- generate_random_signalling_networkGenerate a random biological signaling network
with configurable properties such as inhibitory edge probability.
- generate_random_duplication_divergence_signalling_networkGenerate a random biological
signaling network using the duplication-divergence model.
Functions
|
Generate a random network using the duplication-divergence model. |
Generate a random network using the Barabasi-Albert preferential attachment model. |
|
|
Generate a random signaling network using the duplication-divergence model. |
|
Generate a random signaling network using a preferential attachment model. |
- corneto.data.util.generate_preferential_attachment_network(n, m, seed=None)#
Generate a random network using the Barabasi-Albert preferential attachment model.
- Parameters:
n (int) – Total number of nodes in the network (must be greater than m).
m (int) – Number of edges each new node attaches with, controlling network density.
seed (int or None, optional) – Random seed for reproducibility, default is None.
Returns –
- list of tuples
Each edge is represented as (source, target) where source and target are vertex labels like “v1”, “v2”, …
Notes – The algorithm implements a Barabasi-Albert preferential attachment model, which produces scale-free networks similar to those observed in biological systems. The initial network consists of a complete graph among the first m nodes.
- corneto.data.util.generate_duplication_divergence_network(n, p_retain=0.3, seed=None)#
Generate a random network using the duplication-divergence model.
- Parameters:
n (int) – Total number of nodes in the network (n must be at least 2).
p_retain (float, optional) – Probability to retain each edge during duplication (default is 0.3).
seed (int or None, optional) – Random seed for reproducibility (default is None).
Returns –
- list of tuples
Each edge is represented as (source, target) where source and target are vertex labels like “v1”, “v2”, …
- corneto.data.util.generate_random_signalling_network(n, m, p_inhibitory=0.3, seed=None)#
Generate a random signaling network using a preferential attachment model.
- Parameters:
n (int) – Total number of nodes in the network (must be greater than m).
m (int) – Number of edges each new node attaches with, controlling network density.
p_inhibitory (float, optional) – Probability that an edge is inhibitory (-1), default is 0.3.
seed (int or None, optional) – Random seed for reproducibility.
Returns –
- list of tuples
Each edge is represented as (source, sign, target) where: - source and target are vertex labels like “v1”, “v2”, … - sign is -1 (inhibitory) or +1 (activation)
Examples –
>>> from corneto.data.util import generate_random_signalling_network >>> # Generate a small signaling network with 30% inhibitory edges >>> network = generate_random_signalling_network( ... n=10, m=2, p_inhibitory=0.3, seed=42 ... ) >>> print(f"Generated {len(network)} edges") >>> # Extract all inhibitory interactions >>> inhibitory = [edge for edge in network if edge[1] == -1] >>> print(f"Network has {len(inhibitory)} inhibitory relationships")
- corneto.data.util.generate_random_duplication_divergence_signalling_network(n, p_retain=0.3, p_inhibitory=0.3, seed=None)#
Generate a random signaling network using the duplication-divergence model.
- Parameters:
n (int) – Total number of nodes in the network (n must be at least 2).
p_retain (float, optional) – Probability to retain each edge during duplication (default is 0.3).
p_inhibitory (float, optional) – Probability that an edge is inhibitory (-1), default is 0.3.
seed (int or None, optional) – Random seed for reproducibility.
Returns –
- list of tuples
Each edge is represented as (source, sign, target) where: - source and target are vertex labels like “v1”, “v2”, … - sign is -1 (inhibitory) or +1 (activation)