309 lines
18 KiB
TeX
309 lines
18 KiB
TeX
\documentclass[journal,compsoc,10pt]{IEEEtran}
|
||
|
||
% Load some possibly useful packages. You can remove the ones you don't need or
|
||
% add other packages that you need in your paper.
|
||
\usepackage{graphicx} % required to include graphics
|
||
\usepackage{amsfonts,amssymb,amsmath} % mathsymbols etc
|
||
\usepackage{mathtools} % includes some fixes to amsmath, and adds convenience macros
|
||
\usepackage{bm} % make any letter boldface in math
|
||
\usepackage{algpseudocode} % aka `algorithmicx`: same look `algorithmic`, but more flexible
|
||
\usepackage{array} % for better looking arrays
|
||
\usepackage{booktabs} % for better looking tables
|
||
\usepackage[usenames]{xcolor} % colors for highlighting etc.
|
||
\usepackage{url} % for urls
|
||
\usepackage[%pdftitle=, % define the PDF metadata
|
||
%pdfauthor=,
|
||
colorlinks=true, linkcolor=purple, urlcolor=blue, citecolor=cyan,
|
||
anchorcolor=black % make links/references 'clickable' without ugly frames
|
||
]{hyperref}
|
||
\usepackage{cleveref} % smart references to figures, equations etc.
|
||
|
||
% some packages which may be useful when drafting, but should be removed before submission
|
||
\usepackage{todonotes}
|
||
|
||
|
||
\usepackage{tikz}
|
||
|
||
% You can define your own commands. This is useful for shorthands, for example
|
||
\newcommand{\EE}{\mathbb{E}}
|
||
\newcommand{\RR}{\mathbb{R}}
|
||
\newcommand{\eE}{\mathcal{E}}
|
||
\newcommand{\gG}{\mathcal{G}}
|
||
\newcommand{\nN}{\mathcal{N}}
|
||
\newcommand{\lnorm}[1]{\ell_{#1}\text{-norm}}
|
||
|
||
% Commands are also useful to ensure standardized notation, such as how to display vectors and matrices.
|
||
% The point is to replace formatting commands with semantic ones.
|
||
% This both makes the source more semantic, and also makes it easier to change formatting choices later
|
||
% IMPORTANT: In TeX, all commands share a global namespace. You need to be careful therefore not to overwrite an existing command.
|
||
% Use \newcommand to ensure you don't accidentally overwrite an important macro
|
||
% Use \renewcommand if you *do* want to overwrite a macro, have checked what the original does,
|
||
% and have made sure the redefinition is safe.
|
||
\newcommand{\T}{\mathsf{T}} % transpose
|
||
\renewcommand{\vec}[1]{\bm{#1}} % redefine \vec to produce boldface instead of adding an arrow
|
||
\newcommand{\mat}[1]{\bm{#1}} % define \vec to produce boldface
|
||
\newcommand{\ones}{\bm{1}} % all-ones vector
|
||
\newcommand{\eye}{\bm{I}} % identity matrix
|
||
\newcommand{\ei}{\bm{e}_i} % standard basis vector e_i
|
||
\newcommand{\ej}{\bm{e}_j} % standard basis vector e_j
|
||
% TIP: Resist the temptation to be too clever with macros
|
||
% - \ei and \ej are easier to type than e.g. \ee[i] (note that \e is a low-level command and should not be redefined)
|
||
% - While you can define macros in terms of other macros (eg we could define \ei in terms of \vec),
|
||
% many journals won’t accept this. Recursive macros also produce more frequent and more complicated compilation errors
|
||
|
||
% Commands like \sin and \exp ensure proper fonts and spacing for math operators.
|
||
% Use the dedicated \DeclareMathOperator to define new operators
|
||
\DeclareMathOperator{\diag}{diag}
|
||
|
||
\begin{document}
|
||
|
||
\title{Influence of update schemes on boolean networks}
|
||
|
||
% author information
|
||
% COMMENT OUT THESE LINES FOR YOUR CONFERENCE SUBMISSION!
|
||
\author{Tom Zuidberg \\ 455969}
|
||
|
||
\maketitle
|
||
\thispagestyle{plain}
|
||
\pagestyle{plain}
|
||
|
||
\begin{abstract}
|
||
In this paper we will introduce boolean networks (BN) and their relevance to gene regulatory networks (GRN). We will have a closer look on update schemes. Specifically, synchronous, sequential and asynchronous update schemes and their effect on the behavior of BN and GRN respectively.
|
||
\end{abstract}
|
||
|
||
|
||
\section{Introduction}
|
||
Possible points to mention here:
|
||
\begin{itemize}
|
||
\item Explain shortly gene regulatory networks (GRN)
|
||
\item Explain why boolean networks are used to model GRN
|
||
\item Maybe mention history of boolean networks
|
||
\item Set the focus to the update scheme as it seems to be rarely covered in the field of GRNs
|
||
\item Possible open question about which update scheme might be best to model GRNs. Answer to this must follow in the conclusion
|
||
\end{itemize}
|
||
|
||
|
||
\section{Boolean networks}
|
||
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.
|
||
|
||
|
||
\begin{figure}
|
||
\centering
|
||
|
||
\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt
|
||
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
|
||
%uncomment if require: \path (0,321); %set diagram left start at 0, and has height of 321
|
||
|
||
%Shape: Circle [id:dp6120737986176485]
|
||
\draw (89.67,50) .. controls (89.67,38.95) and (98.62,30) .. (109.67,30) .. controls (120.71,30) and (129.67,38.95) .. (129.67,50) .. controls (129.67,61.05) and (120.71,70) .. (109.67,70) .. controls (98.62,70) and (89.67,61.05) .. (89.67,50) -- cycle ;
|
||
%Shape: Circle [id:dp4460102181537059]
|
||
\draw (179.67,50) .. controls (179.67,38.95) and (188.62,30) .. (199.67,30) .. controls (210.71,30) and (219.67,38.95) .. (219.67,50) .. controls (219.67,61.05) and (210.71,70) .. (199.67,70) .. controls (188.62,70) and (179.67,61.05) .. (179.67,50) -- cycle ;
|
||
%Shape: Circle [id:dp5043508885922044]
|
||
\draw (89.67,130) .. controls (89.67,118.95) and (98.62,110) .. (109.67,110) .. controls (120.71,110) and (129.67,118.95) .. (129.67,130) .. controls (129.67,141.05) and (120.71,150) .. (109.67,150) .. controls (98.62,150) and (89.67,141.05) .. (89.67,130) -- cycle ;
|
||
%Shape: Circle [id:dp19837549619745176]
|
||
\draw (179.67,130) .. controls (179.67,118.95) and (188.62,110) .. (199.67,110) .. controls (210.71,110) and (219.67,118.95) .. (219.67,130) .. controls (219.67,141.05) and (210.71,150) .. (199.67,150) .. controls (188.62,150) and (179.67,141.05) .. (179.67,130) -- cycle ;
|
||
%Straight Lines [id:da34212297668952507]
|
||
\draw (129.67,46) -- (177.67,46) ;
|
||
\draw [shift={(179.67,46)}, rotate = 180] [fill={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.08] [draw opacity=0] (12,-3) -- (0,0) -- (12,3) -- cycle ;
|
||
%Straight Lines [id:da9191192486085845]
|
||
\draw (179.67,54) -- (131.67,54) ;
|
||
\draw [shift={(129.67,54)}, rotate = 360] [fill={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.08] [draw opacity=0] (12,-3) -- (0,0) -- (12,3) -- cycle ;
|
||
%Straight Lines [id:da9988186797184601]
|
||
\draw (109.67,70) -- (109.67,108) ;
|
||
\draw [shift={(109.67,110)}, rotate = 270] [fill={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.08] [draw opacity=0] (12,-3) -- (0,0) -- (12,3) -- cycle ;
|
||
%Straight Lines [id:da0026996459711727816]
|
||
\draw (129.67,126) -- (177.67,126) ;
|
||
\draw [shift={(179.67,126)}, rotate = 180] [fill={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.08] [draw opacity=0] (12,-3) -- (0,0) -- (12,3) -- cycle ;
|
||
%Straight Lines [id:da6389438894367955]
|
||
\draw (179.67,134) -- (131.67,134) ;
|
||
\draw [shift={(129.67,134)}, rotate = 360] [fill={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.08] [draw opacity=0] (12,-3) -- (0,0) -- (12,3) -- cycle ;
|
||
|
||
% Text Node
|
||
\draw (105.17,42.5) node [anchor=north west][inner sep=0.75pt] [align=left] {1};
|
||
% Text Node
|
||
\draw (194.67,42.5) node [anchor=north west][inner sep=0.75pt] [align=left] {2};
|
||
% Text Node
|
||
\draw (104.67,122.5) node [anchor=north west][inner sep=0.75pt] [align=left] {3};
|
||
% Text Node
|
||
\draw (194.67,122) node [anchor=north west][inner sep=0.75pt] [align=left] {4};
|
||
% Text Node
|
||
\draw (111.33,207.8) node [anchor=north west][inner sep=0.75pt] {$ \begin{array}{l}
|
||
f_{1} =\neg x_{2}\\
|
||
f_{2} =x_{1}\\
|
||
f_{3} =x_{1} \oplus x_{4}\\
|
||
f_{4} =x_{3}
|
||
\end{array}$};
|
||
|
||
\end{tikzpicture}
|
||
|
||
\caption{Example of a boolean network with four nodes. Each vertex indicates that a node is part of the update function of the other node. For instance $x_1$ is part of $f_2$ and $f_3$.
|
||
}
|
||
\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 that doesn't change when updated, called attractor, or it falls into a cycle of states. In the example, there are 2 cycles of length 8 visible in \cref{fig:bn_ex_state_graph}.
|
||
|
||
\begin{figure}
|
||
|
||
|
||
\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt
|
||
|
||
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
|
||
%uncomment if require: \path (0,182); %set diagram left start at 0, and has height of 182
|
||
|
||
%Straight Lines [id:da7515060673133168]
|
||
\draw (63,30) -- (91,30) ;
|
||
\draw [shift={(93,30)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da5101009163931332]
|
||
\draw (133,30) -- (161,30) ;
|
||
\draw [shift={(163,30)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da17974568496180332]
|
||
\draw (203,30) -- (231,30) ;
|
||
\draw [shift={(233,30)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da28479803325341]
|
||
\draw (93,70) -- (65,70) ;
|
||
\draw [shift={(63,70)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da9289522355407928]
|
||
\draw (163,70) -- (135,70) ;
|
||
\draw [shift={(133,70)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da5098188343671546]
|
||
\draw (233,70) -- (205,70) ;
|
||
\draw [shift={(203,70)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da48531701923414494]
|
||
\draw (43,60) -- (43,42) ;
|
||
\draw [shift={(43,40)}, rotate = 90] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da8391791574907262]
|
||
\draw (253,40) -- (253,58) ;
|
||
\draw [shift={(253,60)}, rotate = 270] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da24177074905043572]
|
||
\draw (63,110) -- (91,110) ;
|
||
\draw [shift={(93,110)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da21625025411268273]
|
||
\draw (133,110) -- (161,110) ;
|
||
\draw [shift={(163,110)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da9822082649794383]
|
||
\draw (203,110) -- (231,110) ;
|
||
\draw [shift={(233,110)}, rotate = 180] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da1915219980691898]
|
||
\draw (93,150) -- (65,150) ;
|
||
\draw [shift={(63,150)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da22061673245947822]
|
||
\draw (163,150) -- (135,150) ;
|
||
\draw [shift={(133,150)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da6267831846161589]
|
||
\draw (233,150) -- (205,150) ;
|
||
\draw [shift={(203,150)}, rotate = 360] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da6290428382558753]
|
||
\draw (43,140) -- (43,122) ;
|
||
\draw [shift={(43,120)}, rotate = 90] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
%Straight Lines [id:da9391797989074463]
|
||
\draw (253,120) -- (253,138) ;
|
||
\draw [shift={(253,140)}, rotate = 270] [color={rgb, 255:red, 0; green, 0; blue, 0 } ][line width=0.75] (10.93,-3.29) .. controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. (10.93,3.29) ;
|
||
|
||
% Text Node
|
||
\draw (24,22) node [anchor=north west][inner sep=0.75pt] [align=left] {0000};
|
||
% Text Node
|
||
\draw (94,22) node [anchor=north west][inner sep=0.75pt] [align=left] {1000};
|
||
% Text Node
|
||
\draw (164,22) node [anchor=north west][inner sep=0.75pt] [align=left] {1110};
|
||
% Text Node
|
||
\draw (234,22) node [anchor=north west][inner sep=0.75pt] [align=left] {0111};
|
||
% Text Node
|
||
\draw (94,62) node [anchor=north west][inner sep=0.75pt] [align=left] {1101};
|
||
% Text Node
|
||
\draw (24,62) node [anchor=north west][inner sep=0.75pt] [align=left] {0100};
|
||
% Text Node
|
||
\draw (164,62) node [anchor=north west][inner sep=0.75pt] [align=left] {1011};
|
||
% Text Node
|
||
\draw (234,62) node [anchor=north west][inner sep=0.75pt] [align=left] {0011};
|
||
% Text Node
|
||
\draw (24,102) node [anchor=north west][inner sep=0.75pt] [align=left] {0001};
|
||
% Text Node
|
||
\draw (94,102) node [anchor=north west][inner sep=0.75pt] [align=left] {1010};
|
||
% Text Node
|
||
\draw (164,102) node [anchor=north west][inner sep=0.75pt] [align=left] {1111};
|
||
% Text Node
|
||
\draw (234,102) node [anchor=north west][inner sep=0.75pt] [align=left] {0101};
|
||
% Text Node
|
||
\draw (94,142) node [anchor=north west][inner sep=0.75pt] [align=left] {1100};
|
||
% Text Node
|
||
\draw (24,142) node [anchor=north west][inner sep=0.75pt] [align=left] {0110};
|
||
% Text Node
|
||
\draw (164,142) node [anchor=north west][inner sep=0.75pt] [align=left] {1001};
|
||
% Text Node
|
||
\draw (234,142) node [anchor=north west][inner sep=0.75pt] [align=left] {0010};
|
||
|
||
|
||
\end{tikzpicture}
|
||
\centering
|
||
\caption{State graph of the boolean network shown in \cref{fig:bn_example} using synchronous update scheme.}
|
||
\label{fig:bn_ex_state_graph}
|
||
\end{figure}
|
||
|
||
|
||
\subsection{Notation}
|
||
Define clear notation used throughout the paper. Position of this subsection could change to be part of the Introduction instead.
|
||
|
||
|
||
|
||
\section{Update Schemes}
|
||
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.
|
||
|
||
\subsection{Synchronous scheme}
|
||
The Synchronous (also known as Parallel) update scheme assumes that every node is updated at once.
|
||
|
||
\subsection{Sequential scheme}
|
||
close to synchronous. the nodes update in a specific order and take into account the updated input node if that node had been updated before/is positioned earlier in the sequence
|
||
|
||
\subsection{Block-sequential scheme}
|
||
mix of synchronous and sequential. predefined blocks update sequential, inside a block the update follows the synchronous scheme
|
||
|
||
\subsection{Asynchronous deterministic}
|
||
one node is updated per tick following a specific sequence
|
||
|
||
\subsection{Asynchronous generalized}
|
||
same as asynchronous deterministic with the slight change that within the sequence nodes may appear multiple times.
|
||
|
||
|
||
|
||
\section{Relevance for Gene Regulatory Networks}
|
||
\label{sec:relevance_grn}
|
||
Tie the update schemes and their different outcomes or behavior to GRN.
|
||
|
||
Emphasizing the drawbacks of asynchronous models when applied to GRN e.g. it takes way to long to update a GRN using asynchronous deterministic for it to have an effect; assuming that one update takes a few minutes, when the whole process can take days to complete.\cite{schwab2020concepts}
|
||
|
||
\section{Conclusion}
|
||
Not yet included: robustness! might be covered for each update scheme individually.
|
||
|
||
References: \cite{schwab2020concepts}\cite{aracena2009robustness}\cite{bornholdt2008boolean}\cite{goles2010block}\cite{helikar2011boolean}
|
||
|
||
|
||
|
||
|
||
\begin{figure*} % The starred version uses both columns; unstarred only one column
|
||
\centering
|
||
|
||
\caption{
|
||
graph of all possible states for a boolean network using a synchronous update scheme
|
||
}
|
||
|
||
\end{figure*}
|
||
|
||
\begin{figure*} % The starred version uses both columns; unstarred only one column
|
||
\centering
|
||
% \includegraphics[width=5in]{edge_vs_hyperedge.png}
|
||
% TIP: Ensure the original image file has approximately the right dimensions
|
||
% (if using matplotlib, specify correct figure size) so that the image is not rescaled too brutally.
|
||
\caption{
|
||
example graph of boolean network showcasing grouping of specific nodes.
|
||
}
|
||
|
||
\end{figure*}
|
||
|
||
|
||
% The list of references is provided as `references.bib`
|
||
\bibliographystyle{unsrt}
|
||
\bibliography{IEEEabrv,references}
|
||
|
||
\end{document}
|