\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}
