Zero flux through newly added pathway

33 views
Skip to first unread message

Nandini Kannoju

unread,
Feb 23, 2024, 1:27:31 AMFeb 23
to COBRA Toolbox

Hello everyone,

I hope you're all doing well.

This is regarding the pathway which I'm working on. Firstly, I added all the required metabolites, followed by incorporating the first reaction of the pathway, which produces the first intermediate. However, after optimizing the model for this added reaction, I observed that there is zero flux through it.

Both the lists included the newly added metabolites and the reaction, along with the other metabolites and reactions that were already present in the model. I'm currently facing an issue with achieving the desired flux through the added pathway.

Could anyone provide some insights or suggestions on how we can proceed further to successfully incorporate the pathway and ensure the model produces the desired metabolites?

Your input would be greatly appreciated.
Here is the code
clc;
clear all;
initCobraToolbox;
changeCobraSolver('glpk');
% Load SBML model using readCbModel without the 'SBML' argument
model = readCbModel('iCGB21FR.xml');
% Add p-coumarate to the model using the struct's ID
model = addMetabolite(model, 'p_coumarate[c]',...
'metName', 'Trans 4 Hydroxycinnamate C9H7O3',...
'metFormula', 'C9H7O3',...
'Charge', -1, ...
'csense', 'E');
% Add protocatechuate to the model using the struct's ID
model = addMetabolite(model, 'protocatechuate[c]',...
'metName', '3,4-Dihydroxybenzoate',...
'metFormula', 'C7H5O4',...
'Charge', -1, ...
'csense', 'E');
% Add beta-carboxy cis cis muconate to the model using the struct's ID
model = addMetabolite(model, 'beta_carboxy_muconate[c]',...
'metName', 'Cis,cis-Butadiene-1,2,4-tricarboxylate',...
'metFormula', 'C7H3O6',...
'Charge', -3, ...
'csense', 'E');
% Add beta_keto_adipate_enol_lactone to the model using the struct's ID
model = addMetabolite(model, 'beta_keto_adipate_enol_lactone[c]',...
'metName', '5-Oxo-4,5-dihydrofuran-2-acetate',...
'metFormula', 'C6H5O4',...
'Charge', -1, ...
'csense', 'E');
% Add beta_ketoadipate to the model
model = addMetabolite(model, 'beta_ketoadipate[c]',...
'metName', '3-Oxoadipate',...
'metFormula', 'C6H6O5',...
'Charge', -2, ...
'csense', 'E');
% Add beta_ketoadipyl_CoA to the model
model = addMetabolite(model, '3-Oxoadipyl-CoA[c]',...
'metName', '3-Oxoadipate',...
'metFormula', 'C27H37N7O20P3S',...
'Charge', -5, ...
'csense', 'E');
% Add the exchange reaction for p-coumarate
model = addReaction(model, 'EX_p_coumarate[e]', 'metaboliteList', {'p_coumarate[c]'},...
'stoichCoeffList', -1);
% model = addReaction(model, 'EX_p_coumarate_e', 'reactionFormula', 'p_coumarate <=>');
%Add reaction between p-coumarate and 4-hydroxybenzoate
model = addReaction(model,'PCOUM2HBA','reactionFormula','p_coumarate[c] => 4-Hydroxybenzoate');
%Add reaction between 4-hydroxybenzoate and protocatechuate
model = addReaction(model,'HBA2PRPC','reactionFormula','4-Hydroxybenzoate => protocatechuate[c] ');
%Add reaction between protocatechuate and beta carboxy cis cis muconate
model = addReaction(model,'PRPC23CM','reactionFormula','protocatechuate[c] + O2 => beta_carboxy_muconate[c]');
%Add reaction between beta carboxy cis cis muconate and 4-Carboxymuconolactone
model = addReaction(model,'3CM24CM ','reactionFormula','beta_carboxy_muconate[c] => 4-Carboxymuconolactone[c]');
% Add reaction between 4-Carboxymuconolactone and beta keto adipate enol lactone
model = addReaction(model, '4CM2BKAL', 'reactionFormula', '4-Carboxymuconolactone[c] => beta_keto_adipate_enol_lactone[c]');
% Add reaction between beta_keto_adipate_enol_lactone and beta_ketoadipate
model = addReaction(model, 'BKAL2BKAD', 'reactionFormula', 'beta_keto_adipate_enol_lactone[c] => beta_ketoadipate[c]');
% Add reaction between beta_ketoadipate and beta_ketoadipyl_CoA
model = addReaction(model, 'BKAD2BKACoA', 'reactionFormula', 'beta_ketoadipate[c] => beta_ketoadipyl_CoA[c]');
% Add reaction between beta_ketoadipyl_CoA and Succinyl-CoA
model = addReaction(model, 'BKACoA2SUC', 'reactionFormula', 'beta_ketoadipyl_CoA => Succinyl-CoA + Acetyl-CoA');
% Diffusion reactions
%model = changeRxnBounds(model, {'HCO3E'}, 0, 'b');
model = changeRxnBounds(model, {'GLCtex'}, 0, 'b');
model = changeRxnBounds(model, {'FRUtex'}, 0, 'b');
%model = changeRxnBounds(model, {'GLUtex'}, 0, 'b');
%model = changeRxnBounds(model, {'HCO3tex'}, 0, 'b');
model = changeRxnBounds(model, {'ALAtex'}, 0, 'b');
%model = changeRxnBounds(model, {'ARGtex'}, 0, 'b');
model = changeRxnBounds(model, {'GLYtex'}, 0, 'b');
%model = changeRxnBounds(model, {'GLNtex'}, 0, 'b');
%model = changeRxnBounds(model, {'HIStex'}, 0, 'b');
%model = changeRxnBounds(model, {'LEUtex'}, 0, 'b');
%model = changeRxnBounds(model, {'LYStex'}, 0, 'b');
%model = changeRxnBounds(model, {'PROtex'}, 0, 'b');
%model = changeRxnBounds(model, {'SERtex'}, 0, 'b');
model = changeRxnBounds(model, {'UREAtex'}, 0, 'b');
%model = changeRxnBounds(model, {'GLCGLYCtex'}, 0, 'b');
model = changeRxnBounds(model, {'SUCRtex'}, 0, 'b');
model = changeRxnBounds(model, {'PTRCtex'}, 0, 'b');
model = changeRxnBounds(model, {'SPMDtex'}, 0, 'b');
%model = changeRxnBounds(model, {'CYNTtex'}, 0, 'b');
model = changeRxnBounds(model, {'CITtex'}, 0, 'b');
%model = changeRxnBounds(model, {'MALtpp'}, 0, 'b');
%model = changeRxnBounds(model, {'MALtex'}, 0, 'b');
%model = changeRxnBounds(model, {'AKGtex'}, 0, 'b');
%model = changeRxnBounds(model, {'SUCCtpp'}, 0, 'b');
%model = changeRxnBounds(model, {'SUCCtex'}, 0, 'b');
%model = changeRxnBounds(model, {'PYRtex'}, 0, 'b');
%model = changeRxnBounds(model, {'FUMtpp'}, 0, 'b');
%model = changeRxnBounds(model, {'FUMtex'}, 0, 'b');
model = changeRxnBounds(model, {'LDH_D'}, 0, 'b');
% Set the uptake rate for glucose:
model = changeRxnBounds(model, {'EX_glc__D_e'}, -20, 'b');
for j = 1:1:3
% Set the uptake rate for p-coumarate:
model = changeRxnBounds(model,'EX_p_coumarate_e',-j,'b');
% Set the objective function to biomass reaction:
model = changeObjective(model, 'Growth');
% Perform FBA to calculate biomass production:
fbasolution = optimizeCbModel(model,'max');
biomass_production_values(j) = fbasolution.x(1485);
bketoadipate_values(j) = fbasolution.x(1546);
end
disp(bketoadipate_values);
disp(biomass_production_values);

Diana El Assal

unread,
Feb 23, 2024, 3:42:12 AMFeb 23
to cobra-...@googlegroups.com
Hi Nandini,

This is a common issue encountered when adding new pathways. You could try to identify blocked reactions and dead end metabolites or use relaxedFBA by setting the objective function as one of your blocked reactions to identify the causes. 




Best wishes,

Diana

--

---
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-toolbox+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cobra-toolbox/fe042c4e-6960-4ef4-a5a9-3fdf8d63136dn%40googlegroups.com.


--

Ines Thiele

unread,
Feb 23, 2024, 4:36:20 AMFeb 23
to cobra-...@googlegroups.com
Note that you have errors in at least these reactions:

model = addReaction(model,'PCOUM2HBA','reactionFormula','p_coumarate[c] => 4-Hydroxybenzoate');
model = addReaction(model, 'BKACoA2SUC', 'reactionFormula', 'beta_ketoadipyl_CoA => Succinyl-CoA + Acetyl-CoA');

while the first one might be fine as the product appears as substrate in another reaction, it is unlikely that  Succinyl-CoA + Acetyl-CoA are connected to the rest of your network bc 1. they would be present as met abbr rather than names and 2. no compartment is specified


------
Ines Thiele, PhD
Professor in Systems Biomedicine
ERC grant recipient
University of Galway Foundation Research Leadership Programme Awardee
Principal Investigator, APC Microbiome Ireland 
Principal Investigator, Ryan Institute
Principal Investigator, Galway Neuroscience Centre

University of Galway
School of Medicine
School of Biological and Chemical Sciences | Microbiology, 
Orbsen Building | Galway, Ireland

thielelab.eu,
GoogleScholarProfile,
Follow me on Twitter

CONFIDENTIALITY.  The content of this email (including any attachment(s)), is/are confidential and may be privileged and is intended for the addressee only. Any reader of this message who is not the intended recipient is notified that any dissemination, distribution or copying of this communication is prohibited. If you receive this communication in error, please notify me immediately and please also delete all copies from your computer system. Thank you for your co-operation.


To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.


--

--

---
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 on the web visit https://groups.google.com/d/msgid/cobra-toolbox/CALwnsfNJ2voFR46wxXjd1jdijvj7Vg7rc5q7u_mHkk-MUd_WBg%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages