biocrnpyler.mechanisms.Facilitated_Transport_MM

class biocrnpyler.mechanisms.Facilitated_Transport_MM(name='facilitated_membrane_protein_transport', mechanism_type='transport', **kwargs)[source]

Bases: Mechanism

Facilitated diffusion mechanism with Michaelis-Menten kinetics.

A ‘transport’ mechanism that models facilitated diffusion of substrates through membrane carrier proteins. Unlike simple channels, carriers undergo conformational changes to transport substrates across membranes. The mechanism follows Michaelis-Menten kinetics with explicit substrate and product binding steps.

The reaction follows the schema:

\[ {\text{Sub}} + {\text{MC}} \rightleftharpoons {\text{Sub}}\mathord{:}{\text{MC}} \rightarrow {\text{Prod}}\mathord{:}{\text{MC}} \rightarrow {\text{Prod}} + {\text{MC}} \]
where MC is the membrane carrier protein.

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

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

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

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

See also

Simple_Transport

Passive transport through channels.

Primary_Active_Transport_MM

Energy-dependent active transport.

MichaelisMenten

Enzyme mechanism with similar kinetics.

Mechanism

Base class for all mechanisms.

Notes

This mechanism models facilitated diffusion by carrier proteins that alternate between substrate-bound and product-bound conformations. The carrier binds substrate on one side of the membrane, undergoes a conformational change to transport it across, releases it as product, and returns to the original conformation.

Key characteristics:

  • Does not require ATP or other energy sources

  • Transport is driven by concentration gradients

  • Carrier proteins alternate between conformational states

  • Follows Michaelis-Menten saturation kinetics

Common examples include:

  • GLUT transporters for glucose

  • Amino acid carriers

  • Nucleoside transporters

  • Urea transporters

The mechanism uses a GeneralPropensity with a Heaviside function for the initial binding step to enforce directionality based on concentration gradients.

Required parameters for this mechanism:

  • ‘kb_subMC’ : Forward binding rate for substrate to membrane carrier

  • ‘ku_subMC’ : Unbinding rate for substrate from carrier

  • ‘k_trnspMC’ : Conformational change rate (transport step)

  • ‘ku_prodMC’ : Unbinding rate for product from carrier

Examples

Model glucose transport through a GLUT transporter:

>>> glc_in = bcp.Species('glucose', compartment='cytoplasm')
>>> glc_out = bcp.Species('glucose', compartment='external')
>>> carrier = bcp.MembraneChannel(
...     integral_membrane_protein='GlucoseTransporter',
...     substrate=glc_out,
...     external_compartment='external',
...     internal_compartment='cytoplasm',
...     direction='Importer'
... )
>>> mechanism = bcp.Facilitated_Transport_MM()
>>> mixture = bcp.Mixture(
...     components=[carrier],
...     mechanisms={'transport': mechanism},
...     parameters={
...         'kb_subMC': 1.0, 'ku_subMC': 0.5,
...         'k_trnspMC': 0.8, 'ku_prodMC': 0.5
...     }
... )
>>> mixture.compile_crn()

Methods

update_reactions

Generate reactions for facilitated transport.

update_species

Generate species for facilitated transport.

update_reactions(membrane_carrier, substrate, product, complex_dict=None, component=None, part_id=None, **kwargs)[source]

Generate reactions for facilitated transport.

Creates four reactions representing the complete transport cycle: substrate binding, substrate unbinding, conformational change (transport), and product release.

Parameters:
  • membrane_carrier (Species) – The membrane carrier protein facilitating transport.

  • substrate (Species) – The substrate species being transported.

  • product (Species) – The product species after transport.

  • complex_dict (dict, optional) – Pre-defined dictionary of complex species. If None, complexes are automatically created using the same logic as in update_species.

  • component (Component) – Component containing parameter values. Required for parameter lookup.

  • part_id (str) – Identifier for parameter lookup in the component’s parameter database. Required for parameter lookup.

  • **kwargs – Additional keyword arguments (unused).

Returns:

List of four reactions: [substrate_binding, substrate_unbinding, transport_step, product_release].

Return type:

list of Reaction

Raises:

AttributeError – If component or part_id is None (required for parameter lookup).

Notes

The reaction scheme follows this pathway:

  1. MC + Sub \(\rightleftharpoons\) MC:Sub (GeneralPropensity with Heaviside function using ‘kb_subMC’)

  2. MC:Sub \(\rightarrow\) MC + Sub (irreversible, rate: ‘ku_subMC’)

  3. MC:Sub \(\rightarrow\) MC:Prod (conformational change, rate: ‘k_trnspMC’)

  4. MC:Prod \(\rightarrow\) MC + Prod (irreversible, rate: ‘ku_prodMC’)

The initial binding step uses a GeneralPropensity with a Heaviside function to enforce concentration gradient-driven directionality. The Heaviside function ensures transport only occurs when substrate concentration exceeds product concentration.

update_species(membrane_carrier, substrate, product, complex_dict=None, **kwargs)[source]

Generate species for facilitated transport.

Creates species for the membrane carrier, substrate, product, and the two intermediate complexes formed during the transport cycle.

Parameters:
  • membrane_carrier (Species) – The membrane carrier protein that facilitates transport.

  • substrate (Species) – The substrate species being transported (typically intracellular side).

  • product (Species) – The product species after transport (typically extracellular side). Usually the same molecular species as substrate but in a different compartment.

  • complex_dict (dict, optional) – Pre-defined dictionary of complex species with keys ‘sub:MC’ and ‘prod:MC’. If None, complexes are automatically created.

  • **kwargs – Additional keyword arguments (unused).

Returns:

List containing [membrane_carrier, substrate, product, complex_array] where complex_array is a list of two Complex species: [substrate:carrier, product:carrier].

Return type:

list

Notes

The method creates two complex species representing intermediates in the transport cycle:

  1. sub:MC : substrate:membrane_carrier complex

  2. prod:MC : product:membrane_carrier complex