Computing preimages of Boolean networks

In this paper we present an algorithm based on the sum-product algorithm that finds elements in the preimage of a feed-forward Boolean networks given an output of the network. Our probabilistic method runs in linear time with respect to the number of nodes in the network. We evaluate our algorithm for randomly constructed Boolean networks and a regulatory network of Escherichia coli and found that it gives a valid solution in most cases.


INTRODUCTION
In systems and computational biology Boolean networks (BN) are widely used to model regulative dependencies of organisms [1,2].We consider networks, which map a set of environmental conditions to the presence of proteins and finally to actual chemical reactions, which are often modeled as fluxes of a flux-balance analysis [3].Hence, these networks are used to make in silico predictions of behavior of organisms in a certain environment [4].
In this paper we address the inverse problem, i.e., we want to predict environmental conditions that allow certain reactions to take place, and others not.Hence, in general, we need to find a set of possible inputs that lead to a given output.This so called predecessor problem or preimage problem has been addressed by Wuensche in [5] and has been shown to NP-hard in general [6], which makes it infeasible to solve it for large networks.In [7] an algorithm with reduced complexity for BNs with canalizing Boolean functions has been introduced.However, the problem is infeasible under certain conditions.Both algorithms are designed to find the whole set of preimages, i.e., all inputs to the BN with lead to a certain, desired, output.
In some applications, knowledge of the whole preimage set is not important, merely it can be sufficient to know a subset of the preimage set.Here, we propose an probabilistic algorithm, which solves this problem in linear time with respect to the number of nodes in the network, based on a variation of the well known Sum-Product-Algorithm [8], which is used for a variety of tasks, including decoding error correction codes in communication engineering [9].

BOOLEAN NETWORKS AND MAIN IDEA
We consider networks like shown in Figure 1, mapping the values of the N in-nodes I = {1, 2, 3} to the M out- The network itself consists of n nodes, and a set of directed edges connecting these nodes.Each node i has a certain state, which can be either zero or one, represented by a variable x i .Its value is determined by evaluating a Boolean function (BF) f i .Further, lets define the set ñ(f j ) as the incoming nodes of node j.For example in Figure 1, ñ(f 5 ) = {1, 3}.The BF f j is a function mapping k j = |ñ(f j )| values of {0, 1} k to {0, 1}, where k is also called the in-degree of node j.The number of edges emerging from a node is called out-degree.
Given a vector of input values x ∈ {0, 1} N , x = (x 1 , x 2 , . . ., x N ) the corresponding output of f is y = f (x), y ∈ {0, 1} M .In general there does not exist a unique inverse function f −1 .Instead the cardinality of the set Ω y := {x : f (x) = y} will be larger one.We call Ω y the set of preimages of y.
In this paper we are interested to find at least parts of Ω y .Suppose there is a probability distribution P y on {0, 1} N such that If we knew the probability distribution P y , we would have solved the problem.But as explained, this is too difficult in general.Our main idea now is to approximate P y by the product of the marginal distributions P i on the individual x i , i.e., as the well-known Sum-Product algorithm can be used to compute the marginals efficiently.If the approximation is good enough sampling out the product of the marginals will yield an element in Ω y with reasonable probability.

PROPOSED ALGORITHM
In this section we will first discuss the basic principles of factor graphs and the Sum-Product Algorithm (Section 3.1).Then we will describe the BN as factor graph in Section 3.2 and will formulate the actual algorithm to find the marginals in Section 3.3.Finally, the sampling is described.

Factor Graphs and Sum-Product Algorithm
Assume some function g(x 1 , . . ., x n ) defined on some domain A n , which can be factorized in m local functions h j , j ∈ [m] := {1, 2, . . ., m}, i.e., where X j is the subset of [n] containing the argument of h j .We can then define a factor graph [8] as a bipartite graph consisting of n nodes representing variables {x 1 , . . ., x n } (variable nodes) and of m nodes representing functions {f 1 , . . .f m } (function node).Edges only exist between a function node and a variable node if and only if x i is an input to function f j .The marginal function g i (x i ) is defined as [8] g where ∼{xi} g(x 1 , . . ., x n ) is defined as In general the computation of the g i is difficult, but due to the factorization of g the task can be efficiently solved using the the so called Sum-Product algorithm [8].The algorithm iteratively passes messages between the nodes of the graph.At each iteration the messages µ are sent from the function nodes to the variable nodes, containing the corresponding marginal function of the local function.These messages are computed as follows [8]: function to variable node: where n(i) give the set of neighboring nodes of node i.
At the variable nodes, these messages are then combined to a marginal function λ and sent back to the function nodes [8]: variable to function node:

The Boolean Network as Factor Graph.
We apply the concept of factor graphs to BNs.Each node in the network represents one variable of the factor graph, hence we have n variable nodes.Each BF f j of the BN (j ∈ [n] \ I) is a function node and is connected to the node j and the incoming nodes ñ(f j ).
Lets to define X j as the variables of the incoming nodes of node j, i.e. the argument of the BN f j .Further, we define X (i) j as X j without the node i.Finally, if we consider the variables as each node as random variables, we have a common distribution of all variables nodes described by the density function, For sake of readability we will omit the subscript of the density function, if they are obvious from context.We are interested in finding the marginal distributions of the in-nodes, which can be described by the density functions This problem is an instance of the problem described in in Section 3.1, hence, we apply the same methods here.

Update Rule: function to variable node
If we focus on one function node j ∈ [n] \ I there exists a common distribution of all variables relevant for this node.Namely, these relevant variables are the ones located in X j of the BF f j , and the value of node j.We can write the density of this distribution as: p(x j , X j ).
Lets define ñ(f j ) as the set of indices of the input nodes of the BF f j .
We need to send the local marginal distribution of each variable i ∈ {j}∪ñ(f j ) back to the variable node, or more formal: (1) If i = j , i.e. if the message is designated for the node containing the output of the BF, the density of the marginal distribution becomes: which is the probability distribution of the functions output.We can assume that the elements of Xj are pairwise independent, hence, we can write: where λ l is the probability distribution of node j and is defined in Section 3.2.2.
In the other cases, i.e., i = j, Eq. ( 1) becomes: We still can assume that the elements of X (i) j are pairwise independent, hence, we can write: If the Boolean functions output x j = f j ( X j ) is already completely determined by X (i) j , i.e., if the variable x i has no influence on the output for this particular choice of the other variables, we assume x i to be uniformly distributed: and since x j is completely determined by Otherwise, x i is totally determined by x j and the other variables, i.e., x i is 0 or 1 depending on BF.Hence, we can write where p xj (f ( X Finally, we can summarize for i = j: with

Update Rule: variable to function node
The update rule is the same for all variable nodes j ∈ [n] and is independent of the function node to which they are directed.
where S j is the set of all function nodes, which have node j as input.

Finding the Input Distributions
In our algorithm, we use the well known log-likelihood ratio (LLR) to represent the probability distribution of binary variables [10].It is defined as: A scheme of the algorithm is given in Algorithm 1.
The probability distribution of each node j ∈ [n] at iteration t is given as L (t) j and are initialized with L (0) j = 0, which is equivalent to the uniform distribution.Then we set the LLRs for the out-nodes to either −∞ or +∞ depending on the desired output y of the BN.At each iteration the algorithm can be split in two steps.The first step iterates over all function nodes j ∈ [n] \ I and all input variables i ∈ ñ(f j ) calculating the LLR L (t) j→i using Eq.
In the second step we update all variables-nodes, where the LLRs L j represents the distributions λ j and, hence, the product of Eq. 3 becomes a summation.Please note, that the LLR of the previous iteration is also added to the sum, in order to prevent rapid changes of the distributions.
After performing a certain number of iterations t max , the desired marginal distributions of the input variables are found.

Algorithm 1
Initialize L (0) j = 0 for all nodes Set the desired LLRs of the out-nodes, i.e., L (0) j is either −∞ or +∞, for all out-nodes j ∈ Ø. t=0 repeat t=t+1 for each non-in-node j ∈ [n] \ I do for each input variable i ∈ ñ(f j ) do calculate L j→i using Eq. ( 2) and Eq. ( 4) end for end for for each non-out-node v do end for until maximum number of iterations reached

Sampling
The sampling part of our approach is straight forward.Using the marginal distributions L (tmax) j , j ∈ I we randomly draw vectors x and check if they fulfill y = f (x).If so, they are added to the set Ω y .This procedure is repeated for a certain number of samples.

SIMULATION RESULTS AND DISCUSSION
We tested our algorithm with randomly generated networks and the regulatory network of Escherichia coli (E-coli) [2].The random networks consist of 2400 nodes with N = 200 and M = 1200.We have chosen the BFs from: After generating a network we draw a certain number T of uniformly distributed input vectors x and obtain y = f (x).For each y we applied then Algorithm 1 to obtain the marginal distributions L (tmax) j , j ∈ I. To investigate the convergence behavior with respect to t max and we first apply hard-decision to evaluate a good choice for t max , i.e., we generate an estimate x by setting Then we evaluate the network ỹ = f (x), measure the similarity between y and ỹ by counting the equal entries and divide them by the length of y.We did so for 100 networks of Type A and B, and set T = 100.The averaged results can be seen in Figure 2. One can see, that for t max ≥ 14 there is almost no improvement in the similarity.This number is equal to two times the number of nodes between input and output, i.e., it seems to be sufficient that the messages travel once through the network and back.Thus, the following simulations have been perform setting t max = 14.
Next, we apply sampling as described in Section 3.4.We did so for 100 different networks of Type A and B, and the E-coli network.For each random network we did T = 100 runs, for E-coli T = 1000.The results can be viewed in Table 1.We depict the percentage of solved networks, i.e. the portion of networks we found at least one valid x ∈ Ω y .Further, we give the average number of valid x and the average number of unique x.
One can see from the results, that in general for most networks and ys at least one preimage can be found.It is worth mentioning, that for the E-coli network every sampled solution was unique.This is due to the fact, that there exist a few inputs, who completely determine the

Figure 1 .
Figure 1.Example of a Feed-Forward Network

Figure 2 .
Figure 2. Similarity of y and ỹ verses t max

Table 1 .
Simulation results for different networks output.The other input variables have then no influence and hence a marginal distribution of 0.5.Further, the results for the network of type B are much better than for type A. It seems that the marginal distributions for unate functions give better estimation of the actual distribution than the marginal distributions for non-unate functions.