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:
objectFull 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 (
SymmetricGatingorAsymmetricGating) – Gating object:SymmetricGatingfor \(\theta(1-\theta)\) orAsymmetricGatingfor \(\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
SymmetricGatingSymmetric binding gating function.
AsymmetricGatingAsymmetric binding gating function.
LangmuirIsothermStandard 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
- 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:
gating (SymmetricGating | AsymmetricGating) –
contact (ContactProbability) –
kappa_B (float) –
site_pairs (SitePairCount) –
- 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: