From 584f44166fa5c7f1319196e456188aa7732e4b67 Mon Sep 17 00:00:00 2001 From: Tom Zuidberg Date: Sat, 13 Jun 2026 21:38:10 +0200 Subject: [PATCH] preliminary fixes/removed typos, etc. --- __pycache__/bn_sim.cpython-314.pyc | Bin 0 -> 4646 bytes bn_sim.py | 25 +++++++++++++++++-- paper.pdf | Bin 180661 -> 188980 bytes paper.tex | 37 +++++++++++++++++------------ 4 files changed, 45 insertions(+), 17 deletions(-) create mode 100644 __pycache__/bn_sim.cpython-314.pyc diff --git a/__pycache__/bn_sim.cpython-314.pyc b/__pycache__/bn_sim.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df020ed28ec054f4dc1f28b4c080e0b0bd2fe7e5 GIT binary patch literal 4646 zcmcIn-A^3X6~A{rmRa_LWx-zK+Ux?3F*Ym#9D@iUbsLCX97HGfl2*j41;%(&_QQ8( z9TP>>DpI43zzLG06e}e1OQl+Aq(1hcmD2tN>zXEJN~%=Ni{CKxC4K5ScXnoXSwyX> zz2YA3-h1ZUdw;)k&YU^p_tg_<{<)qvrW8W{fj{i#Dh+m9DIs}sm8kS0xj+pX#<6fw zxF8rpn5bfis1kG;x+_GYk}j%sFjk4GQA*yFUtXic9t_pis zRd0o5v1-*9A_F3vNRATSrTRm}s8bt2Drx|vTWthcuLePS)FzN#wHc&OJp|IP9tPR) zdO!^gy++79Aa#tq-q1$QmW~d0_jK^yb>uP5by2e}%QEx1IRl0+mPpTMQgc%IrUZ~A zBJ|w=h&+kW&eGy((n0Ri$@}EKWD2+Xp!Y)`fPPj-11F)G7kY0dSnu^rO6xT;sos~9 zhN@*VdeX?Sq^9@2tfjRcRa?j{CSYc%XHqlX%&?#7J+Er1WE!5FO~>_QDwVqb1wEb?;zg_yH|T+?7w3HIp4)}k|+0s_3?YNpT1BF+W&rAe!U|$gp&&}g7(de zRet6;K#41%GVY#|tHWTnt36oAR|>dQR^WOkXmcG?IzMxNam2&7?^kcQ_g0;cQB{%GzP( zICT9v5P9mvmq+q1ZTW&94t$uq zGyJ8mwLrImp*8x^sr9j9u)QEH*F6!5Km3h1@XlDR8#-uOZdkrmjM!L|=VtzcBcT(I z!{xwvB{(NaxtkJ$+R^ z3RWC;VpJ8n;S_eOwO_faimEhNN)f;tfU3&i7p}LypJke^N5&>EkEszO6M?E5i*hZJ zNox_^(6Z5prO|n#Gcv1P%P_61tldf)CcW`5Dbh0vSJDXJOU4xGN+~L9j@4iU_S(n^U(DlfXI_A$z80!v?0B+B`JmD8&YV? zdt`YMLb1MKxpVc^mFSk@Us1LcUqM^Fc00ZP_QyZ}i@)c${a-2Pp2)=0QkzjR5O{!n z!8a(wt4dcTmD-R&KD-3^u!7n$++~vO-~gIxhy}9uqtnTyHFVZksHC&J)5K)yttA4T zGS8X(gHFq834@`BPnJ^YV{{!zk9b|qiYXhp?4riWVTdw&5j6xJt_%^cDhk{Snh`e= zv+%?PSi{VrqkW*o*Ss3Lcm6BiNqCnj-jyq>eao+{__qSb?)VGxzMOoiM0ef9-&xBD zIw@xai&%KaISy|JfnD2BhFRJAu7kRiSf6wJ9w=1kI(}8;$v<7h8+qtyD@tt#?1wpK zzy09b*{P=}zxtj%O(~UtoHGH>{}eYx=FnGt?@sXTOeG#ijd;AP(R3%FmNKBY)h!|< zQ08we^H41O6k|+_}8T6iHpeXo6_-33FWq1b_;p=Nq|qbZAz!$4<=iLB001j zAg($rS#B$IV}cFwq1i+@8F=;}YqK9j{CqcLEZO v{0fW?Q`)= random() else nodeFuncs[1] + temp[i] = func(*nodes) + nodes = temp + + def state_to_str(): return "".join(str(int(i)) for i in nodes) @@ -61,14 +80,16 @@ def get_table(): def update(): - return synchronous_update() - return sequential_update([0, 1, 2, 3]) + # return synchronous_update() + # return sequential_update([0, 1, 2, 3]) + return probabilistic_update() # return block_sequential_update(...) # return asynchronous_deterministic_update(...) def main(): get_table() + # simulate([0,0,0,0]) if __name__ == "__main__": diff --git a/paper.pdf b/paper.pdf index 27c8306060bb74c061c272927a3351d40e37d2e9..4ed8c09ff06d35b82f962ca0f566e32df22a3182 100644 GIT binary patch delta 32139 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 XV00fCAp#E%8w&>Yjfi^lHdI+ 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 Rh?p2J9~LvSyt)F`{{k}J;P(Ik diff --git a/paper.tex b/paper.tex index 5b05bb8..eef4830 100644 --- a/paper.tex +++ b/paper.tex @@ -76,21 +76,24 @@ \section{Introduction} -Boolean networks were first introduced by Stuart Kauffman in the late 1960s as a simplified model of biochemical systems \cite{helikar2011boolean}. In this framework, genes or regulatory components are represented as binary variables, whose states evolve according to logical functions encoding regulatory interactions. Despite their simplicity, boolean networks have proven useful for capturing qualitative dynamical behavior in complex biochemical systems and have since become a standard tool of modeling in this field. +Boolean networks were first introduced by Stuart Kauffman in the late 1960s as a simplified model of biochemical systems \cite{helikar2011boolean}. In this framework, genes or regulatory components are represented as binary variables whose states evolve according to logical functions encoding regulatory interactions. Despite their simplicity, boolean networks have proven useful in capturing qualitative dynamical behavior in complex biochemical systems and have since become a standard tool of modeling in this field. A key abstraction in Boolean network modeling is the representation of dynamics via a state graph, where nodes correspond to network states and directed edges represent transitions induced by update functions. The long term behavior of the network is typically described in terms of attractors in this graph, which are often interpreted as stable cellular or functional states \cite{helikar2011boolean}. -When it comes to modeling a system, the choice of the update scheme for the boolean network takes an important role as it defines how and when individual parts of the network change. Most common schemes are synchronous scheme, where all nodes update synchronously, asynchronous scheme, where only individual nodes are updated, sequential and probabilistic which introduces randomness into the system. +When it comes to modeling a system by a boolean network, the choice of the update scheme takes an important role, as it defines how and when individual parts of the network change. Some of the most commonly used schemes include the synchronous scheme, where all nodes update synchronously; asynchronous scheme, where only individual nodes are updated; sequential and probabilistic which introduces randomness into the system. -The choice of an update scheme will lead to a different behavior, in particular other attractors and cycles, change in reachability and change in robustness with regards to perturbations. -In the following, we will introduce different update scheme and their respective change on a network illustrated on examples and figure out the best use case for each scheme. +The choice of the update scheme will lead to a different behavior, such as other attractors and cycles, a change in reachability and different robustness with regards to perturbations. +In the following, we will introduce different update schemes and their respective effects on boolean networks illustrated on examples and find the best use case for each scheme. \todo[inline]{use more \textbf{references}!} \section{Boolean networks} \label{sec:bn} -A boolean network consists of nodes $x_i(t)$ that have a boolean state, either $0$ or $1$, at a point in time $t$. Each node has a corresponding update function $x_i(t+1) = f_i(x_1(t), x_2(t), \ldots, x_n(t))$ expressing the new state of $x_i(t+1)$. The state of the boolean network can be describe as a boolean number $x_1 x_2\ldots x_n$ where each node is replaced with the corresponding state. +A boolean network consists of nodes $x_i(t)$ that have a boolean state, either $0$ or $1$, at a point in time $t$. Each node has a corresponding update function +$$ +x_i(t+1) = f_i(x_1(t), x_2(t), \ldots, x_n(t)) +$$ expressing the new state of $x_i(t+1)$. The state of the boolean network can be describe as a boolean number \mbox{$x(t) = x_1 x_2\ldots x_n$} where each node is replaced with the corresponding state 0 or 1. \begin{figure} @@ -147,9 +150,13 @@ A boolean network consists of nodes $x_i(t)$ that have a boolean state, either $ \label{fig:bn_example} \end{figure} -Consider the boolean network shown in \cref{fig:bn_example}. Assume the current state is $0011$, meaning that $x_1, x_2$ are $0$ and $x_3, x_4$ are $1$. The next state when applying the update function all at once is $1011$. Updating the network multiple times creates a trajectory, which is the sequence of the states starting from the initial state. With our example, the trajectory is $0011 \rightarrow 1011 \rightarrow 1101 \rightarrow 0100 \rightarrow \ldots$. Each trajectory in a reasonably small boolean network eventually reaches one of two scenarios. Either it falls into a state, called attractor, that doesn't change when updated, or it falls into a cycle of states. In the example, there are 2 cycles of length 8 visible in \cref{fig:bn_syn_state_graph}. +Consider the boolean network shown in \cref{fig:bn_example}. For example, if the state is $x(t)=0011$ at time $t$, meaning that $x_1, x_2$ are $0$ and $x_3, x_4$ are $1$. After applying the synchronous update, the next state $x(t+1)$ is $1011$. Updating the network multiple times creates a trajectory, which is the sequence of the states starting from the initial state. With our example, the trajectory is $0011 \rightarrow 1011 \rightarrow 1101 \rightarrow 0100 \rightarrow \ldots$. Each trajectory in a reasonably small boolean network eventually reaches one of two scenarios. Either it falls into a state, called attractor, that doesn't change when updated, or it falls into a cycle of states. -In boolean networks, robustness refers to stability of the behavior with regards to perturbations, e.g. a single node state change. A boolean network with poor robustness means that a simple flip of a node can change the resulting attractor, respectively cycle for that trajectory. In regards to our example, if either $x_3$ or $x_4$ (not both at once) is flipped, the cycle switches. A strong robustness however would mean that even with such perturbations, the resulting attractor or cycle doesn't change. +A state graph shows all possible states of the network with the corresponding trajectory. For example, the state graph in \cref{fig:bn_syn_state_graph} shows the trajectories from the boolean network in \cref{fig:bn_example}. These state graphs help visualizing the attractors and cycles, e.g. 2 cycles of length 8. + +%TODO: Subsection?? + +In boolean networks, robustness refers to stability of the behavior with regards to perturbations, e.g. a single node state change. A boolean network with poor robustness means that a simple flip of a node can change the resulting attractor, respectively cycle for that trajectory. In regards to our example from \cref{fig:bn_syn_state_graph}, if either $x_3$ or $x_4$ (not both at once) is flipped, the cycle switches. A strong robustness however would mean that even with such perturbations, the resulting attractor or cycle doesn't change. \todo[inline]{currently feels to short. once introduction is implemented, create a better transition/section 2 introduction. Also introduce robustness!} \todo[inline]{combine figure 1, 2, 3 into a single figure* (page-width figure), or split the table from figure 2 into to parts of 8 states} @@ -266,15 +273,15 @@ In boolean networks, robustness refers to stability of the behavior with regards Explain different update schemes including characteristics for behavior especially chaotic behavior. These will mostly focus on boolean networks only. Maybe mention of use-cases for each update scheme. \todo[inline]{update this text.. (or remove it)} \subsection{Synchronous scheme} -In \cref{sec:bn}, we have used the synchronous update scheme to introduce the workings of boolean networks. This scheme assumes that each update function takes the exact same amount of time and executes at the same time, meaning regardless of the outcome of the first function, any other function will have the same result. Updating the network with this method is quite simple, deterministic and doesn't require a lot of computing power in order to simulate larger networks, as each state of the network results in exactly on updated state. In regards to gene regulatory networks however, this is an oversimplification as normal GRNs never execute fully synchronously. Furthermore, the change of one node has no effect on any other function, whereas larger biochemical system often show dependencies between functions. +In \cref{sec:bn}, we have used the synchronous update scheme to introduce the general dynamics of boolean networks. This scheme assumes that each update function takes the exact same amount of time and executes at the same time, which means that regardless of the outcome of the first function, any subsequenct function will have the same result. Updating the network with this method is quite simple, always leads to a deterministic output and doesn't require a lot of computing power in order to simulate larger networks, as each state of the network results in exactly on updated state. In regards to gene regulatory networks however, this is an oversimplification as normal GRNs never execute fully synchronously. Furthermore, the change of one node has no effect on any other function, whereas larger biochemical system often show dependencies between functions. \todo[inline]{add more context and information about grn and their effects, split text into logical paragraphs} \subsection{Sequential scheme} -Unlike the synchronous scheme, the sequential scheme allows for side effects when updating the network, by having an order in which nodes are updated. -When using the sequential update scheme, the update cycle evaluates each after another in a fixed order. For example take the sequence $x_1, x_2, x_3, x_4$. Updating the state $0000$ means first using $f_1$ which results in an intermediate state $1000$, then using $f_2$, then $f_3$ and lastly $f_4$. This will lead to $0000 \rightarrow 1111$, a different state as when using the synchronous update scheme. In fact the whole state graph changes depending on the update scheme used, namely every initial state will fall into a single 4-state cycle being $0000 \rightarrow 1111 \rightarrow 0011 \rightarrow 1100 \rightarrow 0000$, see \cref{fig:bn_seq_state_graph}. +Unlike the synchronous scheme, the sequential scheme allows for side effects when updating the network by having an order in which nodes are updated at each step. +When using the sequential update scheme, the update cycle evaluates each after another in a fixed order. For example take the sequence $(x_1, x_2, x_3, x_4)$. Updating the state $0000$ means first using $f_1$ which results in an intermediate state $1000$, then using $f_2$, then $f_3$, and lastly $f_4$. This will lead to $0000 \rightarrow 1111$, a different state as when using the synchronous update scheme. In fact, the whole state graph changes depending on the update scheme used, namely every initial state will fall into a single 4-state cycle being $0000 \rightarrow 1111 \rightarrow 0011 \rightarrow 1100 \rightarrow 0000$, see \cref{fig:bn_seq_state_graph}. \begin{figure} \centering @@ -369,14 +376,14 @@ When using the sequential update scheme, the update cycle evaluates each after a \end{tikzpicture} - \caption{State graph of the boolean network shown in \cref{fig:bn_example} using the sequential update with the sequence $x_1, x_2, x_3, x_4$} + \caption{State graph of the boolean network shown in \cref{fig:bn_example} using the sequential update with the sequence $(x_1, x_2, x_3, x_4)$} \label{fig:bn_seq_state_graph} \end{figure} -While the sequential update scheme seems to be different from synchronous, it is actually possible to derive a set of functions for synchronous update scheme that have the same outcome as the current set for sequential scheme. This can be achieved by reevaluating each function in order of the sequence and replacing $x_i$ with $f'_i$ if $f'_i$ has been computed previously where $f'_i$ represents the new function for synchronous use. In case of the boolean network from \cref{fig:bn_example} with sequence $x_1, x_2, x_3, x_4$, the resulting functions are - +While the sequential update scheme seems to be different from synchronous, it is actually possible to derive a set of functions for a synchronous update scheme that have the same outcome as the current set for a particular sequential scheme. This can be achieved by reevaluating each function in the order of the sequence and replacing $x_i$ with $f'_i$ if $f'_i$ has been computed previously where $f'_i$ represents the new function for synchronous use. In case of the boolean network from \cref{fig:bn_example} with sequence $(x_1, x_2, x_3, x_4)$, the resulting functions are +%TODO: Above: rewording of explanation for creating the sync function set from seqential $$ f'_1 = \neg x_2, @@ -391,9 +398,9 @@ $$ f'_4 = f'_3 = \neg x_2 \oplus x_4. $$ -This means that sequential schemes share the same characteristics as the synchronous scheme, and can have more simple functions at a larger scale, as synchronous would have to incorporate extra operations in order to simulate the side effects of one function happening before another. +This means that sequential schemes share the same characteristics as the synchronous scheme. Furthermore, if the side-effects from the sequential scheme are desired, the synchronous function set would become larger and more complex. -An extension of the sequential scheme is the block-sequential scheme. This allows to devide the nodes into groups, called blocks, that run synchronously, while the blocks execute in sequence. This allows for further fine tuning of the behavior and can simplify the modeling of realistic systems. The block-sequential scheme too can be converted to a synchronous scheme, thus producing the same behavior as the synchronous scheme. +An extension of the sequential scheme is the block-sequential scheme. This allows to divide the nodes into groups, called blocks, that run synchronously, while the blocks execute in sequence. This allows for further fine-tuning of the behavior and can simplify the modeling of realistic systems. The block-sequential scheme can also be converted to a synchronous scheme, thus producing the same behavior as previously described.