{ "cells": [ { "cell_type": "markdown", "id": "f483e67f", "metadata": {}, "source": [ "# Ensemble experiments with random Boolean networks\n", "\n", "This tutorial demonstrates how BoolForge's ability to generate **random Boolean \n", "networks with controlled structural and functional properties** is essential \n", "for many types of studies. Specifically, it enables:\n", "\n", "1. **Null model comparisons** \n", " Are biological networks structurally or dynamically different from random networks?\n", "\n", "2. **Ensemble studies** \n", " How do structural properties such as degree or canalization affect network dynamics?\n", "\n", "## What you will learn\n", "In this tutorial you will learn how to generate random Boolean networks with:\n", "\n", "- specific structural properties (e.g., degree, degree distribution, strongly connected),\n", "- prescribed functional properties (e.g., canalization, bias),\n", "\n", "It is strongly recommended to complete Tutorials 4 and 5 on random function generation first.\n", "\n", "## Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "42b91507", "metadata": { "execution": { "iopub.execute_input": "2026-03-14T21:35:14.249317Z", "iopub.status.busy": "2026-03-14T21:35:14.249017Z", "iopub.status.idle": "2026-03-14T21:35:15.550292Z", "shell.execute_reply": "2026-03-14T21:35:15.549933Z" } }, "outputs": [], "source": [ "import boolforge as bf\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "6db97354", "metadata": {}, "source": [ "## NK Kauffman networks\n", "\n", "One of the classical models of complex systems is the **NK random Boolean network**\n", "introduced by Stuart Kauffman.\n", "\n", "In this model:\n", "\n", "- The network contains N nodes.\n", "- Each node is regulated by k inputs.\n", "- Each update function is generated randomly with *bias* $p$, i.e.\n", "\n", " - probability of output 1: `p`\n", " - probability of output 0: `1-p`\n", "\n", "A key theoretical result due to [Derrida and Pomeau (1986)](https://hal.science/hal-03285912/document) \n", "predicts how a single-node perturbation\n", "propagates in large random Boolean networks. They showed that if two network states differ in one node, \n", "the expected number of differences after one update step is $2kp(1-p)$.\n", "\n", "If this value is\n", "\n", "- $< 1$, then perturbations decrease on average (ordered regime)\n", "- $> 1$, then perturbations increase on average (chaotic regime)\n", "- $= 1$, then perturbations remain on average of equal size (critical boundary)\n", "\n", "The expected number of propagated perturbations is called the **Derrida value**." ] }, { "cell_type": "code", "execution_count": 2, "id": "35340167", "metadata": { "execution": { "iopub.execute_input": "2026-03-14T21:35:15.552306Z", "iopub.status.busy": "2026-03-14T21:35:15.552105Z", "iopub.status.idle": "2026-03-14T21:35:16.215335Z", "shell.execute_reply": "2026-03-14T21:35:16.215060Z" } }, "outputs": [ { "data": { "image/png": "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siRGDYAcHR0RGhqKrVu35qyTvB5Zzl3LUxhpQjt8+LDq8i5q1aqlAp3c+5QmLekNVtR9WpPHm1TB3AEhqqYnN1mW9fI4ERGRpTF6E5jk3gwaNAjNmzdHixYtVA+u5OTknF5hzz33HKpWraoSlcVHH32EBx98EHXr1kVcXBymTJmiusEPGTIkp4fY66+/jkmTJqnpFSQg+vDDD+Hn54eePXvCnKSkpKi/MjxAaaoEYNZj3veMBG2XEYvwcMNNeXG3/OYcIyIisooAqE+fPrh+/boauFCSlIODg7Fhw4acJObz58+rnmE6t2/fVt3mZdty5cqpGqRdu3ahUaM7TTninXfeUUHUSy+9pIKktm3bqn3ePWCiqdMlgsv5WjKZEJWIiKgscTJUE54MVXrJydhFAQEBcHV1LfXj6ebmKou5x3Q4GzwRERkKJ0O1EJIkrmvas6S5x4iIiGDtU2EQERERlTUGQERERGR1GAARERGR1WEARERERFaHARARERFZHQZAREREZHUYABEREZHVYQBEREREVocBEBEREVkdBkBERERkdRgAERERkdVhAERERERWhwEQERERWR0GQERERGR17I1dADK8lJQUREdH6/28qKioPH/1FRAQAFdX12I9l4iIqCwxALJAEvyEhoYW+/kDBgwo1vPCwsIQEhJS7OMSERGVFQZAFkhqYiQY0VdqairOnj0Lf39/uLi4FOu4RERE5sBGq9VqjV0IU5OQkAAvLy/Ex8fD09PT2MUhIiIiA1+/mQRNREREVocBEBEREVkdBkBERERkdRgAERERkdVhAERERERWhwEQERERWR0GQERERGR1GAARERGR1WEARERERFaHARARERFZHQZAREREZHUYABEREZHVYQBEREREVsfe2AUwRVqtNmdWWSIiIjIPuuu27jpeGAZA+UhMTFR/q1evbuyiEBERUTGu415eXoVuY6MtSphkZTQaDS5fvgwPDw/Y2NjAmiJnCfouXLgAT09PYxeHShn/39aF/2/rYq3/b61Wq4IfPz8/2NoWnuXDGqB8yItWrVo1WCv5sFjTB8ba8f9tXfj/ti7W+P/2uk/Njw6ToImIiMjqMAAiIiIiq8MAiHI4OTlh/Pjx6i9ZPv6/rQv/39aF/+/7YxI0ERERWR3WABEREZHVYQBEREREVocBEBEREVkdBkBERERkdRgAEXbs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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 100 # network size\n", "ks = range(1,5) # constant in-degree\n", "n_networks = 50 # ensemble size\n", "p = 0.5 # bias p: probability of ones in truth table\n", "\n", "derrida_values = []\n", "for k in ks:\n", " derrida_values.append([])\n", " for _ in range(n_networks):\n", " bn = bf.random_network(N, k, bias = p, allow_degenerate_functions=True)\n", " derrida_values[-1].append( bn.get_derrida_value(exact=True) )\n", "\n", "plt.boxplot(derrida_values, positions=list(ks))\n", "plt.axhline(1, linestyle=\"--\", color=\"gray\", label=\"critical value\")\n", "plt.plot(ks, [2*k*p*(1-p) for k in ks], \"o-\", label=r\"$2kp(1-p)$ (annealed theory)\")\n", "plt.xlabel(\"Constant in-degree k\")\n", "plt.ylabel(\"Derrida value\")\n", "plt.legend(frameon=False);" ] }, { "cell_type": "markdown", "id": "02dc6abd", "metadata": {}, "source": [ "The numerical results closely follow the theoretical prediction $2kp(1-p)$\n", "derived under the **annealed approximation**. \n", "The phase transition occurs when the Derrida value crosses 1.\n", "\n", "For unbiased Boolean functions (with bias $p=0.5$), the theory predicts the\n", "critical connectivity $k=2$, which we also observe in this BoolForge ensemble experiment. \n", "\n", "We encourage the reader to vary the bias $p$ in the above example. As the bias\n", "becomes more extreme, the Derrida value declines and networks with higher \n", "connectivity exhibit critical dynamics." ] }, { "cell_type": "markdown", "id": "d7d6b3c1", "metadata": {}, "source": [ "## BoolForge philosophy: regulatory functions are non-degenerate\n", "\n", "The classical NK model assumes that a Boolean function with $k$ inputs may\n", "**not actually depend on all of them**. Such functions are called **degenerate**.\n", "\n", "While this assumption is natural in statistical physics models (e.g. spin\n", "glasses), it is biologically questionable. \n", "In gene regulatory networks, an input typically represents a *specific\n", "regulatory interaction*. If a transcription factor does not affect the\n", "gene, it should not appear as an input in the first place.\n", "**Therefore BoolForge assumes non-degenerate Boolean functions by default.**\n", "\n", "Degeneracy occurs frequently for small input sizes:\n", "\n", "- $k=1$: 2 out of 4 functions are degenerate (50%)\n", "- $k=2$: 6 out of 16 functions are degenerate\n", "- larger $k$: degeneracy becomes increasingly rare\n", "\n", "Disallowing degenerate functions therefore mainly affects **sparse networks**,\n", "precisely the regime most biological networks operate in (typical average\n", "in-degree $approx$ 2-3).\n", "\n", "We now repeat the previous experiment, *disallowing degenerate functions*." ] }, { "cell_type": "code", "execution_count": 3, "id": "658e9118", "metadata": { "execution": { "iopub.execute_input": "2026-03-14T21:35:16.216903Z", "iopub.status.busy": "2026-03-14T21:35:16.216793Z", "iopub.status.idle": "2026-03-14T21:35:17.233359Z", "shell.execute_reply": "2026-03-14T21:35:17.233067Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "derrida_values = []\n", "for k in ks:\n", " derrida_values.append([])\n", " for _ in range(n_networks):\n", " bn = bf.random_network(N, k, bias = p, allow_degenerate_functions=False)\n", " derrida_values[-1].append( bn.get_derrida_value(exact=True) )\n", "\n", "plt.boxplot(derrida_values, positions=list(ks))\n", "plt.axhline(1, linestyle=\"--\", color=\"gray\", label=\"critical value\")\n", "plt.plot(ks, [2*k*p*(1-p) for k in ks], \"o-\", label=r\"$2kp(1-p)$ (annealed theory)\")\n", "plt.xlabel(\"Constant in-degree k\")\n", "plt.ylabel(\"Derrida value\")\n", "plt.legend(frameon=False);" ] }, { "cell_type": "markdown", "id": "d85e3857", "metadata": {}, "source": [ "The behavior changes substantially. For *unbiased, non-degenerate Boolean networks \n", "(with bias $p=0.5$)* the phase transition occurs already at $k=1$,\n", "rather than $k=2$, as predicted by the classical NK theory.\n", "\n", "This illustrates how biologically motivated modeling assumptions\n", "can significantly affect the predicted dynamical regime of Boolean networks.\n", "\n", "## Random networks with prescribed canalization\n", "\n", "A major advantage of BoolForge is its ability to generate Boolean functions\n", "with **controlled canalization properties**. This is important because canalization \n", "is a common feature of biological regulatory networks.\n", "\n", "To display the impact of the canalizing layer structure, we generate\n", "ensembles of Boolean networks of fixed size and fixed in-degree, which are governed\n", "by nested canalizing functions of variable layer structure." ] }, { "cell_type": "code", "execution_count": 4, "id": "09ae8c03", "metadata": { "execution": { "iopub.execute_input": "2026-03-14T21:35:17.234998Z", "iopub.status.busy": "2026-03-14T21:35:17.234829Z", "iopub.status.idle": "2026-03-14T21:35:18.955236Z", "shell.execute_reply": "2026-03-14T21:35:18.954960Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "N = 12 # network size\n", "n = 5 # constant in-degree\n", "n_networks = 100 # ensemble size\n", "\n", "all_hamming = np.arange(1, 2 ** (n - 1), 2)\n", "all_abs_bias = 2 * np.abs(all_hamming/2**n - 0.5)\n", "\n", "number_attractors = []\n", "number_steady_states = []\n", "for i, w in enumerate(all_hamming):\n", " layer_structure = bf.hamming_weight_to_ncf_layer_structure(n, w)\n", " number_attractors.append([])\n", " number_steady_states.append([])\n", " for _ in range(n_networks):\n", " bn = bf.random_network(N, n, layer_structure=layer_structure)\n", " attr_info = bn.get_attractors_synchronous_exact()\n", " n_attractors = attr_info['NumberOfAttractors']\n", " number_attractors[-1].append( n_attractors )\n", " number_steady_states[-1].append( \n", " sum([len(a)==1 for a in attr_info['Attractors']]) \n", " )\n", "\n", "fig,ax = plt.subplots()\n", "mean, std = np.mean(number_attractors,1), np.std(number_attractors,1)\n", "ax.plot(all_abs_bias, mean, 'rx:', label='attractors')\n", "ax.fill_between(all_abs_bias, mean-std, mean+std, color='r', alpha = 0.2)\n", "mean, std = np.mean(number_steady_states,1), np.std(number_steady_states,1)\n", "ax.plot(all_abs_bias, mean, 'bo--', label='steady states')\n", "ax.fill_between(all_abs_bias, mean-std, mean+std, color='b', alpha = 0.2)\n", "ax.set_xlabel(\"Absolute bias\")\n", "ax.set_ylabel(\"Number\")\n", "ax.legend(frameon=False,loc='best');" ] }, { "cell_type": "markdown", "id": "6bf7ee49", "metadata": {}, "source": [ "This plot shows: The higher the absolute bias of the governing nested canalizing functions,\n", "the more ordered the dynamics, characterized by the presence of only a few\n", "network attractors, which are primarily steady states.\n", "\n" ] }, { "cell_type": "markdown", "id": "7a55af65", "metadata": {}, "source": [ "## Summary and outlook\n", "\n", "In this tutorial you learned how to:\n", "\n", "- compute exact robustness measures for small Boolean networks,\n", "- interpret coherence and fragility at network, basin, and attractor levels,\n", "- approximate robustness measures for larger networks, and\n", "- assess dynamical sensitivity using the Derrida value.\n", "\n", "In Tutorial 11, we will finally analyze biological Boolean network models and\n", "design null models and ensemble experiments. " ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "main_language": "python", "notebook_metadata_filter": "-all" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }