Main Content


Specify whether reaction is reversible or irreversible


The Reversible property defines whether a reaction is reversible or irreversible. The rate of the reaction is defined by the ReactionRate property. For a reversible reaction, the reaction rate equation is the sum of the rate of the forward and reverse reactions. The type of reaction rate is defined by the KineticLaw property. If a reaction is changed from reversible to irreversible or vice versa after KineticLaw is assigned, the new ReactionRate is determined only if Type is MassAction. All other Types result in unchanged ReactionRate. For MassAction, the first parameter specified is assumed to be the rate of the forward reaction.


Applies toObject: reaction
Data typeboolean
Data valuestrue, false. Default value is false.


Create a model, add a reaction, and assign the expression for the reaction rate equation.

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

    modelObj = sbiomodel('my_model');
    reactionObj = addreaction(modelObj, 'a -> c + d');
  2. Set the Reversible property for the reactionObj to true and verify this setting.

    set (reactionObj, 'Reversible', true)
    get (reactionObj, 'Reversible')

    MATLAB® returns:

    ans =

    MATLAB returns 1 for true and 0 for false.

    In the next steps the example illustrates how the reaction rate equation is assigned for reversible reactions.

  3. Create a kinetic law object for the reaction object of the type 'MassAction'.

    kineticlawObj = addkineticlaw(reactionObj, 'MassAction');

    reactionObj KineticLaw property is configured to kineticlawObj.

  4. The 'MassAction' kinetic law for reversible reactions has two parameter variables ('Forward Rate Parameter' and 'Reverse Rate Parameter') that you should set. The species variables for MassAction are automatically determined. To set the parameter variables, first create the parameter variables as parameter objects (parameterObj1, parameterObj2) named Kf and Kr and assign the object to kineticlawObj.

    parameterObj1 = addparameter(kineticlawObj, 'Kf');
    parameterObj2 = addparameter(kineticlawObj, 'Kr');
  5. Set the variable names for the kinetic law object.

    set(kineticlawObj,'ParameterVariableNames', {'Kf' 'Kr'});
  6. Verify that the reaction rate is expressed correctly in the reaction object ReactionRate property.

    get (reactionObj, 'ReactionRate')

    MATLAB returns:

    ans =
    Kf*a*b - Kr*c*d