Core Model

This module provides the main model class that integrates all components of the microscopic gating framework.

Microscopic Gating Model

class microscopic_gating.model.MicroscopicGatingModel(gating, contact, kappa_B, site_pairs)[source]

Bases: object

Full minimal microscopic gating model.

This is the primary interface for the microscopic gating framework, integrating all components:

  • Geometry/contact factor \(\langle \chi \rangle\)

  • Chemical closure success factor \(\kappa_B\)

  • Gating function \(G(\phi)\) (symmetric or asymmetric)

  • Bridge statistics and gate probabilities

The model implements the full chain (Eq. S16-S17, S12):

\[ \begin{align}\begin{aligned}P_{\text{bridge}}(\phi) &= \langle \chi \rangle \kappa_B G(\phi)\\\langle n_b \rangle &= N_{\text{pair}} P_{\text{bridge}}(\phi)\\P_{\text{open}} &= \exp(-\langle n_b \rangle)\\P_{\text{closed}} &= 1 - \exp(-\langle n_b \rangle)\end{aligned}\end{align} \]
Parameters:
  • gating (SymmetricGating or AsymmetricGating) – Gating object: SymmetricGating for \(\theta(1-\theta)\) or AsymmetricGating for \(\theta_P(1-\theta_N)\).

  • contact (ContactProbability) – Geometry/contact model providing \(\langle \chi \rangle\).

  • kappa_B (float) – Chemical/conformational closure success factor in (0, 1] (or >= 0 if treated as weight).

  • site_pairs (SitePairCount) – Site pair counts containing M and N_acc.

See also

SymmetricGating

Symmetric binding gating function.

AsymmetricGating

Asymmetric binding gating function.

LangmuirIsotherm

Standard adsorption isotherm.

Examples

>>> from microscopic_gating.gating import SymmetricGating
>>> from microscopic_gating.adsorption import LangmuirIsotherm
>>> from microscopic_gating.geometry import ConstantContactProbability
>>> from microscopic_gating.types import SitePairCount
>>> isotherm = LangmuirIsotherm(K=1.0)
>>> gating = SymmetricGating(isotherm)
>>> contact = ConstantContactProbability(chi=0.5)
>>> site_pairs = SitePairCount(M=10, N_acc=5)
>>> model = MicroscopicGatingModel(gating, contact, kappa_B=0.8, site_pairs=site_pairs)
>>> model.P_bridge(1.0)
0.1
>>> model.P_open(1.0)  
0.0067...

References

  • Eq. (S16): Bridge probability definition

  • Eq. (S17): Mean bridge count

  • Eq. (S12): Gate probabilities from Poisson statistics

gating: SymmetricGating | AsymmetricGating
contact: ContactProbability
kappa_B: float
site_pairs: SitePairCount
P_bridge(phi)[source]

Calculate bridge probability per site pair.

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

p_B – Bridge probability \(\langle \chi \rangle \kappa_B G(\phi)\), same shape as phi.

Return type:

ArrayLike

lambda_(phi)[source]

Calculate mean bridge count (Poisson intensity).

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

lam – Poisson intensity \(\lambda(\phi) = N_{\text{pair}} P_{\text{bridge}}(\phi)\), same shape as phi.

Return type:

ArrayLike

P_open(phi)[source]

Calculate gate open probability (no bridges).

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

P_open – Open probability \(P_{\text{open}} = \exp(-\lambda(\phi))\), same shape as phi.

Return type:

ArrayLike

P_closed(phi)[source]

Calculate gate closed probability (at least one bridge).

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

P_closed – Closed probability \(P_{\text{closed}} = 1 - \exp(-\lambda(\phi))\), same shape as phi.

Return type:

ArrayLike

__init__(gating, contact, kappa_B, site_pairs)
Parameters:
Return type:

None

Usage Example

from microscopic_gating import MicroscopicGatingModel
from microscopic_gating.gating import SymmetricGating
from microscopic_gating.adsorption import LangmuirIsotherm
from microscopic_gating.geometry import ConstantContactProbability
from microscopic_gating.types import SitePairCount

# Create components
isotherm = LangmuirIsotherm(K=1.0)
gating = SymmetricGating(isotherm)
contact = ConstantContactProbability(chi=0.5)
site_pairs = SitePairCount(M=10, N_acc=5)

# Assemble model
model = MicroscopicGatingModel(
    gating=gating,
    contact=contact,
    kappa_B=0.8,
    site_pairs=site_pairs
)

# Calculate probabilities
import numpy as np
phi = np.logspace(-2, 2, 100)
P_open = model.P_open(phi)
P_closed = model.P_closed(phi)

Theory

The full model implements the chain:

\[ \begin{align}\begin{aligned}P_{\text{bridge}}(\phi) = \langle \chi \rangle \kappa_B G(\phi)\\\langle n_b \rangle = N_{\text{pair}} P_{\text{bridge}}(\phi)\\P_{\text{open}} = e^{-\langle n_b \rangle}\\P_{\text{closed}} = 1 - P_{\text{open}}\end{aligned}\end{align} \]