biocrnpyler.mechanisms.Membrane_Protein_Integration

class biocrnpyler.mechanisms.Membrane_Protein_Integration(name='membrane_protein_integration', mechanism_type='membrane_insertion', **kwargs)[source]

Bases: Mechanism

Membrane protein integration mechanism for protein insertion.

A ‘membrane_insertion’ mechanism that models the integration of newly synthesized proteins into cellular membranes. Supports both monomeric and oligomeric membrane proteins, handling oligomerization before membrane insertion when required.

The reaction schema depends on protein oligomeric state:

For monomers (size = 1):

\[{\text{monomer}} \rightarrow {\text{integral membrane protein}} \]

For oligomers (size > 1):

\[{\text{monomer}} * {\text{size}} \rightleftharpoons {\text{oligomer}} \rightarrow {\text{integral membrane protein}} \]

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

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

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

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

See also

Mechanism

Base class for all mechanisms.

Notes

This mechanism models the process by which proteins become embedded in cellular membranes. For oligomeric proteins, multiple monomers must first associate into a complex before integration can occur. The integration step uses a ProportionalHillNegative propensity function to model saturation kinetics and product inhibition.

The mechanism requires the integral membrane protein to have a size attribute (integral_membrane_protein.size) that specifies the number of monomers in the functional unit.

Common examples include:

  • Integration of ion channels (often oligomeric)

  • Insertion of receptor proteins (can be monomeric or oligomeric)

  • Assembly and insertion of transporter complexes

Required parameters for this mechanism:

  • ‘kb_oligomer’ : Forward oligomerization rate constant (for size > 1)

  • ‘ku_oligomer’ : Reverse oligomerization rate constant (for size > 1)

  • ‘kex’ : Maximum integration rate constant

  • ‘kcat’ : Michaelis constant for integration

Examples

Model integration of a tetrameric channel:

>>> channel = bcp.IntegralMembraneProtein(
...     membrane_protein='Aquaporin',
...     product='Aquaporin_channel',
...     size=2,
...     direction='Passive'
... )
>>> mechanism = bcp.Membrane_Protein_Integration()
>>> mixture = bcp.Mixture(
...     components=[channel],
...     mechanisms={'membrane_insertion': mechanism},
...     parameters={
...         'kb_oligomer': 1.0, 'ku_oligomer': 0.1,
...         'kex': 0.5, 'kcat': 10.0
...     }
... )
>>> mixture.compile_crn()

Methods

update_reactions

Generate reactions for membrane protein integration.

update_species

Generate species for membrane protein integration.

update_reactions(integral_membrane_protein, product, complex=None, component=None, part_id=None, **kwargs)[source]

Generate reactions for membrane protein integration.

Creates reactions for oligomerization (if needed) and membrane integration. For oligomeric proteins, generates both oligomerization and integration reactions. For monomers, generates only the integration reaction.

Parameters:
  • integral_membrane_protein (Species) – The membrane protein monomer. Must have a size attribute.

  • product (Species) – The integrated membrane protein product.

  • complex (Species, optional) – Pre-specified oligomeric complex. If None and size > 1, automatically created.

  • 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:

For oligomers (size > 1): List of two reactions [oligomerization, integration]. For monomers (size = 1): List of one reaction [integration].

Return type:

list of Reaction

Raises:

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

Notes

The reaction scheme depends on oligomeric state:

For oligomers (size > 1):

  1. size * monomer \(\rightleftharpoons\) oligomer (rates: ‘kb_oligomer’, ‘ku_oligomer’)

  2. oligomer \(\rightarrow\) product (ProportionalHillNegative with ‘kex’, ‘kcat’)

For monomers (size = 1):

  1. monomer \(\rightarrow\) product (ProportionalHillNegative with ‘kex’, ‘kcat’)

The integration reaction uses ProportionalHillNegative kinetics with Hill coefficient n=4 to model saturation and product inhibition.

update_species(integral_membrane_protein, product, complex=None, **kwargs)[source]

Generate species for membrane protein integration.

Creates species for monomers, oligomeric complexes (if needed), and the integrated membrane protein product.

Parameters:
  • integral_membrane_protein (Species) – The membrane protein monomer that will be integrated. Must have a size attribute specifying oligomeric state.

  • product (Species) – The integrated membrane protein product after insertion.

  • complex (Species, optional) – Pre-specified oligomeric complex. If None and size > 1, automatically creates a Complex of size monomers. Ignored for monomeric proteins (size = 1).

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

Returns:

List containing [integral_membrane_protein, product, complex] where complex is None for monomers or a Complex species for oligomers.

Return type:

list

Notes

For monomeric proteins (size = 1), no oligomeric complex is formed and the complex element in the return list is None.

For oligomeric proteins (size > 1), a complex containing ‘size’ copies of the monomer is created or used if provided.