biocrnpyler.mechanisms.MichaelisMentenReversible

class biocrnpyler.mechanisms.MichaelisMentenReversible(name='michaelis_menten_reverse_binding', mechanism_type='catalysis')[source]

Bases: Mechanism

Reversible Michaelis-Menten kinetics with product binding.

A ‘catalysis’ mechanism implementing Michaelis-Menten enzyme kinetics where the product can also bind reversibly to the enzyme. Both the substrate and product form distinct enzyme complexes, and the catalytic step itself is reversible.

The reaction scheme is

\[{\text{S}} + {\text{E}} \rightleftharpoons {\text{S}}\mathord{:}{\text{E}} \rightleftharpoons {\text{E}}\mathord{:}{\text{P}} \rightleftharpoons {\text{E}} + {\text{P}}, \]

where S is the substrate, E is the enzyme, S:E is the enzyme-substrate complex, E:P is the enzyme-product complex, and P is the product.

Parameters:
  • name (str, default 'michaelis_menten_reverse_binding') – Name identifier for this mechanism instance.

  • mechanism_type (str, default 'catalysis') – Type classification of this mechanism.

Attributes:
  • name (str) – Name of the mechanism instance.

  • mechanism_type (str) – Type classification (‘catalysis’).

See also

MichaelisMenten

Standard Michaelis-Menten with irreversible catalysis.

MichaelisMentenCopy

Michaelis-Menten preserving substrate.

Mechanism

Base class for all mechanisms.

Notes

This mechanism generates three mass-action reactions:

  1. Reversible substrate binding: S + E \(\rightleftharpoons\) S:E (rates ‘kb1’ and ‘ku1’)

  2. Reversible product binding: P + E \(\rightleftharpoons\) E:P (rates ‘kb2’ and ‘ku2’)

  3. Reversible catalysis: S:E \(\rightleftharpoons\) E:P (rates ‘kcat’ and ‘kcat_rev’)

Common applications include:

  • Reversible enzymatic reactions near equilibrium

  • Bidirectional metabolic pathways

  • Reactions where product inhibition is significant

  • Detailed kinetic models requiring thermodynamic consistency

Required parameters for this mechanism:

  • ‘kb1’ : Forward binding rate for substrate-enzyme association

  • ‘ku1’ : Reverse unbinding rate for substrate-enzyme dissociation

  • ‘kb2’ : Forward binding rate for product-enzyme association

  • ‘ku2’ : Reverse unbinding rate for product-enzyme dissociation

  • ‘kcat’ : Forward catalytic rate constant (S:E \(\rightarrow\) E:P)

  • ‘kcat_rev’ : Reverse catalytic rate constant (E:P \(\rightarrow\) S:E)

This mechanism is particularly useful when modeling reactions close to equilibrium where the reverse reaction and product binding cannot be neglected.

Examples

Model a reversible enzymatic conversion:

>>> enzyme = bcp.Species('E', material_type='protein')
>>> substrate = bcp.Species('S')
>>> product = bcp.Species('P')
>>> comp = bcp.Enzyme(
...     enzyme, substrates=[substrate], products=[product],
...     mechanisms={'catalysis': bcp.MichaelisMentenReversible()},
...     parameters={
...         'kb1': 2.0, 'ku1': 0.5,
...         'kb2': 1.5, 'ku2': 0.3,
...         'kcat': 1.0, 'kcat_rev': 0.4
...     }
... )
>>> mixture = bcp.Mixture(components=[comp])
>>> mixture.compile_crn()
Species = protein_E, S, P, complex_S_protein_E_, complex_P_protein_E_
Reactions = [
    S+protein[E] $\rightleftharpoons$ complex[S:protein[E]]
    P+protein[E] $\rightleftharpoons$ complex[P:protein[E]]
    complex[S:protein[E]] $\rightleftharpoons$ complex[P:protein[E]]
]

Methods

update_reactions

Generate reactions for reversible Michaelis-Menten kinetics.

update_species

Generate species for reversible Michaelis-Menten kinetics.

update_reactions(enzyme, substrate, product, component=None, part_id=None, complex=None, complex2=None, kb=None, ku=None, kcat=None)[source]

Generate reactions for reversible Michaelis-Menten kinetics.

Creates three mass-action reactions implementing reversible Michaelis-Menten enzyme kinetics with product binding: substrate binding, product binding, and reversible catalysis.

Parameters:
  • enzyme (Species) – The enzyme species that catalyzes the reaction.

  • substrate (Species) – The substrate species.

  • product (Species) – The product species.

  • component (Component, optional) – Component containing parameter values. Required if kb, ku, or kcat are not provided directly.

  • part_id (str, optional) – Identifier for parameter lookup. If None, defaults to component.name.

  • complex (Species, optional) – Pre-specified enzyme-substrate complex. If None, automatically creates a Complex([substrate, enzyme]).

  • complex2 (Species, optional) – Pre-specified enzyme-product complex. If None, automatically creates a Complex([product, enzyme]).

  • kb (tuple of (float or Parameter), optional) – Tuple of (kb1, kb2) binding rate constants. If None, kb1 and kb2 retrieved separately from component parameters.

  • ku (tuple of (float or Parameter), optional) – Tuple of (ku1, ku2) unbinding rate constants. If None, ku1 and ku2 retrieved separately from component parameters.

  • kcat (tuple of (float or Parameter), optional) – Tuple of (kcat, kcat_rev) catalytic rate constants. If None, kcat and kcat_rev retrieved separately from component parameters.

Returns:

List containing three reactions: [substrate_binding_reaction, product_binding_reaction, catalysis_reaction].

Return type:

list of Reaction

Raises:

ValueError – If component is None and any of kb, ku, or kcat is not provided.

Notes

The mechanism generates the following reactions:

  1. S + E \(\rightleftharpoons\) S:E (binding, rates ‘kb1’ and ‘ku1’)

  2. P + E \(\rightleftharpoons\) E:P (binding, rates ‘kb2’ and ‘ku2’)

  3. S:E \(\rightleftharpoons\) E:P (catalysis, rates ‘kcat’ and ‘kcat_rev’)

When providing parameters directly (not via component), kb, ku, and kcat should be tuples of two values each.

update_species(enzyme, substrate, product, complex=None, complex2=None)[source]

Generate species for reversible Michaelis-Menten kinetics.

Creates the species involved in reversible Michaelis-Menten enzyme kinetics: enzyme, substrate, product, enzyme-substrate complex, and enzyme-product complex.

Parameters:
  • enzyme (Species) – The enzyme species that catalyzes the reaction.

  • substrate (Species) – The substrate species.

  • product (Species) – The product species.

  • complex (Species, optional) – Pre-specified enzyme-substrate complex. If None, automatically creates a Complex([substrate, enzyme]).

  • complex2 (Species, optional) – Pre-specified enzyme-product complex. If None, automatically creates a Complex([product, enzyme]).

Returns:

List containing [enzyme, substrate, product, complex1, complex2] where complex1 is S:E and complex2 is E:P.

Return type:

list of Species

Notes

Both complexes are automatically generated if not explicitly provided. The enzyme-substrate complex contains [substrate, enzyme] and the enzyme-product complex contains [product, enzyme].