biocrnpyler.mechanisms.Simple_Transport

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

Bases: Mechanism

Passive transport mechanism through membrane channel proteins.

A ‘transport’ mechanism that models passive, bidirectional transport of substrates through membrane channel proteins. Unlike simple diffusion, this mechanism requires a membrane channel protein but does not consume energy. The channel acts catalytically, binding substrate and product but not being consumed.

The reaction follows the schema:

\[{\text{membrane_channel}} + {\text{substrate}} \rightleftharpoons {\text{membrane_channel}} + {\text{product}}\]

Parameters:
  • name (str, default 'simple_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_Diffusion

Passive diffusion without proteins.

Facilitated_Transport_MM

Transport with MM kinetics.

Primary_Active_Transport_MM

Energy-dependent active transport.

Mechanism

Base class for all mechanisms.

Notes

This mechanism models passive transport through channel proteins such as ion channels, aquaporins, and other pore-forming proteins. The channel facilitates movement down concentration gradients without conformational changes or energy expenditure.

The mechanism requires the membrane channel to have the ‘Passive’ attribute, distinguishing it from active transporters and carriers that require different mechanisms.

Common examples include:

  • Ion channels (K+, Na+, Ca2+ channels)

  • Aquaporins for water transport

  • Gap junctions between cells

  • Porins in bacterial outer membranes

The transport is bidirectional with equal forward and reverse rate constants, reflecting passive equilibration across the membrane.

Required parameters for this mechanism:

  • ‘k_trnsp’ : Transport rate constant (same for both directions)

Examples

Model potassium transport through an ion channel:

>>> protein = bcp.IntegralMembraneProtein(
...     membrane_protein='Knck1',
...     product='K_channel',
...     direction='Passive',
...     compartment='cytoplasm',
...     membrane_compartment='membrane',
...     attributes=['Passive']
... )
>>> channel = bcp.MembraneChannel(
...     integral_membrane_protein=protein.membrane_protein,
...     substrate='K',
...     direction='Passive',
...     internal_compartment='cytoplasm',
...     external_compartment='external'
... )
>>> mixture = bcp.Mixture(
...     components=[protein, channel],
...     mechanisms={
...         'membrane_insertion': bcp.Membrane_Protein_Integration(),
...         'transport': bcp.Simple_Transport(),
...     },
...     parameters={'k_trnsp': 1.0},
...     parameter_file='mechanisms/transport_parameters.tsv',
... )
>>> mixture.compile_crn()

Methods

update_reactions

Generate reactions for simple membrane protein transport.

update_species

Generate species for simple transport.

update_reactions(membrane_channel, substrate, product, component=None, part_id=None, k_trnsp=None, **kwargs)[source]

Generate reactions for simple membrane protein transport.

Creates a single reversible mass-action reaction representing passive transport through a membrane channel with equal forward and reverse rate constants. The channel acts catalytically and is not consumed.

Parameters:
  • membrane_channel (Species) – The membrane channel protein facilitating transport.

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

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

  • component (Component, optional) – Component containing parameter values. Required if k_trnsp is not provided directly.

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

  • k_trnsp (Parameter or float, optional) – Transport rate constant. If None, retrieved from component parameters. Used as both forward and reverse rate constant.

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

Returns:

List containing a single reversible mass-action reaction for transport.

Return type:

list of Reaction

Raises:

ValueError – If component is None and k_trnsp is not provided.

Notes

The reaction has equal forward and reverse rate constants:

\[ {\text{membrane_channel}} + {\text{substrate}} \rightleftharpoons {\text{membrane_channel}} + {\text{product}} \quad ({\text{rates}}\mathord{:} {\text{k_trnsp}}, {\text{k_trnsp}}) \]
The membrane channel appears on both sides of the reaction, indicating it acts catalytically and is recycled.

update_species(membrane_channel, substrate, product, **kwargs)[source]

Generate species for simple transport.

Returns the membrane channel, substrate, and product species involved in the transport reaction. Validates that the channel has the ‘Passive’ attribute.

Parameters:
  • membrane_channel (Species) – The membrane channel protein through which transport occurs. Must have ‘Passive’ as its first attribute.

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

  • product (Species) – The product species after transport (typically extracellular side).

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

Returns:

List containing [membrane_channel, substrate, product].

Return type:

list of Species

Raises:

ValueError – If membrane_channel does not have ‘Passive’ as its first attribute, indicating it should use Facilitated_Transport_MM instead.