Gating Functions

This module implements gating functions that determine bridge probability as a function of surface occupancy.

Symmetric Gating

class microscopic_gating.gating.SymmetricGating(isotherm)[source]

Bases: object

Symmetric gating function \(G(\phi) = \theta(1-\theta)\).

Implements Eq. (S6)-(S7), assuming \(K_P \approx K_N \approx K_d\). This is the standard gating function for symmetric binding scenarios.

The gating function produces a bell-shaped curve with maximum at \(\phi = K\) where \(G_{max} = 1/4\).

Parameters:

isotherm (Isotherm) – Any isotherm providing \(\theta(\phi)\), e.g., LangmuirIsotherm or HillIsotherm.

See also

AsymmetricGating

Uses \(\theta_P(1-\theta_N)\) for non-symmetric particle/network binding.

Examples

>>> from microscopic_gating.adsorption import LangmuirIsotherm
>>> isotherm = LangmuirIsotherm(K=1.0)
>>> gating = SymmetricGating(isotherm)
>>> gating.G(1.0)
0.25
>>> gating.phi_star()
1.0

References

  • Eq. (S6)-(S7): Symmetric gating function derivation

isotherm: Isotherm
G(phi)[source]

Calculate symmetric gating function.

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

G – Gating function value \(\theta(\phi)[1-\theta(\phi)]\), same shape as phi. Values are in [0, 0.25].

Return type:

ArrayLike

Notes

The function reaches its maximum of 0.25 when \(\theta = 0.5\), which occurs at \(\phi = K\) for Langmuir/Hill isotherms.

phi_star()[source]

Find peak location of the gating function.

Returns:

phi_star – Concentration at which \(G(\phi)\) is maximized. For standard Langmuir/Hill forms, \(\phi^\\ast = K\).

Return type:

float

Raises:

AttributeError – If the isotherm does not have a ‘K’ attribute.

Notes

For Hill/Langmuir isotherms, \(G(\phi)\) is maximized at \(\phi = K\) with maximum value 1/4.

__init__(isotherm)
Parameters:

isotherm (Isotherm) –

Return type:

None

Asymmetric Gating

class microscopic_gating.gating.AsymmetricGating(isotherm_P, isotherm_N)[source]

Bases: object

Asymmetric gating function: \(G(\phi) = \theta_P(\phi)[1-\theta_N(\phi)]\).

Implements Eq. (S5) in the minimal blocking picture. This gating function accounts for different binding affinities on the particle versus network sides.

Parameters:
  • isotherm_P (Isotherm) – Particle-side isotherm giving \(\theta_P(\phi)\).

  • isotherm_N (Isotherm) – Network-side isotherm giving \(\theta_N(\phi)\).

See also

SymmetricGating

Special case where \(\theta_P = \theta_N\).

Examples

>>> from microscopic_gating.adsorption import LangmuirIsotherm
>>> isotherm_P = LangmuirIsotherm(K=1.0)
>>> isotherm_N = LangmuirIsotherm(K=2.0)
>>> gating = AsymmetricGating(isotherm_P, isotherm_N)
>>> gating.G(1.0)  
0.1666...

References

  • Eq. (S5): Asymmetric gating in minimal blocking picture

isotherm_P: Isotherm
isotherm_N: Isotherm
G(phi)[source]

Calculate asymmetric gating function.

Parameters:

phi (ArrayLike) – Bulk concentration.

Returns:

G – Gating function value \(\theta_P(\phi)[1-\theta_N(\phi)]\), same shape as phi.

Return type:

ArrayLike

Notes

Unlike symmetric gating, the maximum value and peak location depend on both isotherm parameters.

__init__(isotherm_P, isotherm_N)
Parameters:
Return type:

None

Theory Background

Symmetric Gating

For symmetric binding where \(K_P \approx K_N \approx K_d\), the gating function is:

\[G(\phi) = \theta(\phi)[1-\theta(\phi)]\]

This reaches a maximum of 1/4 at \(\phi = K\).

Asymmetric Gating

For asymmetric binding with different particle and network affinities:

\[G(\phi) = \theta_P(\phi)[1-\theta_N(\phi)]\]

This accounts for different binding strengths on the particle versus network sides.