E.coli Core Model for Beginners (PART 3)
(please run PART 2 of this tutorial first)
4.C. Pentose Phosphate Pathway
The primary purpose of the pentose phosphate pathway (PPP) is to provide the 4-, 5- and 7-carbon precursors for the cell and produce nadph[c]. The 4-, 5- and 7-carbon precursors include D-erythrose-4-phosphate (e4p[c]), alpha-D-ribose-5-phosphate, (r5p[c]), and sedoheptulose-7-phosphate (s7p[c]), respectively. The nadph[c] is produced in the oxidative pathway by glucose-6-phosphate dehydrogenase (G6PDH2r) and phosphogluconate dehydrogenase (GND).
The location of the reactions associated with the PPP are shown below on the E.coli core map in Figure 16.
Figure 16. Pentose phosphate pathway subsystem reactions highlighted in blue on the E.coli core map [3].
The pentose phosphate pathway subsystem includes the following reactions derived from the core model. [Timing: Seconds]
model = e_coli_core; % Starting with the original model
model = changeRxnBounds(model,'EX_glc(e)',-10,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l');
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
pppSubsystem = {'Pentose Phosphate Pathway'};
pppReactions = model.rxns(ismember(model.subSystems,pppSubsystem));
[~,ppp_rxnID] = ismember(pppReactions,model.rxns);
Reaction_Names = model.rxnNames(ppp_rxnID);
Reaction_Formulas = printRxnFormula(model,pppReactions,0);
T = table(Reaction_Names,Reaction_Formulas,'RowNames',pppReactions)
T =
Reaction_Names Reaction_Formulas
___________________________________ ______________________________________________________
G6PDH2r 'glucose 6-phosphate dehydrogenase' 'g6p[c] + nadp[c] <=> 6pgl[c] + h[c] + nadph[c] '
GND 'phosphogluconate dehydrogenase' '6pgc[c] + nadp[c] -> co2[c] + nadph[c] + ru5p-D[c] '
PGL '6-phosphogluconolactonase' '6pgl[c] + h2o[c] -> 6pgc[c] + h[c] '
RPE 'ribulose 5-phosphate 3-epimerase' 'ru5p-D[c] <=> xu5p-D[c] '
RPI 'ribose-5-phosphate isomerase' 'r5p[c] <=> ru5p-D[c] '
TALA 'transaldolase' 'g3p[c] + s7p[c] <=> e4p[c] + f6p[c] '
TKT1 'transketolase' 'r5p[c] + xu5p-D[c] <=> g3p[c] + s7p[c] '
TKT2 'transketolase' 'e4p[c] + xu5p-D[c] <=> f6p[c] + g3p[c] '
There are two distinct phases of the pentose phosphate pathway. The first is the "oxidative phase," in which nadph[c] is generated. Note that the pentose phosphate pathway is not the only source of nadph[c] in aerobic conditions. This was explored using "surftNet" in the energy management section (Section 4.A ). The second phase of the pentose phosphate pathway is referred to as the "non-oxidative" phase that provides a pathway for the synthesis of 4-, 5-, and 7-carbon precursors in anaerobic conditions. The pentose phosphate pathway reactions and supported precursors are shown in the Figure17 below.
Figure 17. Pentose phosphate pathway reactions and precursors [3].
The direction of the flux flowing through the non-oxidative part of the pentose phosphate pathway changes based on aerobic versus anaerobic conditions. This variation in flux direction is shown below in Figure 18.
Figure 18. The flow of flux through the pentose phosphate pathway based on A) aerobic or B) anaerobic conditions.
In this figure it can be seen that under (A) aerobic conditions the flux flows through the oxidative phase of the pentose phosphate pathway and then is directed downward through the non-oxidative phase and then works its way back to the glycolysis cycle. On the other hand, under (B) anaerobic conditions the flux enters the left side of reaction TKT2 of the pentose phosphate pathway from the glycolysis pathway operating under the condition of gluconeogenesis. The flux then splits to feed the needs of the three major precursors e4p[c], r5p[c], and s7p[c]. These specific flux values can be calculated using the COBRA Toolbox as follows. [Timing: Seconds]
% Obtain the rxnIDs for the pentose phosphate pathway reactions
[~,glycolysis_rxnID] = ismember(glycolysisReactions,model.rxns);
FBAsolution = optimizeCbModel(model,'max',0,0);
Glucose_Aerobic_Flux = round(FBAsolution.x(ppp_rxnID),3);
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_fru(e)',-10,'l');
FBAsolution = optimizeCbModel(model,'max',0,0);
Fructcose_Aerobic_Flux = round(FBAsolution.x(ppp_rxnID),3);
% Set anaerobic conditions
model = changeRxnBounds(model,'EX_o2(e)',-0,'l');
model = changeRxnBounds(model,'EX_glc(e)',-10,'l');
FBAsolution = optimizeCbModel(model,'max',0,0);
Glucose_Anaerobic_Flux = round(FBAsolution.x(ppp_rxnID),3);
% Fructose anaerobic flux
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_fru(e)',-10,'l');
FBAsolution = optimizeCbModel(model,'max',0,0);
Fructose_Anaerobic_Flux = round(FBAsolution.x(ppp_rxnID),3);
T = table(Glucose_Aerobic_Flux,Fructcose_Aerobic_Flux,Glucose_Anaerobic_Flux,...
Fructose_Anaerobic_Flux,'RowNames',pppReactions)
T =
Glucose_Aerobic_Flux Fructcose_Aerobic_Flux Glucose_Anaerobic_Flux Fructose_Anaerobic_Flux
____________________ ______________________ ______________________ _______________________
G6PDH2r 4.96 4.96 0 0
GND 4.96 4.96 0 0
PGL 4.96 4.96 0 0
RPE 2.678 2.678 -0.371 -0.152
RPI -2.282 -2.282 -0.371 -0.152
TALA 1.497 1.497 -0.092 -0.038
TKT1 1.497 1.497 -0.092 -0.038
TKT2 1.181 1.181 -0.279 -0.114
4.D. Tricarboxylic Acid Cycle
The tricarboxylic acid (TCA) cycle or the citric acid cycle supports a variety of cellular functions depending on the environment. Under aerobic conditions the TCA cycle operates in a counter-clockwise direction using acetyl-CoA as a substrate to produce three cellular precursors, reducing power nadh[c] and nadph[c], cellular energy atp[c] through substrate phosphorylation, and carbon dioxide (co2[c]). While in the anaerobic condition, only part of the TCA cycle will be used to produce two of the three precursors and the reducing power nadph[c]. The location of the TCA cycle subsystem is shown on the following E.coli core map (Figure 19).
Figure 19. TCA pathway subsystem reactions highlighted in blue on E.coli core map [3].
The reactions associated with the TCA cycle can be retrieved from the E.coli core model as shown below. [Timing: Seconds]
TCA_Reactions = transpose({'CS','ACONTa','ACONTb','ICDHyr','AKGDH','SUCOAS',...
'FRD7','SUCDi','FUM','MDH'});
[~,TCA_rxnID] = ismember(TCA_Reactions,model.rxns);
Reaction_Names = model.rxnNames(TCA_rxnID);
Reaction_Formulas = printRxnFormula(model,TCA_Reactions,0);
T = table(Reaction_Names,Reaction_Formulas,'RowNames',TCA_Reactions)
T =
Reaction_Names Reaction_Formulas
_____________________________________________________ ____________________________________________________________
CS 'citrate synthase' 'accoa[c] + h2o[c] + oaa[c] -> cit[c] + coa[c] + h[c] '
ACONTa 'aconitase (half-reaction A, Citrate hydro-lyase)' 'cit[c] <=> acon-C[c] + h2o[c] '
ACONTb 'aconitase (half-reaction B, Isocitrate hydro-lyase)' 'acon-C[c] + h2o[c] <=> icit[c] '
ICDHyr 'isocitrate dehydrogenase (NADP)' 'icit[c] + nadp[c] <=> akg[c] + co2[c] + nadph[c] '
AKGDH '2-Oxoglutarate dehydrogenase' 'akg[c] + coa[c] + nad[c] -> co2[c] + nadh[c] + succoa[c] '
SUCOAS 'succinyl-CoA synthetase (ADP-forming)' 'atp[c] + coa[c] + succ[c] <=> adp[c] + pi[c] + succoa[c] '
FRD7 'fumarate reductase' 'fum[c] + q8h2[c] -> q8[c] + succ[c] '
SUCDi 'succinate dehydrogenase (irreversible)' 'q8[c] + succ[c] -> fum[c] + q8h2[c] '
FUM 'fumarase' 'fum[c] + h2o[c] <=> mal-L[c] '
MDH 'malate dehydrogenase' 'mal-L[c] + nad[c] <=> h[c] + nadh[c] + oaa[c] '
The E.coli core model does not include the membrane reactions (FRD7 and SUCDi) in the TCA cycle (Citric Acid Cycle) subsystem. They have been added to this discussion since they close the TCA loop and allow complete TCA operation.
The precursors associated with the TCA cyle are shown below in Figure 20. The precursors include; 1) oxaloacetate (oaa[c]) for the biosynthesis of asparagine, aspartic acid, isoleucine, lysine, methionine, and threonine, 2) 2-oxoglutarate or alpha-ketoglutarate (akg[c]) for the biosynthesis of arginine, glutamine, glutamic acid, and proline and finally 3) succinyl-CoA (succoa[c]) for heme biosynthesis.
Figure 20. TCA pathway reactions and precursors [3].
The TCA cycle can be divided into an oxidative pathway and a reductive pathway as illustrated in Figure 19. The oxidative pathway of the TCA cycle runs counterclockwise in the lower part of the cycle, from oxaloacetate (oaa[c]), through 2-oxoglutarate (akg[c]). Under aerobic conditons the oxidative pathway can continue counterclockwise from 2-oxoglutarate (akg[c]) full circle to oxaloacetate (oaa[c]). The full TCA cycle can totally oxidize acetyl-CoA (accoa[c]), but only during aerobic growth on acetate or fatty acids.
Under anaerobic conditions, the TCA cycle functions not as a cycle, but as two separate pathways. The oxidative pathway, the counterclockwise lower part of the cycle, still forms the precursor 2-oxoglutarate. The reductive pathway, the clockwise upper part of the cycle, can form the precursor succinyl-CoA.
Let's begin this exploration by visualizing the fluxes through the core model when pyruvate is used as the carbon source for both aerobic and anaerobic conditions. [Timing: Seconds]
% Key parameters for TCA pathway section
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_pyr(e)',-20,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l'); % Set at -30 for aerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
FBAsolution = optimizeCbModel(model,'max',0,0);
% Import E.coli core map and adjust parameters
map=readCbMap('ecoli_core_map.txt');
options.zeroFluxWidth = 0.1;
options.rxnDirMultiplier = 10;
drawFlux(map, model, FBAsolution.x, options);
A close-up on the TCA cycle for both the aerobic and anaerobic cases are shown in Figure 21.
Figure 21. A close-up of the TCA cycle with pyruvate as the carbon source for both aerobic and anaerobic conditions.
The specific flux values for each of these conditions is calculated below. [Timing: Seconds]
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_pyr(e)',-20,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l');
FBAsolution = optimizeCbModel(model,'max',0,0);
Pyrvate_Aerobic_Flux = round(FBAsolution.x(TCA_rxnID),3);
% Pyruvate anaerobic flux
model = changeRxnBounds(model,'EX_o2(e)',-0,'l');
FBAsolution = optimizeCbModel(model,'max',0,0);
Pyrvate_Anaerobic_Flux = round(FBAsolution.x(TCA_rxnID),3);
T = table(Pyrvate_Aerobic_Flux,Pyrvate_Anaerobic_Flux,...
'RowNames',TCA_Reactions)
T =
Pyrvate_Aerobic_Flux Pyrvate_Anaerobic_Flux
____________________ ______________________
CS 11.216 0.071
ACONTa 11.216 0.071
ACONTb 11.216 0.071
ICDHyr 9.433 0.071
AKGDH 8.762 0
SUCOAS -8.762 0
FRD7 0 0
SUCDi 10.545 0
FUM 10.545 0
MDH 12.328 0
These fluxes show that under aerobic conditions the full TCA cyle is operational while under anaerobic conditions only the lower part of the TCA cycle (CS, ACONTa, ACONTb and ICDHyr), the oxidative pathway, is used.
4.E. Glycoxylate Cycle, Gluconeogenesis, and Anapleurotic Reactions
The glycoxylate cycle and gluconeogenic reactions are necessary to allow E. coli to grow on 3-carbon (pyruvate) and 4-carbon compounds (malate, fumarate, and succinate). This occurs by avoiding the loss of carbon to carbon dioxide in the TCA cycle (glycoxylate cycle), providing a pathway for generation of glycolytic intermediates from TCA intermediates (anapleurotic reactions), and reversing the carbon flux through glycolysis (gluconeogenesis) to produce essential precursors for biosynthesis.
The location of the glycoxylate cycle, gluconeogenesis, and anapleurotic reactions on the E.coli core map is shown in Figure 22 below.
Figure 22. Glycoxylate cycle, gluconeogenesis, and anapleurotic reactions highlighted in blue on the E.coli core map [3].
The reactions included in this section on the glycoxylate cycle, gluconeogenesis, and anapleurotic reactions are shown below. This subsystem is referred to in the core model as the "anapleurotic reactions" subsystem. [Timing: Seconds]
% Set initial constraints for glycoxylate cycle, gluconeogenesis, and anapleurotic reactions section
ANA_Reactions = transpose({'ICL','MALS','ME1','ME2','PPS','PPCK',...
[~,ANA_rxnID] = ismember(ANA_Reactions,model.rxns);
Reaction_Names = model.rxnNames(ANA_rxnID);
Reaction_Formulas = printRxnFormula(model,ANA_Reactions,0);
T = table(Reaction_Names,Reaction_Formulas,'RowNames',ANA_Reactions)
T =
Reaction_Names Reaction_Formulas
___________________________________ ________________________________________________________________
ICL 'Isocitrate lyase' 'icit[c] -> glx[c] + succ[c] '
MALS 'malate synthase' 'accoa[c] + glx[c] + h2o[c] -> coa[c] + h[c] + mal-L[c] '
ME1 'malic enzyme (NAD)' 'mal-L[c] + nad[c] -> co2[c] + nadh[c] + pyr[c] '
ME2 'malic enzyme (NADP)' 'mal-L[c] + nadp[c] -> co2[c] + nadph[c] + pyr[c] '
PPS 'phosphoenolpyruvate synthase' 'atp[c] + h2o[c] + pyr[c] -> amp[c] + 2 h[c] + pep[c] + pi[c] '
PPCK 'phosphoenolpyruvate carboxykinase' 'atp[c] + oaa[c] -> adp[c] + co2[c] + pep[c] '
PPC 'phosphoenolpyruvate carboxylase' 'co2[c] + h2o[c] + pep[c] -> h[c] + oaa[c] + pi[c] '
These individual reactions associated with the glycoxylate cycle, gluconeogenesis, and anapleurotic reactions are graphically shown in Figure 23.
Figure 23. Reactions associated with the glycoxylate cycle, gluconeogenesis, and anapleurotic reactions [3].
The anapleurotic reactions (PPC, PPS, PPCK, PPC, ME1, and ME2 ) are interconnecting, reversing and bypassing reactions that replenish TCA cycle intermediates. The glycoxylate cycle (CS, ACONTa, ACONTb, ICL, MALS, MDH, SUCDi and FUM), which includes some TCA cycle reactions, is essential for growth on 3-carbon (pyruvate) and 4-carbon compounds since it can convert the precursor acetyl-CoA into glycolytic intermediates without loss of carbon to carbon dioxide (ICDHyr & AKGDH). Finally, growth on 4-carbon intermediates of the TCA cycle, such as malate, requires that the cell be able to produce phosphoenolpyruvate (pep[c]) for gluconeogenesis. Gluconeogenesis refers to the reversal of flux through the glycolytic pathway. There are two pathways able to fulfill these pep[c] demands. The first pathway involves the conversion of malate (mal[c]) to pyruvate (pyr[c]) by a malic enzyme (ME1 or ME2). This is followed by the synthesis of pep[c] from pyr[c] by phosphoenolpyruvate synthase (PPS). Malic enzyme (ME1) reduces one molecule of nad[c] to nadh[c] while converting mal[c] to pyr[c]. A second parallel reaction, ME2 reduces one molecule of nadp[c] to nadph[c].
Now it is time to explore the the impact on the cell of these pathways for different carbon sources. Let's begin by looking at the aerobic operation of the cell growing on acetate. [Timing: Seconds]
% Key parameters for TCA pathway section
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_ac(e)',-10,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l'); % Set at -30 for aerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
% Perform FBA with Biomass_Ecoli_core_N(w/GAM)_Nmet2 as the objective,
FBAsolution = optimizeCbModel(model,'max',0,0);
% Import E.coli core map and adjust parameters
map=readCbMap('ecoli_Textbook_ExportMap');
options.zeroFluxWidth = 0.1;
options.rxnDirMultiplier = 10;
% Draw the flux values on the map "target.svg" which can be opened in FireFox
drawFlux(map, model, FBAsolution.x, options);
A copy of the figure stored in "target.svg" is shown in Figure 24.
Figure 24. Screenshot of the core model with acetate as the carbon source under aerobic conditions.
The active fluxes for this simulaton are given below. [Timing: Seconds]
printFluxVector(model,FBAsolution.x,true) % only prints nonzero fluxes
ACKr 10
ACONTa 7.55253
ACONTb 7.55253
ACt2r 10
AKGDH 5.56768
ATPM 8.39
ATPS4r 24.5049
Biomass_Ecoli_core_w_GAM 0.173339
CO2t -12.6235
CS 7.55253
CYTBD 24.8462
ENO -0.7201
EX_ac(e) -10
EX_co2(e) 12.6235
EX_h(e) -6.52283
EX_h2o(e) 13.8862
EX_nh4(e) -0.945181
EX_o2(e) -12.4231
EX_pi(e) -0.637661
FBA -0.17242
FBP 0.17242
FUM 7.36551
GAPD -0.460786
GLNS 0.0443227
GLUDy -0.900858
H2Ot -13.8862
ICDHyr 5.7547
ICL 1.79783
MALS 1.79783
MDH 8.67231
ME1 0.491034
NADH16 17.4807
NADTRHD 2.5956
NH4t 0.945181
O2t 12.4231
PGI -0.0355344
PGK 0.460786
PGM 0.7201
PIt2r 0.637661
PPCK 0.810081
PTAr -10
RPE -0.124596
RPI -0.124596
SUCDi 7.36551
SUCOAS -5.56768
TALA -0.0310103
TKT1 -0.0310103
TKT2 -0.0935855
TPI -0.17242
It can be seen, using the map and the fluxes listed above, that acetate enters the network at the bottom and flows into the TCA cycle. From there it can be observed that not only is the full TCA cycle operational but so is the glycoxolate cycle. Part of the oaa[c] metabolite flux is then directed through the glycolysis pathway (gluconeogenesis) to the pentose phosphate pathway to create the 4-, 5- and 7-carbon precursors precursors.
Using malate as a carbon source under aerobic conditions is another good example of the role of the glycoxylate cycle, gluconeogenesis, and anapleurotic reactions. The Matlab/COBRA Toolbox code for this example is shown below. [Timing: Seconds]
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_mal_L(e)',-10,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l'); % Set at -30 for aerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
% Perform FBA with Biomass_Ecoli_core_N(w/GAM)_Nmet2 as the objective,
FBAsolution = optimizeCbModel(model,'max',0,0);
% Import E.coli core map and adjust parameters
map=readCbMap('ecoli_Textbook_ExportMap');
options.zeroFluxWidth = 0.1;
options.rxnDirMultiplier = 10;
drawFlux(map, model, FBAsolution.x, options);
A screenshot of the figure stored in "target.svg" is shown in Figure 25.
Figure 25. COBRA Toolbox produced map showing aerobic operation with malate as the carbon source.
The active fluxes for this simulaton are given below. [Timing: Seconds]
printFluxVector(model,FBAsolution.x,true) % only prints nonzero fluxes
ACONTa 4.76529
ACONTb 4.76529
AKGDH 4.3653
ATPM 8.39
ATPS4r 29.0116
Biomass_Ecoli_core_w_GAM 0.370741
CO2t -24.223
CS 4.76529
CYTBD 27.5887
ENO -1.54017
EX_co2(e) 24.223
EX_h(e) -12.5629
EX_h2o(e) 16.9236
EX_mal_L(e) -10
EX_nh4(e) -2.02157
EX_o2(e) -13.7943
EX_pi(e) -1.36384
FBA -0.368776
FBP 0.368776
FUM 4.3653
GAPD -0.98554
GLNS 0.0947984
GLUDy -1.92678
H2Ot -16.9236
ICDHyr 4.76529
MALt2_2 10
MDH 7.16031
ME2 7.20499
NADH16 23.2234
NADTRHD 5.21353
NH4t 2.02157
O2t 13.7943
PDH 6.15475
PGI -0.0760018
PGK 0.98554
PGM 1.54017
PIt2r 1.36384
PPCK 1.73262
RPE -0.266488
RPI -0.266488
SUCDi 4.3653
SUCOAS -4.3653
TALA -0.0663255
TKT1 -0.0663255
TKT2 -0.200163
TPI -0.368776
In this situation, the malate enters the network from the top and flows to the TCA cycle. Part of the malate metabolite flux is converted to be used as the pyruvate precursor while the rest enters the fully operational TCA cycle. Note that the glycoxolate cycle is inactive. Part of the oaa[c] metabolite flux is then directed through the glycolysis pathway (gluconeogenesis), to the pentose phosphate pathway, to create the 4-, 5- and 7-carbon precursors.
4.F. Fermentation
Fermentation is the process of extracting energy from the oxidation of organic compounds without oxygen. The location of the fermentation reactions on the E.coli core map are shown in the Figure 26.
Figure 26. Fermentation reactions highlighted in blue on the E.coli core map [3].
The reactions associated with the fermentation pathways include: [Timing: Seconds]
% Set initial constraints for fermentation metabolism section
FERM_Reactions = transpose({'LDH_D','D_LACt2','PDH','PFL','FORti','FORt2',...
'PTAr','ACKr','ACALD','ALCD2x','ACt2r','ACALDt','ETOHt2r'});
[~,FERM_rxnID] = ismember(FERM_Reactions,model.rxns);
Reaction_Names = model.rxnNames(FERM_rxnID);
Reaction_Formulas = printRxnFormula(model,FERM_Reactions,0);
T = table(Reaction_Names,Reaction_Formulas,'RowNames',FERM_Reactions)
T =
Reaction_Names Reaction_Formulas
____________________________________________________ ____________________________________________________________
LDH_D 'D lactate dehydrogenase' 'lac-D[c] + nad[c] <=> h[c] + nadh[c] + pyr[c] '
D_LACt2 'D-lactate transport via proton symport' 'h[e] + lac-D[e] <=> h[c] + lac-D[c] '
PDH 'pyruvate dehydrogenase' 'coa[c] + nad[c] + pyr[c] -> accoa[c] + co2[c] + nadh[c] '
PFL 'pyruvate formate lyase' 'coa[c] + pyr[c] -> accoa[c] + for[c] '
FORti 'formate transport via diffusion' 'for[c] -> for[e] '
FORt2 'formate transport via proton symport (uptake only)' 'for[e] + h[e] -> for[c] + h[c] '
PTAr 'phosphotransacetylase' 'accoa[c] + pi[c] <=> actp[c] + coa[c] '
ACKr 'acetate kinase' 'ac[c] + atp[c] <=> actp[c] + adp[c] '
ACALD 'acetaldehyde dehydrogenase (acetylating)' 'acald[c] + coa[c] + nad[c] <=> accoa[c] + h[c] + nadh[c] '
ALCD2x 'alcohol dehydrogenase (ethanol)' 'etoh[c] + nad[c] <=> acald[c] + h[c] + nadh[c] '
ACt2r 'acetate reversible transport via proton symport' 'ac[e] + h[e] <=> ac[c] + h[c] '
ACALDt 'acetaldehyde reversible transport' 'acald[e] <=> acald[c] '
ETOHt2r 'ethanol reversible transport via proton symport' 'etoh[e] + h[e] <=> etoh[c] + h[c] '
The reactions, GRPA relationships, and precursors for this section on fermentation are shown in Figure 27 below.
Figure 27. Reactions, GRPA relationships, and precursors for the fermentation metabolism [3].
During aerobic respiration, oxygen is used as the terminal electron acceptor for the oxidative phosphorylation process yielding the bulk of atp[c] required for cells biosynthesis. Anaerobic respiration, on the other hand, refers to respiration without molecular oxygen. In this case, E. coli can only generate atp[c] through substrate level phosphorylation which significantly reduces the amount of atp[c] that can be produced per molecule of glucose. In anaerobic conditions, glycolysis results in the net production of 2 atp[c] per glucose by substrate level phosphorylation. This is compared to the total of 17.5 atp[c] per glucose molecule that can be produced for aerobic respiration [1]. To maintain the necessary energy needed for cellular operation during anaerobic growth, this forces each cell to maintain a large magnitude of flux through the glycolysis pathway to generate the necessary atp[c] to meet the cells growth requirements. This results in a large magnitude efflux of fermentative end products (lactate(lac-D[c]), formate (for[c]), acetate (ac[c]), acetaldehyde (acald[c]), and ethanol (etoh[c])) since there is insufficient atp[c] to assimilate all the carbon into biomass. It should be pointed out that only ~10% of carbon substrate is effectively assimilated into the cell due to the poor energy yield of fermentation.
There are two main fermentive processes included in the core model; homolactic fermentation and mixed acid fermentation. Homolactic fermentation refers to the conversion of pyruvate to lactate as shown on the bottom left of Figure 26 and includes the reactions LDH_D and D_LACt2 . Mixed acid fermentation is the process that converts pyrvate into a mixture of end products including lactate, acetate, succinate, formate, ethanol and includes the following reactions; PDH, PFL, FORti, FORt2, PTAr, ACKr, ACALD, ALCD2x, ACt2r, ACALDt, and ETOHt2r. It should also be pointed out that the end products of each fermentation pathway, with the exception of acetaldehyde, exit the cell along a concentration gradient and transport a proton from the cytoplasm into the extracellular space.
Let's begin our exploration of the fermentation metabolism by determining the secreted bioproducts produced in anaerobic conditions with a glucose carbon source. [Timing: Seconds]
model = changeRxnBounds(model,'EX_glc(e)',-10,'l');
model = changeRxnBounds(model,'EX_o2(e)',0,'l'); % Anaerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
FBAsolution = optimizeCbModel(model,'max',0,0);
printFluxVector(model,FBAsolution.x,true, true) % only prints nonzero fluxes
Biomass_Ecoli_core_w_GAM 0.211663
EX_ac(e) 8.50359
EX_co2(e) -0.378178
EX_etoh(e) 8.27946
EX_for(e) 17.8047
EX_glc(e) -10
EX_h(e) 30.5542
EX_h2o(e) -7.1158
EX_nh4(e) -1.15416
EX_pi(e) -0.778644
With these results we can see that acetate, ethanol, and formate are the mixed fermentation products. Figure 12 shows the cell in this anaerobic condition. Note the flux flow in the paths of the secreted mixed acid fermentation products. Now let's explore the producers and consumers of atp[c] in anaerobic conditions with a glucose carbon source using "surfNet". [Timing: Seconds]
surfNet(model,'atp[c]',0,FBAsolution.x,1,1)
Met #17 atp[c], ATP, C10H12N5O13P3
Consuming reactions with non-zero fluxes :
#11 ATPM (8.39), Bd: 8.39 / 1000, ATP maintenance requirement
atp[c] + h2o[c] -> adp[c] + h[c] + pi[c]
#12 ATPS4r (-5.45205), Bd: -1000 / 1000, ATP synthase (four protons for one ATP)
adp[c] + 4 h[e] + pi[c] <=> atp[c] + h2o[c] + 3 h[c]
#13 Biomass_Ecoli_core_w_GAM (0.21166), Bd: 0 / 1000, Biomass Objective Function with GAM
1.496 3pg[c] + 3.7478 accoa[c] + 59.81 atp[c] + 0.361 e4p[c] + 0.0709 f6p[c] + 0.129 g3p[c] + 0.205 g6p[c] + 0.2557 gln-L[c] + 4.9414 glu-L[c] + 59.81 h2o[c] + 3.547 nad[c] + 13.0279 nadph[c] + 1.7867 oaa[c] + 0.5191 pep[c] + 2.8328 pyr[c] + 0.8977 r5p[c] -> 59.81 adp[c] + 4.1182 akg[c] + 3.7478 coa[c] + 59.81 h[c] + 3.547 nadh[c] + 13.0279 nadp[c] + 59.81 pi[c]
#51 GLNS (0.05412), Bd: 0 / 1000, glutamine synthetase
atp[c] + glu-L[c] + nh4[c] -> adp[c] + gln-L[c] + h[c] + pi[c]
#72 PFK (9.78946), Bd: 0 / 1000, phosphofructokinase
atp[c] + f6p[c] -> adp[c] + fdp[c] + h[c]
Producing reactions with non-zero fluxes :
#3 ACKr (-8.50359), Bd: -1000 / 1000, acetate kinase
ac[c] + atp[c] <=> actp[c] + adp[c]
#75 PGK (-19.4373), Bd: -1000 / 1000, phosphoglycerate kinase
3pg[c] + atp[c] <=> 13dpg[c] + adp[c]
#83 PYK (8.40427), Bd: 0 / 1000, pyruvate kinase
adp[c] + h[c] + pep[c] -> atp[c] + pyr[c]
Show previous steps...
Note that all the atp[c] is produced through substrate phosphorylation through PGK and PYK in the glycolysis pathway and ACKr in the fermentation pathway that produces acetate. Now let's check to see if the majority of the produced nadh[c] is reduced to nad[c] by the fermentation pathways. [Timing: Seconds]
surfNet(model,'nadh[c]',0,FBAsolution.x,1,1)
Met #51 nadh[c], Nicotinamide-adenine-dinucleotide-reduced, C21H27N7O14P2
Consuming reactions with non-zero fluxes :
#1 ACALD (-8.27946), Bd: -1000 / 1000, acetaldehyde dehydrogenase (acetylating)
acald[c] + coa[c] + nad[c] <=> accoa[c] + h[c] + nadh[c]
#10 ALCD2x (-8.27946), Bd: -1000 / 1000, alcohol dehydrogenase (ethanol)
etoh[c] + nad[c] <=> acald[c] + h[c] + nadh[c]
#92 THD2 (3.62919), Bd: 0 / 1000, NAD(P) transhydrogenase
2 h[e] + nadh[c] + nadp[c] -> 2 h[c] + nad[c] + nadph[c]
Producing reactions with non-zero fluxes :
#13 Biomass_Ecoli_core_w_GAM (0.21166), Bd: 0 / 1000, Biomass Objective Function with GAM
1.496 3pg[c] + 3.7478 accoa[c] + 59.81 atp[c] + 0.361 e4p[c] + 0.0709 f6p[c] + 0.129 g3p[c] + 0.205 g6p[c] + 0.2557 gln-L[c] + 4.9414 glu-L[c] + 59.81 h2o[c] + 3.547 nad[c] + 13.0279 nadph[c] + 1.7867 oaa[c] + 0.5191 pep[c] + 2.8328 pyr[c] + 0.8977 r5p[c] -> 59.81 adp[c] + 4.1182 akg[c] + 3.7478 coa[c] + 59.81 h[c] + 3.547 nadh[c] + 13.0279 nadp[c] + 59.81 pi[c]
#49 GAPD (19.4373), Bd: -1000 / 1000, glyceraldehyde-3-phosphate dehydrogenase
g3p[c] + nad[c] + pi[c] <=> 13dpg[c] + h[c] + nadh[c]
Show previous steps...
In this case we can see that the nadh[c] produced in the glycolysis pathway is either oxidized to nad[c] in the ethanol pathway (ACALD, ALCD2x) or converted to nadph[c] for cell biosynthesis through the energy management reactions (THD2).
Now let's expore the impact of pyruvate as the carbon sources in an anaerobic environment. [Timing: Seconds]
% Key parameters for fermentation section
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_pyr(e)',-20,'l');
model = changeRxnBounds(model,'EX_o2(e)',-0,'l'); % Set at -30 for aerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
% Perform FBA with Biomass_Ecoli_core_N(w/GAM)_Nmet2 as the objective,
FBAsolution = optimizeCbModel(model,'max',0,0);
% Import E.coli core map and adjust parameters
map=readCbMap('ecoli_core_map');
options.zeroFluxWidth = 0.1;
options.rxnDirMultiplier = 10;
drawFlux(map, model, FBAsolution.x, options);
A screenshot of that map is shown below (Figure 28).
Figure 28. Screenshot of the core network with pyruate as the carbon source in an anaerobic environment.
From this map we can see that as the pyruvate enters the cell, part of the flux is directed upward through the glycolysis pathway (gluconeogenesis) to the pentose phosphate pathway to create the 4-, 5- and 7-carbon precursors. Part of the flux is also directed to the TCA cycle to feed the nitrogen metabolism, with the remaining flux being directed through the fermentation pathways to produce formate, acetate, and some atp[c] through substrate phosphorylation.
The flux values for this condition are calculated below. [Timing: Seconds]
printFluxVector(model,FBAsolution.x,true) % only prints nonzero reactions
ACKr -19.0039
ACONTa 0.0707136
ACONTb 0.0707136
ACt2r -19.0039
ADK1 0.494123
ATPM 8.39
ATPS4r -5.51453
Biomass_Ecoli_core_w_GAM 0.0655423
CO2t -0.948443
CS 0.0707136
ENO -0.272282
EX_ac(e) 19.0039
EX_co2(e) 0.948443
EX_for(e) 18.2547
EX_h(e) 18.5733
EX_h2o(e) -18.5741
EX_nh4(e) -0.357389
EX_pi(e) -0.24111
EX_pyr(e) -20
FBA -0.0651949
FBP 0.0651949
FORti 18.2547
GAPD -0.174231
GLNS 0.0167592
GLUDy -0.34063
H2Ot 18.5741
ICDHyr 0.0707136
NH4t 0.357389
PDH 1.06555
PFL 18.2547
PGI -0.0134362
PGK 0.174231
PGM 0.272282
PIt2r 0.24111
PPC 0.187818
PPS 0.494123
PTAr 19.0039
PYRt2r 20
RPE -0.0471118
RPI -0.0471118
TALA -0.0117255
THD2 1.12379
TKT1 -0.0117255
TKT2 -0.0353863
TPI -0.0651949
4.G. Nitrogen Metabolism
The final subsystem to be discussed in this tutorial is the nitrogen metabolism. Nitrogen enters the cell as either ammonium ion (nh4[c]), or as a moiety within glutamine (glu-L[c]) or glutamate (gln-L[c]). The E.coli core model covers the pathways between 2-oxoglutarate, L-glutamate, and L-glutamine. The location of the nitrogen metabolism reactions on the E.coli core map is shown in Figure 29.
Figure 29. Nitrogen metabolism reactions highlighted in blue on the E.coli core map [3].
The reactions of the nitrogen metabolism include: [Timing: Seconds]
% Set initial constraints for nitrogen metabolism section
NIT_Reactions = transpose({'GLNabc','GLUt2r','GLUDy','GLNS','GLUSy','GLUN'});
[tmp,NIT_rxnID] = ismember(NIT_Reactions,model.rxns);
Reaction_Names = model.rxnNames(NIT_rxnID);
Reaction_Formulas = printRxnFormula(model,NIT_Reactions,0);
T = table(Reaction_Names,Reaction_Formulas,'RowNames',NIT_Reactions)
T =
Reaction_Names Reaction_Formulas
__________________________________________________________________ _____________________________________________________________________
GLNabc 'L-glutamine transport via ABC system' 'atp[c] + gln-L[e] + h2o[c] -> adp[c] + gln-L[c] + h[c] + pi[c] '
GLUt2r 'L-glutamate transport via proton symport, reversible (periplasm)' 'glu-L[e] + h[e] <=> glu-L[c] + h[c] '
GLUDy 'glutamate dehydrogenase (NADP)' 'glu-L[c] + h2o[c] + nadp[c] <=> akg[c] + h[c] + nadph[c] + nh4[c] '
GLNS 'glutamine synthetase' 'atp[c] + glu-L[c] + nh4[c] -> adp[c] + gln-L[c] + h[c] + pi[c] '
GLUSy 'glutamate synthase (NADPH)' 'akg[c] + gln-L[c] + h[c] + nadph[c] -> 2 glu-L[c] + nadp[c] '
GLUN 'glutaminase' 'gln-L[c] + h2o[c] -> glu-L[c] + nh4[c] '
The reactions, GRPA relationships, and precursors for this section on the nitrogen metabolism are shown in the Figure 30 below.
Figure 30. Reactions GRPA relationships, and precursors associated with the nitrogen metabolism [3].
Note that the precursors supported by nitrogen metaboism are proline and arginine.
In this simple model, one of the potential sources of nitrogen is through ammonium which is transported into the cell through a transporter (NH4t). Within the cell there are only two reactions (GLNS, GLUDy) that can also assimulate the needed nitrogen into the cell. This can be seen using the "surfNet" function. [Timing: Seconds]
surfNet(model,'nh4[c]',0,FBAsolution.x,1,1)
Met #54 nh4[c], Ammonium, H4N
Consuming reactions with non-zero fluxes :
#51 GLNS (0.01676), Bd: 0 / 1000, glutamine synthetase
atp[c] + glu-L[c] + nh4[c] -> adp[c] + gln-L[c] + h[c] + pi[c]
#53 GLUDy (-0.34063), Bd: -1000 / 1000, glutamate dehydrogenase (NADP)
glu-L[c] + h2o[c] + nadp[c] <=> akg[c] + h[c] + nadph[c] + nh4[c]
Producing reactions with non-zero fluxes :
#69 NH4t (0.35739), Bd: -1000 / 1000, ammonia reversible transport
nh4[e] <=> nh4[c]
Show previous steps...
Nitrogen can also enter the cell through the uptake of glutamate or glutamine. As a reminder, the default settings for the core model do not allow any amino acids to enter the core model. To change this you would need to use the "changeRxnBounds" COBRA Toolbox function to allow either glutamate or gluamine uptake capability.
Both glutamate and glutamine can serve as both carbon and nitrogen sources under aerobic conditions. An example of glutamate serving as both carbon and nitrogen source is shown in the COBRA code and Figure 31 below. [Timing: Seconds]
% Key parameters for fermentation section
model = changeRxnBounds(model,'EX_glc(e)',-0,'l');
model = changeRxnBounds(model,'EX_glu_L(e)',-20,'l');
model = changeRxnBounds(model,'EX_nh4(e)',-0,'l');
model = changeRxnBounds(model,'EX_o2(e)',-30,'l'); % Set at -30 for aerobic
model = changeObjective(model,'Biomass_Ecoli_core_w_GAM');
% Perform FBA with Biomass_Ecoli_core_N(w/GAM)_Nmet2 as the objective,
FBAsolution = optimizeCbModel(model,'max',0,0);
% Import E.coli core map and adjust parameters
map=readCbMap('ecoli_core_map');
options.zeroFluxWidth = 0.1;
options.rxnDirMultiplier = 10;
drawFlux(map, model, FBAsolution.x, options);
Figure 31. A screenshot of glutamate serving as both carbon and nitrogen source.
In this figure, it can be seen that glutamate enters the cell in the lower right. It passes through the nitrogen metabolism producing 2-oxogluarate (akg[c]) which then feeds the upper part of the TCA cycle. The anapleurotic reactions and gluconeogenesis support the flux necessary to create the the 4-, 5- and 7-carbon precursors. Part of the flux from the TCA cycle is also directed to the fermentation pathway precursors in addition to secreting both formate and acetate.
The fluxes for this example are shown below: [Timing: Seconds]
printFluxVector(model,FBAsolution.x,true) % only prints nonzero reactions
ACKr -4.71094
ACt2r -4.71094
AKGDH 18.8317
ATPM 8.39
ATPS4r 57.8269
Biomass_Ecoli_core_w_GAM 1.08283
CO2t -38.0058
CYTBD 60
ENO -4.49838
EX_ac(e) 4.71094
EX_co2(e) 38.0058
EX_for(e) 6.49219
EX_glu_L(e) -20
EX_h(e) -7.0754
EX_h2o(e) 5.89349
EX_nh4(e) 14.0956
EX_o2(e) -30
EX_pi(e) -3.98339
FBA -1.07709
FBP 1.07709
FORti 6.49219
FUM 18.8317
GAPD -2.87847
GLNS 0.276878
GLUDy 14.3724
GLUt2r 20
H2Ot -5.89349
MDH 6.99516
ME2 11.8366
NADH16 41.1683
NADTRHD 12.1021
NH4t -14.0956
O2t 30
PDH 2.27697
PFL 6.49219
PGI -0.221979
PGK 2.87847
PGM 4.49838
PIt2r 3.98339
PPCK 5.06048
PTAr 4.71094
RPE -0.778335
RPI -0.778335
SUCDi 18.8317
SUCOAS -18.8317
TALA -0.193717
TKT1 -0.193717
TKT2 -0.584617
TPI -1.07709
Since the normal source of nadh[c] from the glycolysis pathway is not availabe during gluconeogenesis, let's explore where the nadh[c] is produced and consumed. [Timing: Seconds]
surfNet(model,'nadh[c]',0,FBAsolution.x,1,1)
Met #51 nadh[c], Nicotinamide-adenine-dinucleotide-reduced, C21H27N7O14P2
Consuming reactions with non-zero fluxes :
#49 GAPD (-2.87847), Bd: -1000 / 1000, glyceraldehyde-3-phosphate dehydrogenase
g3p[c] + nad[c] + pi[c] <=> 13dpg[c] + h[c] + nadh[c]
#67 NADH16 (41.1683), Bd: 0 / 1000, NADH dehydrogenase (ubiquinone-8 & 3 protons)
4 h[c] + nadh[c] + q8[c] -> 3 h[e] + nad[c] + q8h2[c]
Producing reactions with non-zero fluxes :
#8 AKGDH (18.8317), Bd: 0 / 1000, 2-Oxoglutarate dehydrogenase
akg[c] + coa[c] + nad[c] -> co2[c] + nadh[c] + succoa[c]
#13 Biomass_Ecoli_core_w_GAM (1.08283), Bd: 0 / 1000, Biomass Objective Function with GAM
1.496 3pg[c] + 3.7478 accoa[c] + 59.81 atp[c] + 0.361 e4p[c] + 0.0709 f6p[c] + 0.129 g3p[c] + 0.205 g6p[c] + 0.2557 gln-L[c] + 4.9414 glu-L[c] + 59.81 h2o[c] + 3.547 nad[c] + 13.0279 nadph[c] + 1.7867 oaa[c] + 0.5191 pep[c] + 2.8328 pyr[c] + 0.8977 r5p[c] -> 59.81 adp[c] + 4.1182 akg[c] + 3.7478 coa[c] + 59.81 h[c] + 3.547 nadh[c] + 13.0279 nadp[c] + 59.81 pi[c]
#64 MDH (6.99516), Bd: -1000 / 1000, malate dehydrogenase
mal-L[c] + nad[c] <=> h[c] + nadh[c] + oaa[c]
#68 NADTRHD (12.1021), Bd: 0 / 1000, NAD transhydrogenase
nad[c] + nadph[c] -> nadh[c] + nadp[c]
#71 PDH (2.27697), Bd: 0 / 1000, pyruvate dehydrogenase
coa[c] + nad[c] + pyr[c] -> accoa[c] + co2[c] + nadh[c]
Show previous steps...
We can see here that there are many sources of nadh[c] production including: AKGDH and MDH from the reductive pathways of the TCA cycle, the anapleurotic reaction ME1, PDH from the fermentation metabolism, and even with the energy management reactions where excess nadph[c] is converted to nadh[c]. The consumers are primarily NADH16 where it provides the reducing power necessary for the electron transport chain and GAPD which is required for the operaton of gluconeogenesis.
5. Conclusion
This wraps up the tutorial on the E.coli core model. It has attempted to show how the COBRA toolbox can be used to explore a genome-scale metabolic network reconstruction using the core model as an example. Now with this beginning skill set you can start exploring the larger and more accurate network reconstructions!
6. Reflective Questions
- What is the difference between glycolysis and gluconeogenesis?
- What reactions make-up the glycolysis pathway?
- What metabolites are created in the glycolysis pathway?
- What is the final metabolite created by the glycolysis pathway?
- What are the biosynthetic precursors created by the glycolysis pathway?
- What are the biosynthetic precursors created by the pentose phosphate pathway?
- What is the difference between the oxidative and non-oxidative pathways of the pentose phosphate pathway?
- What reactions make-up the pentose phosphate pathway?
- What metabolites are created in the pentose phosphate pathway?
- What are the different names for the TCA cycle?
- What are the biosynthetic precursors created by the TCA cycle?
- What is the oxidative pathway in the TCA cycle?
- What reactions make-up the TCA cycle?
- What metabolites are created in the TCA cycle?
- What is the anapleurotic pathway?
- What is the glycoxylate cycle?
- What reactions make-up the anapleurotic pathway and the glycoxylate cycle?
- What metabolites are created in the anapleurotic pathway and the glycoxylate cycle?
- What reactions make-up the core models oxidative phosphorylation and electron transfer chain?
- What metabolites are created in the core models oxidative phosphorylation and electron transfer chain?
- What reactions make-up the fermentation pathways?
- What metabolites are created in the fermentation pathways?
- What are the biosynthetic precursors created by the nitrogen metabolism?
- What reactions make-up the nitrogen metabolism?
- What metabolites are created in the nitrogen metabolism?
- What is the purpose of the "changeCobraSolver" function?
- What is the purpose of the "readCbMap" function?
- What are geneIDs?
- What is the purpose of the "printLabeledData" function?
- What is the purpose of the "findRxnsFromGenes" function?
- Describe the capabilities of the "surfNet" function?
- What are the default model constraints for the E.coli core model?
- What is the purpose of the "findRxnIDs" function?
- What is the purpose of the objective function?
- What is the purpose of the biomass reaction?
- Describe the capabilities of the "printFluxVector" function?
- What are the units of flux in the COBRA models?
- What is the purpose of the "computeFluxSplits" function?
- Describe the capabilities of the "optimizeCbModel" function?
- What is the purpose of the "changeRxnBounds" function?
- What are the outputs produced by the "optimizeCbModel" function?
7. Tutorial Understanding Enhancement Problems
- Find the maximum atp[c], nadh[c], and nadph[c] that can be produced by the E.coli core model in an aerobic environment assuming a fixed glucose uptake rate of -1 . Hint: For atp[c] you can set ATPM as the objective function but for nadh[c] and nadph[c] you will need to create separate demand functions. See Chapter 19 of Palsson's book [1].
- Compare the difference in the aerobic vs anaerobic flux rate through the glycolysis pathway by setting biomass function to a fixed rate of 0.8739 . Why is the anaerobic flux so much higher than the aerobic flux? Hint: Set the objective function to the glucose exchange reaction.
References
- Palsson, B. (2015). Systems biology : constraint-based reconstruction and analysis. Cambridge, United Kingdom, Cambridge University Press.
- Palsson, B. (2006). Systems biology : properties of reconstructed networks. Cambridge ; New York, Cambridge University Press.
- Orth, Fleming, and Palsson (2010), EcoSal Chapter 10.2.1 - Reconstruction and Use of Microbial Metabolic Networks: the Core Escherichia coli Metabolic Model as an Educational Guide - http://www.asmscience.org/content/journal/ecosalplus/10.1128/ecosalplus.10.2.1#backarticlefulltext
- Becker, S. et al., "Quantitative prediction of cellular metabolism with constraint-based models: The COBRA Toolbox", Nat. Protoc 2, 727-738 (2007).
- Schellenberger J, Que R, Fleming RMT, Thiele I, Orth JD, Feist AM, Zielinski DC, Bordbar A, Lewis NE, Rahmanian S et al., Quantitative prediction of cellular metabolism with constraint-based models: the COBRA Toolbox v2.0 Nat. Protoc 6(9):1290-307 (2011).
- Feist, A. M., Herrgard, M. J., Thiele, I., Reed , J . L., and Palsson, B. 0., (2009). Reconstruction of biochemical networks in microorganisms. Nat. Rev Microbiol 7 : 129-143.
- Price, N. D., Papin, J . A., Schilling, C. H. , and Palsson, B. 0., (2003) Genome-scale microbial in silico models: the constraints-based approach. Trends Biotechnol 21:162-169.
- Orth, J. D., I. Thiele, et al. (2010). "What is flux balance analysis?" Nature biotechnology 28(3): 245-248.
- Schellenberger, J., Park, J. O., Conrad, T. M., and Palsson, B. O., (2010) "BiGG: a Biochemical Genetic and Genomic knowledgebase of large scale metabolic reconstructions", BMC Bioinformatics, 11:213.
- King, Z.A., Lu, J., Draeger, A., Miller, P., Federowicz, S., Lerman, J.A., Palsson, B.O., Lewis, N.E., (2015) "BiGG models: A platform for integrating, standardizing and sharing genome-scale models", Nucleic Acids Research.
- Schaechter, M., Ingraham, J. L., Neidhardt, F. C. (2006), "Microbe", ASM Press, Washington, D. C.
- Edwards, J. S. and B. O. Palsson (2000). "Robustness analysis of the Escherichia coli metabolic network." Biotechnology progress 16(6): 927-939.