biocrnpyler.mechanisms.One_Step_Cooperative_Binding

class biocrnpyler.mechanisms.One_Step_Cooperative_Binding(name='one_step_cooperative_binding', mechanism_type='cooperative_binding')[source]

Bases: Mechanism

Cooperative binding mechanism for single-step multi-ligand binding.

A ‘binding’ mechanism where multiple copies of a binder molecule (A) bind cooperatively to a single bindee molecule (B) in one concerted step. This models cooperative binding events where all ligands bind simultaneously rather than sequentially.

The binding reaction is given by

\[n {\text{A}} + {\text{B}} \rightleftharpoons {\text{A}}_n\mathord{:}{\text{B}} \]

where \(n\) is the cooperativity (number of binders).

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

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

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

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

See also

Two_Step_Cooperative_Binding

Sequential cooperative binding mechanism.

Combinatorial_Cooperative_Binding

Multiple distinct binders binding.

One_Step_Binding

Simple binding without cooperativity.

Mechanism

Base class for all mechanisms.

Notes

This mechanism is used to model cooperative binding where multiple identical ligands bind simultaneously to a receptor. Common examples include:

  • Oxygen binding to hemoglobin

  • Transcription factor dimers binding to DNA

  • Cooperative enzyme-substrate interactions

The mechanism generates a single reversible mass-action reaction with forward rate constant ‘kb’ and reverse rate constant ‘ku’. The ‘cooperativity’ parameter determines the stoichiometry of the binding reaction. A cooperativity of 2 models dimeric binding, 3 for trimeric, etc.

Required parameters for this mechanism:

  • ‘kb’ : Forward binding rate constant

  • ‘ku’ : Reverse unbinding rate constant

  • ‘cooperativity’ : Number of binder molecules that bind simultaneously

Examples

Create a mechanism for dimeric transcription factor binding:

>>> promoter = bcp.RegulatedPromoter(
...     name='p_dimer',
...     regulators='TF_dimer',
... )
>>> mixture = bcp.Mixture(
...     components=[promoter],
...     mechanisms={'binding': bcp.One_Step_Cooperative_Binding()},
...     parameters={'cooperativity': 2, 'kb': 0.1, 'ku': 0.01}
... )

Methods

update_reactions

Generate reactions for cooperative binding.

update_species

Generate species for cooperative binding.

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

Generate reactions for cooperative binding.

Creates a single reversible mass-action reaction for the cooperative binding of multiple binder molecules to a bindee.

Parameters:
  • binder (Species) – The ligand species that binds cooperatively.

  • bindee (Species) – The target species being bound to.

  • complex_species (Species, optional) – Pre-specified complex species. If None, automatically creates a Complex containing \(n\) binders and 1 bindee.

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

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

  • part_id (str, optional) – Identifier for parameter lookup. If None, defaults to ‘repr(binder)-repr(bindee)’.

  • cooperativity (int or float, optional) – Number of binder molecules that bind simultaneously. If None, retrieved from component parameters.

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

Returns:

List containing a single reversible mass-action reaction for cooperative binding.

Return type:

list of Reaction

Raises:
  • ValueError – If component is None and any of kb, ku, or cooperativity is not provided.

  • TypeError – If complex_species is not a Species or None.

Notes

The reaction stoichiometry is determined by the cooperativity parameter:

  • cooperativity * binder + bindee \(\rightleftharpoons\) complex

The forward rate is kb and reverse rate is ku. The reaction follows mass-action kinetics with the appropriate stoichiometric coefficients.

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

Generate species for cooperative binding.

Creates the species involved in cooperative binding: the binder, bindee, and the resulting complex containing multiple binders bound to the bindee.

Parameters:
  • binder (Species) – The ligand species that binds cooperatively.

  • bindee (Species) – The target species being bound to.

  • complex_species (Species, optional) – Pre-specified complex species. If None, automatically creates a Complex containing \(n\) binders and 1 bindee, where \(n\) is the cooperativity.

  • cooperativity (int or float, optional) – Number of binder molecules that bind simultaneously. If None, retrieved from component parameters using part_id.

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

  • part_id (str, optional) – Identifier for parameter lookup. If None, defaults to ‘repr(binder)-repr(bindee)’.

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

Returns:

List containing [binder, bindee, complex] where complex is the cooperative binding product.

Return type:

list of Species

Raises:
  • ValueError – If neither component nor cooperativity is provided.

  • TypeError – If complex_species is not a Species or None.

Notes

The cooperativity parameter determines how many binder molecules are incorporated into the complex. For example, cooperativity=2 creates a complex with 2 binders and 1 bindee.