biocrnpyler.mechanisms.MichaelisMentenCopy

class biocrnpyler.mechanisms.MichaelisMentenCopy(name='michaelis_menten_copy', mechanism_type='copy')[source]

Bases: Mechanism

Michaelis-Menten kinetics with substrate preservation.

A ‘copy’ mechanism implementing Michaelis-Menten enzyme kinetics where the substrate is not consumed during the reaction. Instead, the substrate acts as a template that is copied or read, producing a product while preserving the original substrate.

The reaction scheme is

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

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

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

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

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

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

See also

MichaelisMenten

Standard Michaelis-Menten consuming substrate.

BasicProduction

Simpler production without complex formation.

Mechanism

Base class for all mechanisms.

Notes

This mechanism generates two mass-action reactions:

  1. Reversible binding: S + E \(\rightleftharpoons\) S:E (rates ‘kb’ and ‘ku’)

  2. Catalytic copying: S:E \(\rightarrow\) S + E + P (rate ‘kcat’)

Common applications include:

  • Gene transcription (DNA template produces RNA)

  • Translation (mRNA template produces protein)

  • DNA replication

  • Any process where a template is read without being consumed

Required parameters for this mechanism:

  • ‘kb’ : Binding rate constant for enzyme-substrate association

  • ‘ku’ : Unbinding rate constant for enzyme-substrate dissociation

  • ‘kcat’ : Catalytic rate constant for product formation

The key difference from standard Michaelis-Menten is that the substrate appears on both sides of the catalytic step, making it a true copying or templating mechanism rather than a conversion.

Examples

Model translation with component:

>>> mrna = bcp.Species('mRNA')
>>> ribosome = bcp.Species('Ribo')
>>> protein = bcp.species('GFP')
>>> comp = bcp.Enzyme(
...     ribosome, substrates=[mrna], products=[protein],
...     parameters={'kb': 2.0, 'ku': 0.2, 'kcat': 0.1}
... )
>>> mixture = bcp.Mixture(
...     components=[comp],
...     mechanisms={'catalysis': bcp.MichaelisMentenCopy()},
... )
>>> mixture.compile_crn()
Species = Ribo, mRNA, complex_Ribo_mRNA_, GFP
Reactions = [
    mRNA+Ribo $\rightleftharpoons$ complex[Ribo:mRNA]
    complex[Ribo:mRNA] $\rightarrow$ mRNA+GFP+Ribo
]

Methods

update_reactions

Generate reactions for copy-type Michaelis-Menten kinetics.

update_species

Generate species for copy-type Michaelis-Menten kinetics.

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

Generate reactions for copy-type Michaelis-Menten kinetics.

Creates two mass-action reactions implementing copy-type Michaelis-Menten enzyme kinetics: reversible enzyme-substrate binding and catalytic copying that preserves the substrate.

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

  • substrate (Species) – The substrate (template) species that is copied but not consumed.

  • 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]).

  • kb (Parameter or float, optional) – Forward binding rate constant. If None, retrieved from component parameters.

  • ku (Parameter or float, optional) – Reverse unbinding rate constant. If None, retrieved from component parameters.

  • kcat (Parameter or float, optional) – Catalytic rate constant. If None, retrieved from component parameters.

Returns:

List containing two reactions: [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 ‘kb’ and ‘ku’)

  2. S:E \(\rightarrow\) S + E + P (copying, rate ‘kcat’)

The key feature is that the substrate appears on both sides of the catalytic reaction, ensuring it is not consumed. This makes the reaction a true template-based copying mechanism.

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

Generate species for copy-type Michaelis-Menten kinetics.

Creates the species involved in copy-type Michaelis-Menten enzyme kinetics: enzyme, substrate (template), enzyme-substrate complex, and optionally the product(s).

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

  • substrate (Species) – The substrate (template) species that is copied but not consumed.

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

  • product (Species or list of Species, optional) – The product species or list of products. If None, only enzyme, substrate, and complex are returned.

Returns:

List containing [enzyme, substrate, complex] if product is None. If product is provided, returns [enzyme, substrate, complex, product] for single product or [enzyme, substrate, complex] + product for list of products.

Return type:

list of Species

Notes

This method can handle multiple products by accepting product as a list. This is useful for modeling processes like transcription where multiple transcript copies may be produced.