Cav3p1_MA2024_PC_Frozen#

class braincell.channel.Cav3p1_MA2024_PC_Frozen(size, g_max=Quantity(0.00025, 'cm / s'), V_sh=Quantity(0., 'mV'), temp=Quantity(295.15, 'K'), q10=3.0, temp_ref=Quantity(310.15, 'K'), name=None)#

Purkinje cell Cav3.1 with the GHK drive frozen for autodiff.

A standalone Purkinje-cell Cav3.1 mechanism that stops the gradient through the membrane potential where it enters the constant-field (GHK) flux term. Its kinetics, its named Boltzmann/tau parameter block and its forward current are numerically identical to Cav3p1_MA2020_GoC’s, and its attribution is that of Cav3p1_MA2024_PC: the Cav3.1 fit to (Iftinca et al., 2006) [1] published in (Anwar, Hong & De Schutter, 2012) [2], imported for the human Purkinje cell model of (Masoli et al., 2024) [3]. Unlike its Golgi-cell counterpart it inherits none of that – see Notes.

Parameters:
  • size (int | Sequence[int] | integer | Sequence[integer]) – Channel state shape.

  • g_max (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Calcium permeability entering the GHK flux (the mod file’s pcabar), despite the g_max name. Defaults to 2.5e-4 cm/s.

  • V_sh (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Threshold shift. Accepted and stored, but read by no method of this class (see Notes). Defaults to 0.0 mV.

  • temp (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Absolute temperature. Enters both the qt factor and the GHK flux. Defaults to 22 degrees Celsius.

  • q10 (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Q10 factor for qt. Defaults to 3.0.

  • temp_ref (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Reference temperature for qt. Defaults to 37 degrees Celsius.

  • name (str | None) – Optional channel name.

See also

Cav3p1_MA2024_PC

The unfrozen Purkinje-cell import of the same mechanism. This class is not derived from it.

Cav3p1_MA2020_GoC

Where the equation set, the GHK helper’s constants, the tau-embedded temperature handling and the mod header corrections are documented in full.

Cav3p1_MA2020_GoC_Frozen

Golgi-cell counterpart with the same freezing behaviour, reached by inheritance instead.

Notes

This class is not a subclass of the unfrozen Purkinje-cell import, and the two frozen Cav3.1 classes in this module are not built the same way. Cav3p1_MA2020_GoC_Frozen derives from Cav3p1_MA2020_GoC and overrides current() alone. This class derives from HH directly and re-declares everything: root_type, both gates, the whole constructor and parameter block, f_p_inf, f_q_inf, f_p_tau, f_q_tau and current. The two frozen variants therefore compute the same numbers while sharing no code, and a change to Cav3p1_MA2020_GoC propagates to one of them and not to the other.

“Frozen” describes the gradient path, not the forward numerics and not the channel states. Both gates keep integrating normally – nothing stops evolving. current() passes the membrane potential through the module-level _freeze_quantity_gradient, which rebuilds the quantity from jax.lax.stop_gradient() applied to its mantissa, before handing it to the GHK helper. The unfrozen V still reaches conductance_factor(), but that method ignores its voltage argument and reads only the gate states, so the distinction affects neither value nor gradient.

The kinetics are those of PC/channel/Cav3p1_MA24_PC.mod, which is identical to GoC/channel/Cav3p1_MA20_GoC.mod except for its SUFFIX line and a dropped INDEPENDENT statement. No mod file ships a frozen-gradient variant: freezing is a BrainCell autodiff facility with no counterpart in NMODL, so it is not an import deviation and changes nothing a NEURON comparison would observe.

As in Cav3p1_MA2020_GoC, g_max is a permeability in cm/s rather than a conductance density, V_sh is accepted and never read with no corresponding parameter in the mod file, the temperature factor qt is embedded in the tau expressions instead of in Gate, the tau_p constant branch at V <= -90 mV is not divided by qt, and current() uses the module-level _cav3p1_nmodl_ghk_flux helper with the mod file’s own F/R constants and its 273.19 + celsius Kelvin conversion. The permeability default is the deposit’s tuned pcabar, not a value reported by either origin paper.

References

current(V, Ca)[source]#

Calculate the current for this ion channel.

This method should be implemented by subclasses to compute the current based on the channel’s specific properties and state.

Parameters:
  • *args – Variable length argument list.

  • **kwargs – Arbitrary keyword arguments.

Raises:

NotImplementedError – This method must be implemented by subclasses.

root_type#

alias of Calcium