Difficulty in adding a new substrate

15 views
Skip to first unread message

Nandini Kannoju

unread,
Jun 5, 2024, 5:05:55 PMJun 5
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. I'm currently facing an issue with achieving the desired flux through the added metabolite as a substrate.

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 my code for your reference

% 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 p-coumarate to the model using the struct's ID
model = addMetabolite(model, 'p_coumarate[e]',...
'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 the exchange reaction for p-coumarate
model = addReaction(model, 'EX_p_coumarate[e]', 'metaboliteList', {'p_coumarate[c]'},...
'stoichCoeffList', -1);
model= addExchangeRxn(model, {'p_coumarate[e]','p_coumarate[c]'});
%Add reaction between p-coumarate and 4-hydroxybenzoate
model = addReaction(model,'PCOUM2HBA','reactionFormula','p_coumarate[c] => 4-Hydroxybenzoate');

Almut Heinken

unread,
Jun 7, 2024, 10:24:52 AMJun 7
to cobra-...@googlegroups.com
Hello,
it seems you are missing a transport reaction for p-coumarate (you need that besides the exchange reaction). You also need to make sure there is a reaction consuming 4-hydroxybenzoate.
Best regards,
Almut

--

---
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/a3726298-b4a0-49b3-97db-55b711831317n%40googlegroups.com.

Nandini Kannoju

unread,
Jun 7, 2024, 2:18:31 PMJun 7
to cobra-...@googlegroups.com

Hello Almut,

Thanks for your reply.

I have added the transport reactions and the reactions that consume 4-Hydroxybenzoate. Here are all the reactions I added to enable the uptake of the new substrate. If you don't mind, could you please review my code and let me know if any corrections are needed?

Thank you!

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 p-coumarate to the model using the struct's ID
model = addMetabolite(model, 'p_coumarate[e]',...
'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[e]'},...
'stoichCoeffList', -1);
%model = addReaction(model, 'EX_p_coumarate_e', 'reactionFormula', 'p_coumarate[c] <=>');
%model= addExchangeRxn(model, {'p_coumarate_e','p_coumarate_c'});
% Add the transport reaction for p_coumarate
model = addReaction(model, 'pcoumaratetex', 'reactionFormula', 'p_coumarate[e] -> p_coumarate[c]');
%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[c]-> 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[c] -> Succinyl-CoA + Acetyl-CoA');for j = 1:1:10
% Set the uptake rate for p-coumarate:
model = changeRxnBounds(model,'EX_p_coumarate_e',-j,'l');
% Set the objective function to biomass reaction:
model = changeObjective(model, 'Growth');
% Perform FBA to calculate biomass production:
solution_biomass = optimizeCbModel(model);
biomass_production_values(j) = solution_biomass.f;
end
disp(biomass_production_values);





Almut Heinken

unread,
Jun 12, 2024, 5:38:56 AMJun 12
to cobra-...@googlegroups.com
Hello,
it does seem like every metabolite is connected. Are you getting flux through the pathway now?
However, it seems that for the reaction from beta_ketoadipate to beta_ketoadipyl_CoA, CoA is not appearing on the substrate side and similarly, in the next step, one CoA molecule disappears.
I would also recommend being consistent with the namespace and having every metabolite have the compartment identifier.
Best regards,
Almut

Reply all
Reply to author
Forward
0 new messages