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);
 
% Glucose aerobic flux
FBAsolution = optimizeCbModel(model,'max',0,0);
Glucose_Aerobic_Flux = round(FBAsolution.x(ppp_rxnID),3);
 
% Fructose aerobic flux
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');
 
% Glucose anaerobic flux
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]
model = e_coli_core;
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 = e_coli_core;
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);
Document Written
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 = e_coli_core;
% Pyruvate aerobic flux
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
model = e_coli_core;
ANA_Reactions = transpose({'ICL','MALS','ME1','ME2','PPS','PPCK',...
'PPC'});
[~,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 = e_coli_core;
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);
Document Written
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 = e_coli_core;
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);
Document Written
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
model = e_coli_core;
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 = e_coli_core;
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 = e_coli_core;
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);
Document Written
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
model = e_coli_core;
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 = e_coli_core;
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);
Document Written
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

7. Tutorial Understanding Enhancement Problems

  1. 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].
  2. 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

  1. Palsson, B. (2015). Systems biology : constraint-based reconstruction and analysis. Cambridge, United Kingdom, Cambridge University Press.
  2. Palsson, B. (2006). Systems biology : properties of reconstructed networks. Cambridge ; New York, Cambridge University Press.
  3. 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
  4. Becker, S. et al., "Quantitative prediction of cellular metabolism with constraint-based models: The COBRA Toolbox", Nat. Protoc 2, 727-738 (2007).
  5. 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).
  6. 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.
  7. 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.
  8. Orth, J. D., I. Thiele, et al. (2010). "What is flux balance analysis?" Nature biotechnology 28(3): 245-248.
  9. 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.
  10. 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.
  11. Schaechter, M., Ingraham, J. L., Neidhardt, F. C. (2006), "Microbe", ASM Press, Washington, D. C.
  12. Edwards, J. S. and B. O. Palsson (2000). "Robustness analysis of the Escherichia coli metabolic network." Biotechnology progress 16(6): 927-939.