Formal definition of loop-law constraints
In loopless-COBRA, the constraints added to the linear problem are:
where v
i
are the flux variables and N
int
is the null-space matrix of S
int
(the stoichiometric matrix of internal reactions). The third constraint () is not actually a constraint, but a way to say that G
i
can have any value if v
i
= 0. We can rewrite all these constraints succinctly as:
(1)
Formal definition of loops
In order to prove that this constraint eliminates loops (and only loops), we must first find a mathematical formulation for a loop, using the same notation as above. We thus define a loop as a nonzero vector which satisfies the mass-balance equation for the internal reactions, i.e. S
int
· x = 0. This means that although there is a nonzero net flux in some of the reactions, overall, the internal network is at steady-state (an obvious violation of the second law of thermodynamics). It is important to point out, that this equation for defining loops must not be confused with the steady-state assumption commonly used in flux balance analysis models, namely S·v = 0, where the full stoichiometric matrix (S) is used.
According to this definition, a flux distribution () will contain a loop if and only if there exists a vector which is consistent with the flux directions in v (i.e. x
i
is either zero or has the same sign as v
i
) and is itself a loop (i.e. S
int
· x = 0). Formally, v has a loop if and only if:
(2)
We have now finished laying the groundwork for our mathematical proof that loopless-COBRA is sound and complete. In order to do that, we are left only to show that Equation 1 is satisfiable if and only if Equation 2 is unsatisfiable (in other words, there are no loops).
Gordan’s theorem
We start our proof by quoting Gordan’s theorem: For all exactly one of the following two statements is true:
We will show that statement (a) in Gordan’s theorem is equivalent to having a loop (Equation 2) and statement (b) is equivalent to the MILP constraints used by loopless-COBRA (Equation 1). After doing so, we would easily reach the conclusion of the proof.
As a guidance for the following sections, one can see that statement (a) already resembles Equation 2 if we define A = S
int
. The only difference is that x is constrained to have only non-negative values (note the ‘+’ in), instead of being consistent with the sign of v. Corollaries 1 and 2 will show how we can overcome this discrepancy by defining A in a slightly different way.
At first glance, statement (b) might look unrelated to Equation 1. However, in the last part of our proof, we show that choosing, which satisfies null(S
int
)G = 0, is the same as choosing and then taking. Only for sake of understanding the algebra, one can think of y as the vector of formation Gibbs energies, and of G as the vector of reaction Gibbs energies. The rest of the proof, like for statement (a), deals with adjusting A to fit with the non-positive values in v. The toy example in Figure2 shows how Gordan’s theorem corresponds to having or not having a loop, for a network with 3 compounds and 3 internal reactions.
Corollary 1
For all and d ∈ {−1,0,1}n exactly one of the following two statements is true:
Proof
First, define a new matrix that is the same as A, without the columns corresponding to d
i
= 0 and where columns corresponding to d
i
= −1 are multiplied by −1. Statement (1a) is true for A if and only if (a) is true for. The forward direction is easily shown by removing the zeros from x, where d
i
= 0, and negating values corresponding to d
i
= −1 (as previously done for A). Reversing this process (i.e. taking a positive solution for, adding back the zeros and negating the same values) shows the other direction is true as well.
Likewise, statement (1b) for A is true if and only if (b) is true for, since columns with d
i
= −1 are negated in and thus sign. Columns with d
i
= 0 have no other constraints in (1b) and the same goes for (b) since they are removed from.
Therefore, Corollary 1 is directly derived from Gordan’s theorem. □
Since constraint-based models usually use a vector of real values () to represent the flux distribution, we subsequently change the formulation of the Corollary slightly to match.
Corollary 2
For all and, exactly one of the following two statements is true:
Proof
Defining d
i
≡ sign(v
i
), we get this directly from Corollary 1. Note that −sign(v
i
) can be used in (2b), since the existence of y is equivalent to the existence of −y. □
This adjustment now allows us to apply Corollary 2 to constraint-based problems and show that it eliminates loops (see example in Figure2). In order to avoid any confusion, we point out that a solution for Ax = 0 is considered a loop only if A is the stoichiometric matrix of internal reactions. This should not be mistaken as the steady-state mass-balance equation which looks exactly the same, except that A contains both internal and external reactions.
Corollary 3
Adding the following constraint:
is equivalent to eliminating all loops in a flux distribution v.
Proof
Using Corollary 2, all that must be shown is that statement (2a) is equivalent to having a loop. This is apparent since x is a vector in the null-space of A (i.e., a loop) and is consistent with the flux direction of v in each of its nonzero reactions. □
Note that the trivial case v = 0 can still be a solution and it should be explicitly avoided if necessary.
Applying Corollary 3 in loopless-COBRA
The added constraints in loopless-COBRA[17] are slightly different than in Corollary 3, namely:
We claim here that both formulations are equivalent. The fundamental theorem of linear algebra states that the nullspace, null(A), is the orthogonal complement of the row space, image(A⊤). Therefore, we can say that null(A)·G = 0 if and only if G ∈ image(A⊤), so we can rewrite the constraint above as:
which is obviously equivalent to the constraint in Corollary 3.