competitive enzymatic inhibition matlab sbiomodel

28 ビュー (過去 30 日間)
james berry
james berry 2018 年 3 月 7 日
回答済み: Florian Augustin 2018 年 3 月 8 日
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);

回答 (1 件)

Florian Augustin
Florian Augustin 2018 年 3 月 8 日
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);

カテゴリ

Help Center および File ExchangeExtend Modeling Environment についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by