Description Usage Format Author(s) References Examples
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:
54 equalities (Ax=B): the 53 mass balances (one for each substance) and one equation that sets the ATP drain flux for constant maintenance requirements to a fixed value (5.87)
70 unknowns (x), the reaction rates
62 inequalities (Gx>h). The first 28 inequalities impose bounds on some reactions. The last 34 inequalities impose that the reaction rates have to be positive (for unidirectional reactions only).
1 function that has to be maximised, the biomass production (growth).
As there are more unknowns (70) than equations (54), there exist an infinite amount of solutions (it is an underdetermined problem).
1 |
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).
Karline Soetaert <karline.soetaert@nioz.nl>
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.
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")
|
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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.