biocrnpyler.mechanisms.One_Step_Binding

class biocrnpyler.mechanisms.One_Step_Binding(name='one_step_binding', mechanism_type='binding')[source]

Bases: Mechanism

Simple binding mechanism for multiple species without cooperativity.

A ‘binding’ mechanism to model the simultaneous binding of multiple species into a single complex in one concerted step. Unlike cooperative binding mechanisms, this treats all species equally without cooperativity factors - each species contributes exactly one molecule to the complex.

The binding reaction follows:

\[{\text{S}}_1 + {\text{S}}_2 + \dots + {\text{S}}_n \rightleftharpoons {\text{S}}_1\mathord{:}{\text{S}}_2\mathord{:}\dots\mathord{:}{\text{S}}_n \]

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

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

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

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

See also

One_Step_Cooperative_Binding

Binding with cooperativity.

Mechanism

Base class for all mechanisms.

Notes

This mechanism is the simplest binding model where multiple distinct species come together to form a complex. Each species contributes exactly one molecule (stoichiometry of 1) to the complex.

Common applications include:

  • Protein complex formation from distinct subunits

  • Multi-component enzyme assembly

  • Simple receptor-ligand binding

  • Formation of heterodimers or heterotrimers

The mechanism generates a single reversible mass-action reaction with rate constants ‘kb’ (forward) and ‘ku’ (reverse).

Key differences from cooperative binding:

  • No ‘cooperativity’ parameter - all stoichiometries are 1

  • Can handle arbitrary lists of different species

  • Simpler parameter structure (single ‘kb’, ‘ku’ for the entire reaction)

Required parameters for this mechanism:

  • ‘kb’ : Forward binding rate constant

  • ‘ku’ : Reverse unbinding rate constant

Examples

Model receptor-ligand binding:

>>> mech = bcp.One_Step_Binding()
>>> ligand, receptor = bcp.Species('L'), bcp.Species('R')
>>> mech.update_species(
...     binder=ligand,
...     bindee=receptor,
...     kb=1.0, ku=0.001
... )
[L, R, complex_L_R_]

Model formation of a three-protein complex:

>>> proteins = [
...     bcp.Species(s, material_type='protein') for s in ['A', 'B', 'C']]
>>> rxns = mech.update_reactions(
...     binder=proteins[0],
...     bindee=proteins[1:],
...     kb=0.1, ku=0.01
... )
>>> # Generates: A + B + C $\rightleftharpoons$ A:B:C

Methods

update_reactions

Generate reaction for simple multi-species binding.

update_species

Generate species for simple multi-species binding.

update_reactions(binder, bindee, component=None, complex_species=None, part_id=None, kb=None, ku=None, **kwargs)[source]

Generate reaction for simple multi-species binding.

Creates a single reversible mass-action reaction for the binding of all species into a complex.

Parameters:
  • binder (Species or list of Species) – The first species or list of species to bind. Automatically converted to list if single species provided.

  • bindee (Species or list of Species) – The second species or list of species to bind. Automatically converted to list if single species provided.

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

  • complex_species (Species, optional) – Pre-specified complex species. If None, automatically creates a Complex containing all binders and bindees.

  • part_id (str, optional) – Identifier for parameter lookup. If None, automatically generated from species names as name1_name2_..._nameN.

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

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

Returns:

List containing a single reversible mass-action reaction for the binding of all species.

Return type:

list of Reaction

Raises:

ValueError – If component is None and kb or ku is not provided.

Notes

The reaction has equal stoichiometry (1) for all species: species1 + species2 + … + speciesN \(\rightleftharpoons\) complex

This is simpler than cooperative binding mechanisms which can have varying stoichiometries for different species.

update_species(binder, bindee, component=None, complex_species=None, part_id=None, **kwargs)[source]

Generate species for simple multi-species binding.

Creates the list of species involved in the binding reaction: all input species plus the resulting complex.

Parameters:
  • binder (Species or list of Species) – The first species or list of species to bind. Automatically converted to list if single species provided.

  • bindee (Species or list of Species) – The second species or list of species to bind. Automatically converted to list if single species provided.

  • component (Component, optional) – Component containing this mechanism (unused but kept for API consistency).

  • complex_species (Species, optional) – Pre-specified complex species. If None, automatically creates a Complex containing all binders and bindees.

  • part_id (str, optional) – Identifier for parameter lookup. If None, automatically generated from species names as name1_name2_..._nameN.

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

Returns:

List containing all input species plus the complex. Format: [binder1, …, bindee1, …, complex].

Return type:

list of Species

Notes

The binder/bindee distinction is primarily for API consistency with other binding mechanisms. Functionally, all species are treated equally in the binding reaction.

The complex is created as a Complex object containing all input species in the order: binders + bindees.