biocrnpyler.mechanisms.One_Step_Binding
- class biocrnpyler.mechanisms.One_Step_Binding(name='one_step_binding', mechanism_type='binding')[source]
Bases:
MechanismSimple 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_BindingBinding with cooperativity.
MechanismBase 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
Generate reaction for simple multi-species binding.
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 (
SpeciesorlistofSpecies) – The first species or list of species to bind. Automatically converted to list if single species provided.bindee (
SpeciesorlistofSpecies) – 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 asname1_name2_..._nameN.kb (
Parameterorfloat, optional) – Forward binding rate constant. If None, retrieved from component parameters.ku (
Parameterorfloat, 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:
listofReaction- 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 (
SpeciesorlistofSpecies) – The first species or list of species to bind. Automatically converted to list if single species provided.bindee (
SpeciesorlistofSpecies) – 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 asname1_name2_..._nameN.**kwargs – Additional keyword arguments (unused).
- Returns:
List containing all input species plus the complex. Format: [binder1, …, bindee1, …, complex].
- Return type:
listofSpecies
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.