E_coli: An underdetermined linear inverse problem: the Escherichia...

Description Usage Format Author(s) References Examples

Description

Input matrices and vectors for performing Flux Balance Analysis of the E.coli metabolism

(as from http://gcrg.ucsd.edu/Downloads/Flux_Balance_Analysis).

The original input file can be found in the package subdirectory /inst/docs/E_coli.input

There are 53 substances:

GLC, G6P, F6P, FDP, T3P2, T3P1, 13PDG, 3PG, 2PG, PEP, PYR, ACCOA, CIT, ICIT, AKG, SUCCOA, SUCC, FUM, MAL, OA, ACTP, ETH, AC, LAC, FOR, D6PGL, D6PGC, RL5P, X5P, R5P, S7P, E4P, RIB, GLX, NAD, NADH, NADP, NADPH, HEXT, Q, FAD, FADH, AMP, ADP, ATP, GL3P, CO2, PI, PPI, O2, COA, GL, QH2

and 13 externals:

Biomass, GLCxt, GLxt, RIBxt, ACxt, LACxt, FORxt, ETHxt, SUCCxt, PYRxt, PIxt, O2xt, CO2xt

There are 70 unknown reactions (named by the gene encoding for it):

GLK1, PGI1, PFKA, FBP, FBA, TPIA, GAPA, PGK, GPMA, ENO, PPSA, PYKA, ACEE, ZWF, PGL, GND, RPIA, RPE, TKTA1, TKTA2, TALA, GLTA, ACNA, ICDA, SUCA, SUCC1, SDHA1, FRDA, FUMA, MDH, DLD1, ADHE2, PFLA, PTA, ACKA, ACS, PCKA, PPC, MAEB, SFCA, ACEA, ACEB, PPA, GLPK, GPSA1, RBSK, NUOA, FDOH, GLPD, CYOA, SDHA2, PNT1A, PNT2A, ATPA, GLCUP, GLCPTS, GLUP, RIBUP, ACUP, LACUP, FORUP, ETHUP, SUCCUP, PYRUP, PIUP, O2TX, CO2TX, ATPM, ADK, Growth

The lsei model contains:

As there are more unknowns (70) than equations (54), there exist an infinite amount of solutions (it is an underdetermined problem).

Usage

1

Format

A list with the matrices and vectors that constitute the mass balance problem: A, B, G and H and

Maximise, with the function to maximise.

The columnames of A and G are the names of the unknown reaction rates; The first 53 rownames of A give the names of the components (these rows consitute the mass balance equations).

Author(s)

Karline Soetaert <karline.soetaert@nioz.nl>

References

originated from the urlhttp://gcrg.ucsd.edu/Downloads/Flux_Balance_Analysis

Edwards,J.S., Covert, M., and Palsson, B., (2002) Metabolic Modeling of Microbes: the Flux Balance Approach, Environmental Microbiology, 4(3): pp. 133-140.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 1. parsimonious (simplest) solution
pars <- lsei(E = E_coli$A, F = E_coli$B, G = E_coli$G, H = E_coli$H)$X

# 2. the optimal solution - solved with linear programming
#    some unknowns can be negative

LP <- linp(E = E_coli$A, F = E_coli$B,G = E_coli$G, H = E_coli$H,
           Cost = -E_coli$Maximise, ispos = FALSE)
(Optimal <- LP$X)

# 3.ranges of all unknowns, including the central value and all solutions
xr   <- xranges(E = E_coli$A, F = E_coli$B, G = E_coli$G, H = E_coli$H,
                central = TRUE, full = TRUE)

# the central point is a valid solution:
X <- xr[ ,"central"]
max(abs(E_coli$A%*%X - E_coli$B))
min(E_coli$G%*%X - E_coli$H)

# 4. Sample solution space; the central value is a good starting point
#   for algorithms cda and rda - but these need many iterations
## Not run: 
xs <- xsample(E = E_coli$A, F = E_coli$B, G = E_coli$G,H = E_coli$H,
              iter = 50000, out = 5000, type = "rda", x0 = X)$X
pairs(xs[ ,10:20], pch = ".", cex = 2, main = "sampling, using rda")

## End(Not run)

# using mirror algorithm takes less iterations,
# but an iteration takes more time ; it is better to start in a corner...
# (i.e. no need to use X as starting value)
xs <- xsample(E = E_coli$A, F = E_coli$B, G = E_coli$G, H = E_coli$H,
              iter = 2000, out = 500, jmp = 50, type = "mirror")$X
pairs(xs[ ,10:20], pch = ".", cex = 2, main = "sampling, using mirror")

# Print results:
data.frame(pars = pars, Optimal = Optimal, xr[ ,1:2],
           Mean = colMeans(xs), sd = apply(xs, 2, sd))

# Plot results
par(mfrow = c(1, 2))
nr <- length(Optimal)/2

ii <- 1:nr
dotchart(Optimal[ii], xlim = range(xr), pch = 16)
segments(xr[ii,1], 1:nr, xr[ii,2], 1:nr)

ii <- (nr+1):length(Optimal)
dotchart(Optimal[ii], xlim = range(xr), pch = 16)
segments(xr[ii,1], 1:nr, xr[ii,2], 1:nr)
mtext(side = 3, cex = 1.5, outer = TRUE, line = -1.5,
      "E coli Core Metabolism, optimal solution and ranges")

Example output

        GLK1         PGI1         PFKA          FBP          FBA         TPIA 
    0.000000   807.532745   781.590686     0.000000   781.590686   781.590686 
        GAPA          PGK         GPMA          ENO         PPSA         PYKA 
 1541.434199  1541.434199  1492.089090  1492.089090     0.000000   466.657964 
        ACEE          ZWF          PGL          GND         RPIA          RPE 
 1149.295284     0.000000     0.000000     0.000000    23.623833   -23.623833 
       TKTA1        TKTA2         TALA         GLTA         ACNA         ICDA 
   -5.850762   -17.773070    -5.850762    35.435749    35.435749    35.435749 
        SUCA        SUCC1        SDHA1         FRDA         FUMA          MDH 
    0.000000     0.000000     0.000000   100.000000  -100.000000  -100.000000 
        DLD1        ADHE2         PFLA          PTA         ACKA          ACS 
    0.000000  1000.000000    10.000000     0.000000     0.000000     0.000000 
        PCKA          PPC         MAEB         SFCA         ACEA         ACEB 
    0.000000   194.384939     0.000000     0.000000     0.000000     0.000000 
         PPA         GLPK        GPSA1         RBSK         NUOA         FDOH 
    0.000000     0.000000     0.000000     0.000000   140.000000     0.000000 
        GLPD         CYOA        SDHA2        PNT1A        PNT2A         ATPA 
    0.000000    40.000000  -100.000000     0.000000   567.965512  -145.466329 
       GLCUP       GLCPTS         GLUP        RIBUP         ACUP        LACUP 
    0.000000   814.156250     0.000000     0.000000     0.000000     0.000000 
       FORUP        ETHUP       SUCCUP        PYRUP         PIUP         O2TX 
  -10.000000 -1000.000000  -100.000000   -27.796342   120.547782    20.000000 
       CO2TX         ATPM          ADK       Growth 
 -990.346093     5.870000     0.000000    33.117523 
[1] 3.979039e-13
[1] 0
There were 50 or more warnings (use warnings() to see the first 50)
             pars      Optimal           min         max        Mean         sd
GLK1    0.4009544     0.000000     0.0000000   10.000000    5.021060   2.934959
PGI1    4.5379131   807.532745   -15.8333333  807.532745  469.676861 125.065924
PFKA    4.5379131   781.590686     0.8333333 2229.130000  653.232614 226.734247
FBP     0.0000000     0.000000     0.0000000 1604.130000  179.338871 154.196020
FBA     4.5379131   781.590686     0.8333333  781.590686  473.893744 124.257400
TPIA    4.5379131   781.590686     0.8333333  781.590686  473.893744 124.257400
GAPA    9.0758262  1541.434199     5.0000000 1541.434199  949.276678 248.005695
PGK     9.0758262  1541.434199     5.0000000 1541.434199  949.276678 248.005695
GPMA    9.0758262  1492.089090     5.0000000 1492.089090  945.794854 247.028224
ENO     9.0758262  1492.089090     5.0000000 1492.089090  945.794854 247.028224
PPSA    0.0000000     0.000000     0.0000000 1604.130000  149.375241 126.659402
PYKA    2.5850303   466.657964     0.0000000 2136.630000  293.157563 217.685722
ACEE    0.0000000  1149.295284     0.0000000 1158.949190  788.453537 236.575798
ZWF     0.0000000     0.000000     0.0000000   75.000000    9.071059   7.645742
PGL     0.0000000     0.000000     0.0000000   75.000000    9.071059   7.645742
GND     0.0000000     0.000000     0.0000000   75.000000    9.071059   7.645742
RPIA    0.0000000    23.623833     0.0000000   28.202015    4.690600   2.890369
RPE     0.0000000   -23.623833   -23.6238328   50.000000    4.380459   5.384497
TKTA1   0.0000000    -5.850762    -5.8507623   25.000000    2.610853   2.593844
TKTA2   0.0000000   -17.773070   -17.7730705   25.000000    1.769606   2.837965
TALA    0.0000000    -5.850762    -5.8507623   25.000000    2.610853   2.593844
GLTA    0.9241738    35.435749     0.0000000   40.847149   10.376369   4.497873
ACNA    0.9241738    35.435749     0.0000000   40.847149   10.376369   4.497873
ICDA    0.0000000    35.435749     0.0000000   40.847149    6.541879   3.909119
SUCA    0.0000000     0.000000     0.0000000   30.000000    4.041508   3.381509
SUCC1   0.0000000     0.000000     0.0000000   30.000000    4.041508   3.381509
SDHA1   2.1837119     0.000000     0.0000000  100.000000   13.056124  12.160861
FRDA    1.2595381   100.000000     0.0000000  100.000000   87.050048  12.368105
FUMA    0.9241738  -100.000000  -100.0000000    8.333333  -73.993924  16.591382
MDH    -1.4296635  -100.000000 -1168.3150000   16.666667 -312.090684 137.780790
DLD1    6.2377331     0.000000     0.0000000   10.000000    4.956174   2.854586
ADHE2   1.9139194  1000.000000     0.0000000 1000.000000  794.514939 235.534451
PFLA    3.7622669    10.000000     0.0000000  150.000000   39.585058  23.745308
PTA     1.9196296     0.000000     0.0000000 1660.380000  151.059651 127.300982
ACKA    1.9196296     0.000000     0.0000000 1660.380000  151.059651 127.300982
ACS     1.9196296     0.000000     0.0000000 1604.130000  140.486467 127.063752
PCKA    1.4906916     0.000000     0.0000000 1604.130000  142.873053 140.901355
PPC     3.8445288   194.384939     0.0000000 1704.130000  469.499601 208.080533
MAEB    1.9977105     0.000000     0.0000000 1068.315000  130.802671 117.404882
SFCA    1.2803005     0.000000     0.0000000 1068.315000  111.128579  97.889233
ACEA    0.9241738     0.000000     0.0000000   30.000000    3.834490   3.137004
ACEB    0.9241738     0.000000     0.0000000   30.000000    3.834490   3.137004
PPA     1.9196296     0.000000     0.0000000 1604.130000  140.486467 127.063752
GLPK    0.0000000     0.000000     0.0000000    0.000000    0.000000   0.000000
GPSA1  -0.8586019     0.000000  -140.0000000    0.000000  -30.122855  22.398165
RBSK    0.0000000     0.000000     0.0000000    0.000000    0.000000   0.000000
NUOA    0.0000000   140.000000     0.0000000  140.000000   37.883230  26.225912
FDOH    0.0000000     0.000000     0.0000000  140.000000   34.541232  23.553907
GLPD    0.8586019     0.000000     0.0000000  140.000000   30.122855  22.398165
CYOA    1.7827757    40.000000     0.0000000   40.000000   28.553393   9.378355
SDHA2   0.9241738  -100.000000  -100.0000000    8.333333  -73.993924  16.591382
PNT1A   2.1262628     0.000000     0.0000000 3208.260000  501.757489 314.908951
PNT2A   0.9871543   567.965512     0.0000000 3208.260000  418.970081 287.092791
ATPA   -2.5583322  -145.466329  -460.0000000 1144.130000  -85.577535 132.426786
GLCUP   0.4009544     0.000000     0.0000000   10.000000    5.021060   2.934959
GLCPTS  4.1369587   814.156250     0.0000000  814.156250  474.194218 124.813736
GLUP    0.0000000     0.000000     0.0000000    0.000000    0.000000   0.000000
RIBUP   0.0000000     0.000000     0.0000000    0.000000    0.000000   0.000000
ACUP    0.0000000     0.000000   -75.0000000    0.000000  -10.573184   8.756582
LACUP  -6.2377331     0.000000   -10.0000000    0.000000   -4.956174   2.854586
FORUP  -3.7622669   -10.000000   -10.0000000    0.000000   -5.043826   2.854586
ETHUP  -1.9139194 -1000.000000 -1000.0000000    0.000000 -794.514939 235.534451
SUCCUP  0.0000000  -100.000000  -130.0000000    0.000000  -81.869922  18.295976
PYRUP   0.0000000   -27.796342  -150.0000000    0.000000  -20.299891  17.602014
PIUP    0.0000000   120.547782     0.0000000  120.547782    8.505934   7.642679
O2TX    0.8913878    20.000000     0.0000000   20.000000   14.276697   4.689178
CO2TX  -0.9241738  -990.346093 -1000.0000000    0.000000 -757.953918 234.870322
ATPM    5.8700000     5.870000     5.8700000    5.870000    5.870000   0.000000
ADK     1.9196296     0.000000     0.0000000 1604.130000  289.861708 199.098246
Growth  0.0000000    33.117523     0.0000000   33.117523    2.336795   2.099637

limSolve documentation built on Nov. 12, 2019, 3 p.m.