Skip to content

Rate laws

A rate law is the formula giving the flux through one process. Each process in a Model Realization has one active rate law and may keep others alongside it as inactive alternatives.

The Edit Rate Law dialog

Right-click a process in a Model Realization's diagram and choose Edit Rate Law…, or press Edit Rate Law in the process's Properties dialog. The dialog has five parts, top to bottom.

The rate-law list. Every rate law defined for this process, with an Active checkbox, a Name, and a preview of the formula. Tick a different Active box to switch the realization to that law. The preview wraps, so long modular laws can be compared side by side, and its symbols are live — double-click a state or process symbol to see it in the diagram, or a parameter to jump to it.

The typeset formula. The selected law rendered as mathematics, with divisions stacked as fractions. This is the fastest way to spot a misplaced parenthesis.

The formula editor. Where you type. It works in symbols — S123 for a state, P456 for another process's flux — and validates as you type, showing a one-line message when the formula will not parse. Selecting a state in the list below and pressing the insert button drops its symbol at the cursor.

Process States and Parameters. The left table lists every state that takes part in the process with its symbol, name and role; the right lists the parameters the formula uses, with their default values, which you can edit here.

The buttons. Symbols… opens the model's symbol table — every symbol, its short form, and its full name. Default… builds a rate law for you (below). + and add and delete rate laws.

Letting ProcessDB write the law

Default… reads the process — its reactants, products, enzymes, activators, and inhibitors, and their stoichiometry — and opens the Default Rate Law dialog. Its first question is which kind of law to build.

Mass action / Michaelis–Menten

The classical default, chosen by the shape of the process:

  • Synthesis (no reactants): a single rate constant, multiplied by any enzymes present and divided through by inhibition factors.
  • Degradation and conversion: mass action k · ∏Sᵢ when there is no enzyme; one Michaelis–Menten term per enzyme, multiplied together, when there is.
  • Inhibitors contribute a factor 1/(1 + I/Ki) each.

Parameter names are built from the process name where possible (kcat_Hxknse, Km_Glcse), falling back to the reactant molecule names, and finally to the process ID. If a name would collide with one already in the model, the process ID is appended.

Modular rate laws

The modular rate laws of Liebermeister, Uhlendorf and Klipp (Bioinformatics 2010) are a family of thermodynamically consistent reversible laws that share one algebraic skeleton:

v = u · f · T / (D + Dreg)

where u is the enzyme level, f a prefactor for allosteric regulators, T a reversible numerator built from the substrate and product terms, and D a saturation denominator whose shape names the variant. The dialog offers:

Choice Denominator When to use it
Modular — from roles (CM if enzymatic, else PM) CM if the process has an enzyme, PM otherwise The recommended starting point — each process gets the variant that suits it
Modular — Common (CM) ψ⁺ + ψ⁻ − 1 The general-purpose reversible enzymatic law
Modular — Direct binding (DM) θ⁺ + θ⁻ + 1 Substrates and products bind directly to the free enzyme
Modular — Simultaneous binding (SM) ψ⁺ · ψ⁻ Random-order binding of both sides
Modular — Power-law (PM) 1 Non-enzymatic and generalised mass-action steps
Modular — Force-dependent (FM) √(θ⁺ · θ⁻) The thermodynamic form driven by reaction affinity

A reactant's stoichiometric coefficient becomes its exponent in these laws, so a coefficient of 2 on the diagram is a squared term in the equation.

How regulators enter a modular law

When the process has activators or inhibitors, the Default Rate Law dialog has a second part, How each regulator enters the rate law: one row per regulator, captioned with its symbol, its name and its role, and a choice of forms. It applies to the modular laws only — the mass-action family always treats an inhibitor as non-competitive.

For an inhibitor Enters the rate law as
Non-competitive — the default for an Inhibitor Prefactor 1/(1 + I/Ki) on the whole rate
Partial (hyperbolic) Prefactor ρ + (1 − ρ)/(1 + I/Ki), with ρ fitted
Competitive I/Ki added to the denominator, beside the substrate terms
For an activator Enters the rate law as
Essential Prefactor (A/Ka)/(1 + A/Ka) — no activator, no rate
Non-essential — the default for an Activator, Regulator or Modifier Prefactor ρ + (1 − ρ)·(A/Ka)/(1 + A/Ka), with ρ fitted
Specific Ka/A added to the denominator; must bind before the substrate

The parameters are named Ki, Ka and rho after the state and the process, so they are easy to find in the Parameter Explorer.

The choice shapes the one law you are building and is written into its formula. Nothing is recorded on the diagram — a role says that a state regulates a process, and the rate law says how — so the same process can carry a competitive and a non-competitive alternative side by side, and switching between them is a matter of which Active box is ticked. To change the mechanism of an existing law, press Default… again and choose differently; the old law stays in the list.

Fill Defaults and Change All Rate Laws… in the Action Items panel do not ask this question — they build every law with each regulator's role default.

Forward/reverse arrow pairs

Some diagrams draw a reversible reaction as two arrows with mirrored substrates and products. Three choices handle that case:

  • Modular — CM split: + term here, − term on the reverse arrow — applied to the arrow you are editing, it gives that arrow the positive (kf) term and its mirrored partner the negative (kr) term, built so both share one parameter set. The difference of the two fluxes is then exactly the reversible CM law. It is offered only from the Edit Rate Law dialog.
  • Modular — CM forward term only (kf) and Modular — CM reverse term only (kr) apply one half to one arrow, when you want to choose which arrow is which yourself.

Each half keeps the full two-sided denominator; that is what makes the pair add up correctly.

ProcessDB does not guess which arrow is the reverse

A process named revIDH2 is not necessarily the reverse of IDH2. Reverse partners are found by topology — the substrates of one are the products of the other — never by name. If no such partner exists, the split choice says so and creates nothing; build the two halves with the forward-only and reverse-only choices instead.

Working with alternatives

Because a process can carry several rate laws with only one active, the natural workflow is:

  1. Build a default and look at the fit.
  2. Press Default… again with a different kind; the old law stays in the list.
  3. Tick whichever Active box you want and re-simulate.

Change All Rate Laws… in the Action Items panel does the same thing for every process at once, and is likewise non-destructive.

Rate laws and the equations

Changing a rate law makes every MOE built on this realization out of date. Those MOEs say so with a banner above their equation listing; press Regenerate there, or Regenerate Equations for All MOEs on the realization, when you are ready. See The equation listing.