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_duplication_divergence_network(n[, ...])

Generate a random network using the duplication-divergence model.

generate_preferential_attachment_network(n, m)

Generate a random network using the Barabasi-Albert preferential attachment model.

generate_random_duplication_divergence_signalling_network(n)

Generate a random signaling network using the duplication-divergence model.

generate_random_signalling_network(n, m[, ...])

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)