competitive enzymatic inhibition matlab sbiomodel
9 views (last 30 days)
Show older comments
I want to simulate a competitive enzymatic model in matlab: S + E - SE -> E + P E + I - EI Where S = substrate, E = enzyme, P = product, ES = enzyme-substrate-complex, I = inhibitor
%r2 = addreaction(m1,' E*S -> E + P ');
%s1 = addspecies(m1, 'S','InitialAmount',10);
%s2 = addspecies(m1, 'E','InitialAmount',1);
%s3 = addspecies(m1, 'P','InitialAmount',0);
%s4 = addspecies(m1, 'I','InitialAmount',10);
%p1 = addparameter(kineticLaw,'Vm',2);
%p2 = addparameter(kineticLaw,'Km',20);
%p3 = addparameter(kineticLaw,'Ki',6);
%m1 = sbiomodel('simpleModel');
m1 = sbiomodel ('simpleModel');
r1 = addreaction (m1, 'S + E -> E + P');
%r1 = addreaction(m1,' S + E <-> E + P ');
%r2 = addreaction(m1, ' E*S -> E + P ');
%r3 = addreaction(m1, ' E + I <-> E*I ');
m1.species(1).InitialAmount = 10;
m1.Species(2).InitialAmount =1;
m1.Species(3).InitialAmount =0;
%m1.Species(5).InitialAmount = 10;
kineticLaw = addkineticlaw(r1,'Competitive-Inhibition');
%kineticLaw = addkineticlaw(r2,'Competitive-Inhibition');
%kineticLaw = addkineticlaw(r3,'Competitive-Inhibition');
p1 = addparameter(kineticLaw,'Km',20);
p2 = addparameter(kineticLaw,'Ki',6);
%p3 = addparameter(kineticLaw,'S',10);
%p4 = addparameter(kineticLaw,'I',10);
p5 = addparameter(kineticLaw,'Vm',2);
%kineticLaw.ParameterVariableNames = 'k';
sd = sbiosimulate(m1);
m1.species
sbioplot(sd);
none of this is working. I provided all the parameter needed. When I want to simulate it an error comes up:
Error using SBCompiler.SimulationObject/simulate --> Error reported from KineticLaw Validation: A parameter variable name on kinetic law '' is empty. The number of parameters on the kinetic law must match the number in its definition, and all parameter names must be set.
--> Error reported from Expression Validation: Invalid reaction rate '' for reaction 'S + E -> E + P'. Reaction rates must be valid MATLAB expressions and cannot end in semicolons, commas, comments ('%' and optional text), or line continuations ('...' and optional text).
Error in sbiosimulate (line 140) [t, x] = simobj.simulate(mobj, cs, variants, doses);
Error in EnzymeKineticsMMwCompInhib1 (line 38) sd = sbiosimulate(m1);
0 Comments
Answers (1)
Florian Augustin
on 8 Mar 2018
Hi,
The ParameterVariableNames and SpeciesVariableNames properties on the kinetic law need to be specified to tell it which parameters/species to use. This seems redundant in your case because you named all parameters/species the same as the names in the built in kinetic law. But SimBiology allows more flexibility here and you can give your species/parameters descriptive names (other than E, S, or P). Hence the variable names have to be explicitly provided to the kinetic law. I hope the following example helps.
Best,
Florian
% Create model and add species:
M = sbiomodel ('CI model');
S = addspecies(M, 'Substrate', 'InitialAmount', 10);
E = addspecies(M, 'Enzyme', 'InitialAmount', 1);
P = addspecies(M, 'Product', 'InitialAmount', 0);
I = addspecies(M, 'Inhibitor', 'InitialAmount', 10);
% Add reaction to model:
R = addreaction(M, 'Substrate + Enzyme <-> Enzyme + Product');
% Add kinetic law:
KineticLaw = addkineticlaw(R, 'Competitive-Inhibition', ...
'ParameterVariableNames', {'Km', 'Ki', 'Vm'}, ...
'SpeciesVariableNames', {'Substrate', 'Inhibitor'});
% Add parameters, whose names have to match the ones specified in
% ParameterVariableNames, but they do not necessarily have to be
% Km, Ki, or Vm in general.
Km = addparameter(KineticLaw, 'Km', 20);
Ki = addparameter(KineticLaw, 'Ki', 6);
Vm = addparameter(KineticLaw, 'Vm', 2);
% Simulate model:
sd = sbiosimulate(M);
% Plot results:
sbioplot(sd);
0 Comments
See Also
Categories
Find more on Extend Modeling Environment in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!