Unexpected Behavior in dynamicFBA with Modified iBB1018 Model

80 views
Skip to first unread message

Amirhossein

unread,
Mar 16, 2025, 3:01:26 AMMar 16
to COBRA Toolbox

Hi everyone,

I’m working with the iBB1018 metabolic model of Bacillus subtilis 168 and have recently added reactions for subtilisin and bacillolysin production (including their amino acid compositions and corresponding ATP, H₂O, etc.). I’m using MATLAB R2024a, COBRA Toolbox 3.0, and GLPK as the solver.

I’m employing the dynamicFBA function to predict biomass accumulation and substrate utilization, but I’m encountering some puzzling results:

goog_2029801128Additionally, the substrate concentration plots show values of 0 at the beginning even though the initial concentrations are set to 22.2 (glucose) and 18.7 (ammonium).
  1. Glucose and Ammonium Medium:

    • When simulating growth in a medium containing glucose and ammonium, the bacterium grows for about 8 hours as expected.
  2. Glutamic Acid Supplementation:

    • On the same base medium supplemented with glutamic acid, the simulation stops after only 30 minutes with the error:
      "No feasible solution - nutrients exhausted."
  3. Alanine Supplementation:

    • With alanine added, dynamicFBA stops after 3 hours stating that nutrients are exhausted, despite glucose and ammonium still being available.
  4. Aspartic Acid Supplementation:

    • When adding aspartic acid, an unexpected increase in the concentration of glucose is observed.
      Additionally, the substrate concentration plots show values of 0 at the beginning even though the initial concentrations are set to 22.2 (glucose) and 18.7 (ammonium).

For context, here are some of the relevant code snippets I’m using:

% Case 1: Glucose and Ammonium only
model = changeRxnBounds(model, 'BiomassRepsolRed', 0.3 * 0.67, 'l');
model = changeRxnBounds(model, 'Target', 0.0065, 'l');
model = changeObjective(model, 'BiomassRepsolRed'); [concentrationMatrix, excRxnNames, timeVec, biomassVec] = dynamicFBA(... model, {'EX_glc__D_e', 'EX_nh4_e'}, [22.2, 18.7], 0.01, 0.5, 120, {'EX_glc__D_e', 'EX_nh4_e'});

 % Case 2: Glucose, Ammonium, and Glutamic Acid
model = changeRxnBounds(model, 'BiomassRepsolRed', 0.3 * 0.67, 'l');
model = changeRxnBounds(model, 'Target', 0.0065, 'l');
model = changeObjective(model, 'BiomassRepsolRed'); [concentrationMatrix, excRxnNames, timeVec, biomassVec] = dynamicFBA(... model, {'EX_glc__D_e', 'EX_nh4_e', 'EX_glu__L_e'}, [22.2, 18.7, 10], 0.01, 0.5, 60, {'EX_glc__D_e', 'EX_nh4_e', 'EX_glu__L_e'});

 % Case 3: Glucose, Ammonium, and Alanine
model = changeRxnBounds(model, 'BiomassRepsolRed', 0.3 * 0.67, 'l');
model = changeRxnBounds(model, 'Target', 0.0065, 'l');
model = changeObjective(model, 'BiomassRepsolRed'); [concentrationMatrix, excRxnNames, timeVec, biomassVec] = dynamicFBA(... model, {'EX_glc__D_e', 'EX_nh4_e', 'EX_ala__L_e'}, [22.2, 18.7, 10], 0.01, 0.5, 60, {'EX_glc__D_e', 'EX_nh4_e', 'EX_ala__L_e'});

 % Case 4: Glucose, Ammonium, and Aspartic Acid
model = changeRxnBounds(model, 'BiomassRepsolRed', 0.3 * 0.67, 'l');
model = changeRxnBounds(model, 'Target', 0.0065, 'l');
model = changeObjective(model, 'BiomassRepsolRed'); [concentrationMatrix, excRxnNames, timeVec, biomassVec] = dynamicFBA(... model, {'EX_glc_e', 'EX_nh4_e', 'EX_asp__L_e'}, [22.2, 18.7, 10], 0.01, 0.5, 60, {'EX_glc__D_e', 'EX_nh4_e', 'EX_asp__L_e'});

Notes:

  • The biomass reaction is constrained to 30% of its maximum (calculated as 0.3 * 0.67) because, according to FBA analysis, only under this constraint is target production (a lumped protein representing the sum of subtilisin and bacillolysin compositions) feasible.
  • I observe similar unexpected behavior even when modeling the production reactions separately.

Does anyone have insights into why:

  • The substrates show initial concentrations of 0 despite being set to non-zero values?
  • dynamicFBA terminates prematurely with “No feasible solution – nutrients exhausted” under these specific supplementation conditions?

Any help or pointers would be greatly appreciated!

Thanks in advance,
Amirhossein

55.jpg
61.jpg
generateSystemConfigReport.m
56.jpg
59.jpg

Andres Mauricio Pinzon Velasco

unread,
Mar 17, 2025, 11:53:47 AMMar 17
to Cobra toolbox
Hi some ideas here:

1. Did you notice that you are using: EX_glc_e  and  EX_glc__D_e  in your model? Maybe this kind of artifacts are creating problems on solutions.
2. Also make sure that exchange reactions are allowing uptake too, particularly for supplemented amino acids. Do they present sufficient Lower bounds flux. This could explain the nutrients exhausted issue. What if just out of curiosity you set this to -1000?
3. Maybe limiting the biomass to 30% shifted pathways making some of them inactive? What if you just run a FBA not dynamic one, do the issue persist?

Hope it helps,

--
Andrés M. Pinzón Ph.D.
Universidad Nacional de Colombia  
     Profesor Asociado - Instituto de Genética 
     Coordinador Maestría en Bioinformática - Facultad de Ingeniería
     Director grupo de Investigación  en Bioinformática Y Biología de Sistemas 


 Research Gate  |  ORCiD   |  GitHub

--

---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cobra-toolbox/16417acf-52f6-48c7-8e3d-a7c2cfead112n%40googlegroups.com.
<55.jpg><61.jpg><generateSystemConfigReport.m><56.jpg><59.jpg>


Aviso legal: El contenido de este mensaje y los archivos adjuntos son confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. Se encuentran dirigidos sólo para el uso del destinatario al cual van enviados. La reproducción, lectura y/o copia se encuentran prohibidas a cualquier persona diferente a este y puede ser ilegal. Si usted lo ha recibido por error, infórmenos y elimínelo de su correo. Los Datos Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra Política de Datos Personales que podrá consultar en la página web www.unal.edu.co. Las opiniones, informaciones, conclusiones y cualquier otro tipo de dato contenido en este correo electrónico, no relacionados con la actividad de la Universidad Nacional de Colombia, se entenderá como personales y de ninguna manera son avaladas por la Universidad.
Message has been deleted

Amirhossein

unread,
Mar 19, 2025, 7:22:38 AMMar 19
to COBRA Toolbox

Many thanks for your assistance. To clarify:

Typo in Exchange Reaction:
The issue was solely with EX_glc__D_e. In my original post, I mistakenly wrote EX_glc_e. My apologies for the confusion.

Uptake Constraints:
I tested the model by setting the lower bound for amino acids to -1000, while the uptake for NH4 and glucose was fixed at -1000 and -8.71 respectively. Despite these changes, I observed exactly the same results.

FBA vs. dFBA Results:
When I ran standard FBA under the same conditions, the simulation was feasible. For example, with glutamate supplementation, FBA yielded a biomass flux of 0.42684, whereas dynamicFBA returned a biomass flux of 0.012379 and the "No feasible solution - nutrients exhausted" message.

Best regards

Reply all
Reply to author
Forward
0 new messages