Documentation Center

  • Trial Software
  • Product Updates

addkineticlaw (reaction)

Create kinetic law object and add to reaction object


kineticlawObj = addkineticlaw(reactionObj, 'KineticLawNameValue')

kineticlawObj= addkineticlaw(..., 'PropertyName', PropertyValue, ...)


reactionObjReaction object. Enter a variable name for a reaction object.
KineticLawNameValueProperty to select the type of kinetic law object to create. For built-in kinetic law, valid values are:

'Unknown', 'MassAction', 'Henri-Michaelis-Menten', 'Henri-Michaelis-Menten-Reversible', 'Hill-Kinetics', 'Iso-Uni-Uni', 'Ordered-Bi-Bi', 'Ping-Pong-Bi-Bi', 'Competitive-Inhibition', 'NonCompetitive-Inhibition', and 'UnCompetitive-Inhibition'.

Find valid KineticLawNameValues by using sbioroot to create a SimBiology® root object, then query the object with the commands get(rootObj.BuiltInLibrary, 'KineticLaws') and get(rootObj.UserDefinedLibrary, 'KineticLaws').

sbiowhos -kineticlaw lists kinetic laws in the SimBiology root, which includes kinetic laws from both the BuiltInLibrary and the UserDefinedLibrary.


kineticlawObj = addkineticlaw(reactionObj, 'KineticLawNameValue') creates a kinetic law object and returns the kinetic law object (kineticlawObj).

In the kinetic law object, this method assigns a name (KineticLawNameValue) to the property KineticLawName and assigns the reaction object to the property Parent. In the reaction object, this method assigns the kinetic law object to the property KineticLaw.

modelObj = sbiomodel('cell');
reactionObj = addreaction(modelObj, 'a -> b');
kineticlawObj = addkineticlaw(reactionObj, 'MassAction');
parameterObj = addparameter(kineticlawObj, 'K1_forward', 0.1);
set(kineticlawObj, ParameterVariableName, 'K1_forward');

KineticLawNameValue is any valid kinetic law definition. See Kinetic Law Definition for a definition of kinetic laws and more information about how they are used to get the reaction rate expression.

kineticlawObj= addkineticlaw(..., 'PropertyName', PropertyValue, ...)
constructs a kinetic law object, kineticlawObj, and configures kineticlawObj with property value pairs. The property name/property value pairs can be in any format supported by the function set (for example, name-value string pairs, structures, and name-value cell array pairs). The kineticlawObj properties are listed in Property Summary.

You can view additional kinetic law object properties with the get command. You can modify additional kinetic law object properties with the set command. The kinetic law used to determine the ReactionRate of the Reaction can be viewed with get(reactionObj, 'KineticLaw'). Remove a SimBiology kinetic law object from a SimBiology reaction object with the delete command.

Method Summary

Methods for kinetic law objects

addparameter (model, kineticlaw)Create parameter object and add to model or kinetic law object
copyobj (any object)Copy SimBiology object and its children
delete (any object)Delete SimBiology object
display (any object)Display summary of SimBiology object
get (any object)Get object properties
getparameters (kineticlaw)Get specific parameters in kinetic law object
getspecies (kineticlaw)Get specific species in kinetic law object
reorder (model, compartment, kinetic law)Reorder component lists
set (any object)Set object properties
setparameter (kineticlaw)Specify specific parameters in kinetic law object
setspecies (kineticlaw)Specify species in kinetic law object

Property Summary

Properties for kinetic law objects

Expression (AbstractKineticLaw, KineticLaw)Expression to determine reaction rate equation
KineticLawNameName of kinetic law applied to reaction
NameSpecify name of object
NotesHTML text describing SimBiology object
ParametersArray of parameter objects
ParameterVariableNamesCell array of reaction rate parameters
ParameterVariablesParameters in kinetic law definition
ParentIndicate parent object
SpeciesVariableNamesCell array of species in reaction rate equation
SpeciesVariables Species in abstract kinetic law
TagSpecify label for SimBiology object
TypeDisplay SimBiology object type
UserDataSpecify data to associate with object


Example 1

This example uses the built-in kinetic law Henri-Michaelis-Menten.

  1. Create a model object, and add a reaction object to the model.

    modelObj = sbiomodel ('Cell');
    reactionObj = addreaction (modelObj, 'Substrate -> Product');
  2. Define a kinetic law for the reaction object and view the parameters to be set.

    kineticlawObj = addkineticlaw(reactionObj, 'Henri-Michaelis-Menten');
    get (kineticlawObj, 'Expression')
    ans =
        Vm*S/(Km + S)

    The addkineticlaw method adds a kinetic law to the reaction object (reactionObj).

    The Henri-Michaelis-Menten kinetic law has two parameters (Vm and Km) and one species (S). You need to enter values for these parameters by first creating parameter objects, and then adding the parameter objects to the kinetic law object.

  3. Add parameter objects to a kinetic law object. For example, create parameter objects named Vm_d and Km_d, and add them to a kinetic law object (kineticlawObj).

    parameterObj1 = addparameter(kineticlawObj, 'Vm_d', 'Value', 6.0);
    parameterObj2 = addparameter(kineticlawObj, 'Km_d', 'Value', 1.25);

    The addparameter method creates two parameter objects with values that are associated with the kinetic law parameters.

  4. Associate kinetic law parameters with the parameters in the kinetic law definition.

    set(kineticlawObj,'ParameterVariableNames', {'Vm_d' 'Km_d'});
    set(kineticlawObj,'SpeciesVariableNames', {'Substrate'});

    This method associates the parameters in the property ParameterVariableNames with the parameters in the property ParameterVariables using a one-to-one mapping in the order given.

  5. Verify that the reaction rate is expressed correctly in the reaction object ReactionRate property.

    get (reactionObj, 'ReactionRate')
    ans =
  6. Enter an initial value for the substrate and simulate.

    modelObj.Species(1).InitialAmount = 8;
    [T, X] = sbiosimulate(modelObj);

Example 2

This example uses the built-in kinetic law MassAction.

  1. Create a model object, and then add a reaction object.

    modelObj = sbiomodel ('Cell');
    reactionObj = addreaction (modelObj, 'a -> b');
  2. Define a kinetic law for the reaction object.

    kineticlawObj = addkineticlaw(reactionObj, 'MassAction');
    get(kineticlawObj, 'Expression')
    ans =

    Notice, the property Expression for MassAction kinetic law does not show the parameters and species in the reaction rate.

  3. Assign the rate constant for the reaction.

    parameterObj = addparameter(kineticlawObj, 'k_forward');
    set (kineticlawObj, 'ParameterVariablenames', 'k_forward');
    get (reactionObj, 'ReactionRate')
    ans =
  4. Enter an initial value for the substrate and simulate.

    modelObj.Species(1).InitialAmount = 100;
    [T, X] = sbiosimulate(modelObj);plot(T,X)

    The value used for k_forward is the default value = 1.0.

Was this topic helpful?