Flux Control Coefficients

As is noted in Chapter 5, flux control coefficients give information on the relative importance of a particular reaction in controlling a particular flux in a metabolic pathway. Often, the easiest way to calculate the flux control coefficient for a model, that is formulated using matrix notation, is with the function FluxControlMatrix from the MetabolicControlAnalysis add-on package.

Q: Calculate the non-normalized flux control coefficient values for the erythrocyte model. A: The matrix is calculated as follows:

fcm = FluxControlMatrix[S, VN, v,

SteadyStateConc0 steadyState, Normalized 0 False]; Dimensions[ fcm]

Inverse::luc : Result for Inverse of badly conditioned matrix <<1>> may contain significant numerical errors.

The resultant flux control matrix is a 53 x 53 one, since there are 53 reactions in the system and there is one possible flux associated with each reaction.

The error message that is returned when the previous function is evaluated needs some explanation. Inverse::luc sometimes appears when the FluxControlMatrix and ConcControlMatrix functions are used. These commands require the calculation of the inverse of the Jacobian (MMatrix) of the system. In some cases the Jacobian matrix is ill-conditioned, meaning that small perturbations in its elements cause large changes in the calculated inverse. In these cases, because the Jacobian is a numerical one, there may be significant errors in the calculated results. In practice, although this problem is something to be aware of, in most cases the results of the ControlMatrix algorithms closely match control coefficients calculated by numerical modulation (Section 5.3). This point is demonstrated in the following example, but we first switch off the error messages facility, as follows:


Q: Calculate the normalized flux control coefficients for the erythrocyte model.

A: From the discussion in Section 8.3 it is apparent that we must specify those reactions and fluxes that obey strict detailed-balance. As is noted above this is done using the Option Normalized 0 zeroFluxPosition.

fcm = FluxControlMatrix[S, VN, v, SteadyStateConc0 steadyState, Normalized 0 zeroFluxPosition] ;


The use and interpretation of the flux control matrix is demonstrated by addressing the questions in the remainder of this section.

Q: How much control does hexokinase exert over the flux through glycolysis?

A: Before answering this question, recall that the flux control matrix has the following meaning: the entry in row i and column j gives the flux control coefficient of reaction j with respect to pathway flux i. In other words, this entry gives a measure of how reaction j controls the pathway flux through reaction i. Thus the flux control matrix will have dimensions of 38 x 53 because 53 reactions make up the model, but from Section 8.4 it is clear there are 15 equations that obey strict detailed-balance.

If the flux control coefficient of hexokinase, with respect to the flux through glycolysis (which we will also take as the pathway flux through hexokinase), is sought, then the matrix entry in row 1, column 1 of the flux control matrix must be inspected. The relevant flux control coefficient is given by the following evaluation. (The other flux control coefficients are treated in more examples below.)


From the flux-summation theorem of MCA (Section 5.2) we know that all the control coefficients for flux through glycolysis should sum to 1. Therefore, we can infer that hexokinase does not exhibit very much control over glycolytic flux in the normal steady state.

Q: Can the conclusion reached in the previous example be right? This is a surprising result in view of the claims in the earlier literature on the control of human erythrocyte metabolism.

A: In answering this question, we first determine if the flux-summation theorem holds for all the flux control coefficients. We do this by summing the entries for all the rows of the flux control matrix. This is done with the following input:

{1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.00054, 0.999997, 1.00054, 0.999997, 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.00002}

It is clear that each set of flux control coefficients sum to one, or very close to one. This provides consistency with the summation theorem for flux control coefficients (Section 5.2).

Q: In view of the results from the previous two question/answers, in which reactions is most of the control of glycolytic flux vested?

A: One way of answering this question is to determine which reactions have a flux control coefficient whose absolute value is greater than, say, 0.1. The following program implements this idea. It defines a function which returns the reaction name of any flux control coefficients which is greater than a specified value. The first step of the program is to define a list of reactions and a list of fluxes. The list of fluxes is simply the list of reactions (reactionList) with those reactions which have zero flux removed.

reactionList = Drop[StoichiometryMatrix[eqns][[1]], 1] ; fluxList = Delete[reactionList, zeroFluxPosition];

We then generate replacement rules of the form column/row number 0 reaction/flux name and vice versa. These allow us to identify various rows and columns in the flux control matrix with particular fluxes and reactions.


Table[i 0 reactionListpj , {i, Length[reactionList]} ] ; rxnToNum = Table [reactionListpj 0 i,

{i, Length[reactionList]}]; numToFlux = Table[i 0 reactionListp] ,

{i, Length[reactionListD}D; fluxToNum = Table [reactionListpj 0 i, {i, Length[reactionListD}D;

This allows us to define a function, CJ[x,y], which gives the control coefficients for flux x which are > y.

{bigFccPosition, names,values}, bigFccPosition =

Position[fcm[x/.fluxToNum] , z_? (Abs [#1] >= y&) ] // Flatten; names = bigFccPosition / . numToRxn ; values = Part[fcm[x/.fluxToNum] , bigFccPosition] ; Transpose[{names,values}]]

Thus, using the above definitions, the reactions that have an absolute value for their glycolytic flux control coefficient greater than 0.1 are given by

From the list it is evident that the reactions with the two largest glycolytic flux control coefficients are ATPase and the ninth reaction step of the 2,3-BPG synthase-phosphatase reaction scheme. This is a very interesting result!

Q: Which reactions are primarily responsible for controlling the flux through the pentose phosphate pathway (PPP)?

A: In answering this question we take the flux through the PPP to be flux via G6PDH. Hence, the reactions with the largest flux control coefficients can be determined as follows using the function CJ defined above:

From this output we see that the reaction (ox) has the highest flux control coefficient with a value of 0.940131. Therefore, the answer is that the rate of oxidation of glutathione is primarily what controls PPP flux under the normal in vivo steady-state condition.

Q: Which reactions are primarily responsible for controlling the flux through the 2,3-BPG shunt?

A: In answering this question we take the flux through the second step of the 2,3-BPGsynthase-phophatase reaction scheme as the pathway flux of the 2,3-BPG shunt. Hence, the largest flux control coefficients can be determined as follows, using the function CJ defined above:

{{eno, 0.108495}, {pk, 0.158887}, {bpgsp2, 0.1307}, {bpgsp9, 0.836173}, {atpase, -0.124067}}

Therefore, the answer to the question is that the energetic and oxidative loads, almost independently, control the fluxes through glycolysis and the PPP, respectively, while the irreversible phosphatase reaction of the 2,3-BPG synthase-phosphatase enzyme has the greatest control over 2,3-BPG shunt activity.

Q: Calculate the flux control coefficient of hexokinase, with respect to the flux through glycolysis by numerical modulation. This analysis will serve as a check on the matrix calculations performed in the previous question/answers.

A: Recall from Chapter 4 that the numerical modulation method involves varying parameter values by a small, incremental amount as a numerical means of determining a partial derivative. For the hexokinase reaction this is done as follows.

Define solutionl as the normal steady state of metabolite concentrations, as determined previously.


NDSolveMatrix[S, VN, v, icl, {t, 0, 1*A6} , AccuracyGoal ^ 10, PrecisionGoal^ 10, WorkingPrecision^ 15, MaxSteps ^ 2000];

The velocity of hexokinase at the steady state is then given by v1 = v[hk] /. t ^ 1*A6/. solution1;

Next we numerically modulate the hexokinase reaction. This is most easily achieved by increasing the concentration of hexokinase by, say, 1%.

Now determine the new steady-state velocity of hexokinase after the parameter modulation. But, before this is done a new reaction velocity matrix must be defined, as follows:

NDSolveMatrix[S, VN, v2, ic1, {t, 0, 1*A6} , AccuracyGoal ^ 10, PrecisionGoal^ 10, WorkingPrecision^ 15, MaxSteps ^ 2000];

Finally, the estimated flux control coefficient is determined as follows:

fluxControlCoeff = -x-

v1 0.01


In conclusion, this value agrees to closely with that calculated above using the matrix method!

Was this article helpful?

0 0

Post a comment