{ "cells": [ { "cell_type": "markdown", "id": "e8ba7ab1", "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": "5714af2a", "metadata": { "execution": { "iopub.execute_input": "2026-03-31T14:27:28.202506Z", "iopub.status.busy": "2026-03-31T14:27:28.202300Z", "iopub.status.idle": "2026-03-31T14:27:29.113397Z", "shell.execute_reply": "2026-03-31T14:27:29.113098Z" } }, "outputs": [], "source": [ "import boolforge as bf\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "id": "4351be04", "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 @derrida1986random 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": "b1a01edf", "metadata": { "execution": { "iopub.execute_input": "2026-03-31T14:27:29.417488Z", "iopub.status.busy": "2026-03-31T14:27:29.416573Z", "iopub.status.idle": "2026-03-31T14:27:29.948485Z", "shell.execute_reply": "2026-03-31T14:27:29.948256Z" } }, "outputs": [ { "data": { "image/png": "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ARARERHZHQZAREREZHcYABEREZHdYQBEREREdocBEBEREdkdBkBERERkdxgAEVGJVr16dUyfPt3sx5VZ0v39/WGrZDkMWSQzJiZG66oQaYIBEFEJJWt8yaKnNWvWhJubG6pUqYIePXpg8+bNxVYHWVqjV69eFjm2LOXx2muv5Vtu7969eOGFFyxSByKyXVwLjKgEOnfuHNq0aaNaKCZPnozGjRsjPT1drQEli6FGRkbCXpQrVw62TP5uLi4uWleDqMRhCxBRCfS///1PdW/s2bMHffr0Qd26ddGwYUO10O2uXbuM5aKiotCzZ094e3vD19cXTz31FK5evWq8f+LEiWjatCkWLVqkupJkMc2nn35arSpusGLFChVgyUrysup0p06dkJiYqB77ww8/qFXnpS5yk24XMWbMGFUnT09P1UL13nvvqQt9Qc8rLUv//PMPZsyYYTy2BH0F6QKTst9++y0ef/xxdf46derg119/LVCXl6yoLo+Rx968efOeMvJcQ0JC4O7urp7X+++/j4yMDOP9Eni2bdtW3d+gQQNs2rRJ1WfNmjXqfnkOsr1s2TK0a9dOlVuyZIm6T+pcv359tS8oKAhfffVVtnNfuHBB/f0k6C1durT6u+b2muQkKSlJrRovgTO7xcguyGKoRFRy3Lx5U+/g4KD/5JNP8iyXmZmpb9q0qb5t27b6ffv26Xft2qUPDQ3Vt2vXzlhmwoQJem9vb33v3r31hw8f1m/dulUfEBCgf/vtt9X9ly9f1js7O+unTp2qP3v2rP7QoUP62bNn6+Pj49Xtqaee0j/yyCP6K1euqFtqaqp63Icffqjfvn27esyvv/6qr1Chgv6zzz4r8HljYmL0rVq10g8bNsx47IyMjByfZ7Vq1fTTpk0zbsvHXuXKlfU//vij/uTJk/pXXnlFnUtet9zIa+Po6KjqePz4cf2MGTP0/v7+ej8/P2MZqaOvr69+wYIF+tOnT+s3bNigr169un7ixInqfqlfvXr19A8//LD+wIED+n///VffokULVZ/Vq1erMvJ6yLY8buXKlfozZ86o13jx4sX6ihUrGvfJz9KlS6tzibS0NH39+vX1zz//vPobHDt2TN+/f391PsNrfre///5bnev27dvq1rp1a33nzp31iYmJeb5viEoKBkBEJczu3bvVhW3VqlV5lpMLtJOTkz4qKsq47+jRo+qxe/bsMQYinp6e+ri4OGOZ0aNH61u2bKl+DwsLU+XPnTuX4zkGDRqk79mzZ751njx5sgq+DPI7r5BA7dVXX8332DkFQO+++65xOyEhQe1bt25drsfo16+fvlu3btn29e3bN1sA1LFjx3uCzkWLFqnARcjxJViUYM1g48aNOQZA06dPz3acWrVqqYAtKwkiJQg0nEeCHZ1OZ7xfAh8PDw/9n3/+mWcAFBERoQ8ODtb36dMn12CJqCRiDhBRCXPnGp+/iIgIlRgtNwPplpEuFLnvvvvuM3Yh+fj4GMtUrFgR165dU783adIEHTt2VF1gXbp0QefOnfHEE0+gVKlSeZ5buni+/PJLnD59GgkJCaqbSLrgssrrvEUVHBxs/N3Ly0ud23Bs6So8f/68+v2BBx7AunXr1Osh3V5ZtWrVCuvXrzduHzx4ENu3b8fHH39s3JeZmYmUlBTVvXT8+HH1WgcEBBjvb9GiRY71a968ufF36U6U12nIkCEYNmyYcb+8ZtI1aDj3qVOnsr1eQs4tj83Lww8/rOohfxMnJ6c8yxKVJAyAiEoYyWmRPBJzJTrfnYArx9bpdOp3uWBu3LgRO3bswIYNGzBz5ky888472L17N2rUqJHj8Xbu3IlnnnlG5cdI0CQX8aVLl2LKlCkFPq8ln9Mff/xhzEeSvKaCkkBOnlPv3r3vuU/ydkwhQVnW44pvvvkGLVu2zFbOELBImdDQUGO+kClJ4N27d8fKlStx7NgxFcgS2QsGQEQljCTASmAxe/ZsvPLKK9kupkISXKWVRxJqJXFWboZWILkIyv3SElRQEjxI4qzcxo8fj2rVqmH16tUq4drV1VW1gmQlwZKUkUDJwNDiYoqcjm0OUre7yWslQV1WWZPJhSQ/SytP7dq1czxuvXr11GstSeYVKlQwDtHPj5QNDAzEmTNnVOCYEzm3tOCUL1/+npa0/Hz66acqCV5a8iRJ3ZS/PZEt4ygwohJIgh8JDqRrQ77dnzx5UnXjSLeTdN0IGa0l3/jlohoeHq5GjD377LNq9FHWLpi8SFDwySefYN++fWpE2apVq3D9+nUVMBi6sQ4dOqQCgxs3bqiWFWmhkrLS6iPdM1InCZhMJceW88tIJzm2uVqHciKBpHR3ffHFF+q1nDVrVrbuLyHB38KFC1Ur0NGjR9XrLc/x3XffNXY11apVC4MGDVKviXSXGe6TIDIvcsxJkyap1+rEiRM4fPgw5s+fj6lTp6r75W9YtmxZNfLr33//xdmzZ1UwI/W+ePFivs9Pnpcc46GHHrKrKRLIvjEAIiqBZAi2BDUdOnTAG2+8gUaNGqkLsEyCOGfOHONFV4ZtS77Ogw8+qAIieZy0JBSUtDZs3boV3bp1U8Pa5YIuXVkynFpIzoq0fEhAJV0xctF/7LHH8Prrr2PkyJFqqLu0CMkweFO9+eabqgtIWizk2BJUWcr999+vuqBk2L3kPUl3nyF4MZBWt99//13dJ/lT8php06YZW5SkrjLcXbqr5P6hQ4caW8Hy6yKTsjIMXoIeCVolSJVh+YZuRhmaL38HGaYvXXASgErOkOQAFbRFSOoqw+glCJIgi6ikc5BMaK0rQURkjyQglHmBJIFZWoeIqPgwACIiKibS1Sf5NtINKEHPq6++qlrgtm3bpnXViOwOk6CJiIqJzGQts2BLd53k7Ei3492j34ioeLAFiIiIiOwOk6CJiIjI7jAAIiIiIrvDAIiIiIjsDgMgIiIisjsMgIiIiMjuMAAiIiIiu8MAiIiIiOwOAyAiIiKCvfk/wwNE827nP+EAAAAASUVORK5CYII=", "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": "29ad56a8", "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": "d4770011", "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": "f1efe48f", "metadata": { "execution": { "iopub.execute_input": "2026-03-31T14:27:29.949763Z", "iopub.status.busy": "2026-03-31T14:27:29.949691Z", "iopub.status.idle": "2026-03-31T14:27:30.726171Z", "shell.execute_reply": "2026-03-31T14:27:30.725922Z" } }, "outputs": [ { "data": { "image/png": "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GIHY2FgVYGXOEwk2PXr00LpoRJpinxsiIiKyKpznhoiIiKwKww0RERFZFYYbIiIisioMN0RERGRVGG6IiIjIqjDcEBERkVVhuCEiIiKrwnBDREREVoXhhogsWp06dTB37lyjP67M3l2hQgVYKlmGQRZUjIuL07ooRGWO4YbIQsm6UbJIZr169eDi4oKaNWuib9+++OOPP8qsDLKkg6lWmJclJF566aVi94uIiMDTTz9tkjIQkWXi2lJEFujs2bPo3LmzqlmYM2cOWrZsiczMTLWukCyeeezYMdiKKlWqwJLJ383JyUnrYhBZFdbcEFmg5557TjU5hIeHY+DAgWjUqBGaN2+uFkXdvXt37n4xMTF45JFHUK5cOZQvXx6DBg3ClStXcm+fNm0aWrdujW+//VY178jii0OGDFErTOdYs2aNCk+yqrisPty9e3ckJyer+y5ZskStQC5lkYs0hYjXX39dlcnd3V3VLL399tvqJF7S55Uaoa1bt+LTTz/NfWwJdCVplpJ9Fy9ejP79+6vnb9iwITZs2FCiZihZXVvuI/e9cePGHfvIsbZt2xaurq7quKZPn46srKzc2yVU3nPPPer2Zs2a4ffff1flWb9+vbpdjkG2V61ahS5duqj9li9frm6TMjdt2lRd16RJEyxYsCDfc58/f179/STQent7q79rYa9JQVJSUtQK4hKK2VRFVk8WziQiy3Hjxg29nZ2dfubMmUXul52drW/durX+nnvu0UdGRup3796tDwgI0Hfp0iV3n6lTp+rLlSunHzBggP7gwYP6bdu26X19ffVvvPGGuv3SpUt6R0dH/ccff6yPjo7WHzhwQD9//nx9YmKiugwaNEj/4IMP6mNjY9UlPT1d3e/dd9/V79ixQ91nw4YN+qpVq+pnz55d4ueNi4vTd+zYUT9mzJjcx87KyirwOGvXrq3/5JNPcrflY61GjRr6FStW6E+ePKkfN26cei553Qojr429vb0q4/Hjx/WffvqpvkKFCnovL6/cfaSM5cuX14eFhelPnz6t/+233/R16tTRT5s2Td0u5WvcuLG+R48e+n379un/+ecffbt27VR51q1bp/aR10O25X4//PCD/syZM+o1XrZsmd7Pzy/3Ovnp7e2tnktkZGTomzZtqh81apT6Gxw5ckQ/dOhQ9Xw5r/nt/vrrL/Vct27dUpdOnTrpe/bsqU9OTi7yfUNkDRhuiCzMv//+q05aa9euLXI/Ofk6ODjoY2Jicq87fPiwum94eHhuyHB3d9cnJCTk7vPqq6/q27dvr36PiopS+589e7bA5xg5cqT+kUceKbbMc+bMUcEqR3HPKySEjR8/vtjHLijcvPXWW7nbSUlJ6rpff/210Md44okn9H369Ml33eDBg/OFmwceeOCOQPntt9+qUCLk8SUIShDLsWXLlgLDzdy5c/M9Tv369VUYy0sCogS8nOeRIKPT6XJvl1Dj5uam37x5c5Hh5ujRo3p/f3/9wIEDCw1CRNaGfW6ILMx/5+/iHT16VHUylksOaSqRZg25LSgoKLdZx9PTM3cfPz8/XL16Vf3eqlUrPPDAA6pZqlevXujZsycee+wxVKxYscjnlmaXzz77DKdPn0ZSUpJqupFmsbyKet675e/vn/u7h4eHeu6cx5bmu3Pnzqnf7733Xvz666/q9ZCmqLw6duyITZs25W7v378fO3bswHvvvZd7XXZ2NtLS0lSTz/Hjx9Vr7evrm3t7u3btCixfYGBg7u/SxCev01NPPYUxY8bkXi+vmTTX5Tz3qVOn8r1eQp5b7luUHj16qHLI38TBwaHIfYmsBcMNkYWRPiTSb8NYnYZv78wqj63T6dTvcjLcsmULdu7cid9++w2ff/453nzzTfz777+oW7dugY+3a9cuPPnkk6o/igQiOUGvXLkSH330UYmf15THtHHjxtz+P9KPqKQkpMkxDRgw4I7bpJ+MISRw5X1c8dVXX6F9+/b59ssJI7JPQEBAbv8cQzpUP/TQQ/jhhx9w5MgRFVKJbAHDDZGFkc6kEhrmz5+PcePG5TtRCuksKrUz0jlVOqHKJaf2Rk5wcrvU4JSUBAPphCqXKVOmoHbt2li3bp3qvOzs7KxqL/KSICT7SAjKkVNTYoiCHtsYpGy3k9dKAlteeTtmC+lILLUzDRo0KPBxGzdurF5r6bBdtWrV3GHqxZF9q1WrhjNnzqhQWBB5bql58fHxuaMGrDjvv/++6lAuNXDS4duQvz2RpeJoKSILJMFGTvzS3CDfyk+ePKmaVqQpSJpThIxqkm/qcsLcs2ePGlk1YsQINUonb7NIUeSEP3PmTERGRqqRV2vXrsW1a9dUGMhpWjpw4IA66V+/fl3ViEjNkuwrtTXSZCJlkjBkKHlseX4ZESSPbaxanYJISJQmqA8//FC9lvPmzcvXJCUk2C1dulTV3hw+fFi93nKMb731Vm7zT/369TFy5Ej1mkgTVs5tEhCLIo85a9Ys9VqdOHECBw8eRGhoKD7++GN1u/wNK1eurEZI/fPPP4iOjlZBRcp94cKFYo9Pjkseo1u3bjY1TQDZLoYbIgskw5AlsHTt2hUvv/wyWrRooU6uMoHfwoULc0+oMnRZ+sfcd999KuzI/aQGoKSklmDbtm3o06ePGtotJ2tpXpIhxUL6iEiNhYQlaR6RE3q/fv0wYcIEvPDCC2q4t9TkyFBwQ73yyiuqWUZqGuSxJTCZSocOHVSzkAw9l35G0gSXE0xySG3Zzz//rG6T/kpyn08++SS3JkjKKkO+pQlJbh89enRu7VVxzVayrwwFl0AjgVQCqAxNz2n6k+Hp8neQoerSLCbhUvroSJ+bktbkSFllKLkEHAlQRNbMTnoVa10IIiJrJGFP5r2RzsBSq0NEZYPhhojISKT5Tfq3SNOcBJrx48ermrPt27drXTQim8IOxURERiIzLMvszNKEJn1kpCnw9lFiRGR6rLkhIiIiq8IOxURERGRVGG6IiIjIqjDcEBERkVVhuCEiIiKrwnBDREREVoXhhoiIiKwKww0RERFZFYYbIiIigjX5PyQ6Mn+BgQvJAAAAAElFTkSuQmCC", "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": "342451a8", "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": "d44068d8", "metadata": { "execution": { "iopub.execute_input": "2026-03-31T14:27:30.727430Z", "iopub.status.busy": "2026-03-31T14:27:30.727305Z", "iopub.status.idle": "2026-03-31T14:27:32.012348Z", "shell.execute_reply": "2026-03-31T14:27:32.012114Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGwCAYAAACHJU4LAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcGpJREFUeJztnQd4VFX6xr/0BFIgQKgREOlSFHQVxN7LimVtqKBY+As2VBRFirgiViyIigVd66rgWmFXBewoAiIovfcWQgqpc//Pe05O5s5kUkly78y8v+e5mbllZs7Mncx571cjLMuyhBBCCCHEhUQ6PQBCCCGEkPKgUCGEEEKIa6FQIYQQQohroVAhhBBCiGuhUCGEEEKIa6FQIYQQQohroVAhhBBCiGuJliDG4/HItm3bJCkpSSIiIpweDiGEEEKqAEq4ZWVlSatWrSQyMjJ0hQpESnp6utPDIIQQQkgN2Lx5s7Rp0yZ0hQosKeaNJicnOz0cQgghhFSBAwcOKEODmcdDVqgYdw9ECoUKIYQQElxUJWyDwbSEEEIIcS0UKoQQQghxLRQqhBBCCHEtFCqEEEIIcS0UKoQQQghxLRQqhBBCCHEtFCqEEEIIcS0UKoQQQghxLRQqhBBCCHEtjgqV4uJiefDBB6V9+/aSkJAgHTp0kIkTJ6pmRYQQQgghjpbQnzx5skybNk3eeOMN6d69uyxcuFCuu+46SUlJkdtuu83JoRFCCCEk3IXKjz/+KBdeeKGcd955ar1du3by7rvvyi+//OLksAghhBDiEhx1/fTr10++/vprWbVqlVr//fff5fvvv5dzzjkn4PH5+fmq46J9IYQQ4mLGjxeZODHwPmzHfgfYsGGDaoi3ZMkSn+1DhgyRgQMHOjoG4iKhct9998kVV1whXbp0kZiYGDnqqKPkjjvukEGDBgU8ftKkScotZBa0iK4zPB6RgoK6e35CCAkHoqJExo4tK1awju3YH4QUFhaKmyh02XhqFctB3n33XatNmzbqdunSpdabb75ppaamWjNmzAh4fF5enpWZmVm6bN68GVG36n6ts2OHZS1YYFn5+bX/3IQQEuxkZ+vF4/Fuw+8ltuXl+R47ZgxSJCxrwgS9/tBDeh3bDx4M/LzFxd5tBQU1GuKXX35p9e/f30pJSVFzy3nnnWetWbNG7cPcYV9OOukka9y4cWW2z50711q/fr26/95771knnniiFRcXZ73++uvWnj17rCuuuMJq1aqVlZCQYB155JHWO++84zOG4uJia/LkyVaHDh2s2NhYKz093Xr44YfLHYN5zIQJE6zWrVurx/Tq1Uu9F0N549mwYYN1/vnnW40aNbIaNGhgdevWzfr8888tN4J5u6rzt6NCBSLl+eef99k2ceJEq3PnzrX+RqvNtm2W9Z//WNaqVbX/3IQQEuxAaGDZtcu7DRMwtt1wg++xDRp4j4+N1bfnnKNvr7rK99imTfX2Zcu8215+uUZD/PDDD62PPvrIWr16tbV48WLrggsusHr06KGEwC+//KLmj6+++sravn27tXfvXisrK8u67LLLrLPPPlttw5Kfn18qDNq1a6eeb926dda2bdusLVu2WI8//rh67rVr11rPPvusFRUVZS3ARW4Jo0aNsho3bqwuwCGSvvvuO2v69OlqX6AxgKeeespKTk5WF/ErVqxQzxETE2OtKpmPyhsPhNgZZ5yhLvwxnk8//dSaP3++5UaqM387Gkybm5srkZG+3qeoqCjxwO3iBuD6WbtWpFkzkUaNnB4NIYQEN7Gx+ncVt2eeKfLll3X6cpdcconP+muvvSbNmjWTP//8U92CJk2aSIsWLUqPQakMxEPatxkQmnDxxRf7bLv77rtL7996660yZ84c+fe//y3HHnusZGVlyTPPPCPPP/+8DB48WB2DMhwnnHCCul/eGJ544gm59957VWiEyZCdO3euTJkyRaZOnSrljWfTpk3qPffo0UOtH3744RIKOBqjcsEFF8g///lP+fzzz1VQ0axZs+Spp56Siy66SFxBdDQieEVWr0bRF6dHQwgh7iE7Wy9Nm3q33XOP3vb8877H7tolMmaMV6Tgdv9+feyrr/oeu2GD3t61q3fbkCE1GuLq1avlyiuvVBN2cnKyyiw1E3pN6Nu3b5laYKj9BWGQmpoqiYmJSqiY5//rr7+U6DnttNOq/BpIEtm2bZv079/fZ3v//v3V81U0HpT1ePjhh9Wx48aNk6VLl0oo4KhQee655+TSSy+VW265Rbp27aqU6c0336xOvGto3lxkyxaRbducHgkhhLiHhg31EhHh3QYRgm1xcb7HPvWUyMMPizz0kL74w+2ECXp7fHzg57Vb22NianwxvG/fPpk+fbosWLBALaCghokSDTEuG48//riymMD6AYsH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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": "da3d5dba", "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": "bdcc515f", "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 }