Cav3p3_MA2024_PC_Frozen#

class braincell.channel.Cav3p3_MA2024_PC_Frozen(size, perm=Quantity(0.0001, 'cm / s'), g_scale=1e-05, temp=Quantity(309.15, 'K'), V_sh=Quantity(0., 'mV'), name=None)#

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

A standalone Purkinje-cell Cav3.3 mechanism that stops the gradient through the membrane potential where it enters the constant-field (GHK) flux term. Its kinetics, its named parameter block and its forward current are numerically identical to Cav3p3_MA2024_PC’s, and its attribution is the same: the Cav3.3 kinetics of the CA3 hippocampal pyramidal neuron model of (Xu & Clancy, 2008) [1], imported for the human Purkinje cell model of (Masoli et al., 2024) [2]. It inherits none of that code – see Notes.

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

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

  • g_scale (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Dimensionless empirical scale factor multiplying the flux, carrying the numeric value of the mod file’s gCav3_3bar. Defaults to 1.0e-5.

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

  • V_sh (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Voltage shift subtracted from \(V\) before every rate and before the GHK term. Defaults to 0.0 mV. The mod file declares no corresponding parameter.

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

See also

Cav3p3_MA2024_PC

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

Cav3p3_RI2021_SC

Where the equation set, the GHK helper’s constants and the current-law scaling caveat are documented in full.

Cav2p1_MA2024_PC_Frozen

The module’s other standalone frozen variant, which additionally swaps GHK helpers and so is not numerically identical to its unfrozen counterpart.

Notes

This class is not a subclass of the unfrozen Purkinje-cell import, and the module’s frozen variants are not all built the same way. Cav3p3_MA2024_PC derives from Cav3p3_RI2021_SC; this class derives from HH directly and re-declares everything: root_type, both gates, the whole constructor and parameter block, f_n_inf, f_l_inf, f_n_tau, f_l_tau and current. The two therefore compute the same forward numbers while sharing no code, and a change to Cav3p3_RI2021_SC propagates to one and not 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 there. Unlike Cav2p1_MA2024_PC_Frozen, this class calls the same _cav3p3_nmodl_ghk_flux helper its unfrozen counterpart calls, so freezing is the only difference between the two and the forward current is unchanged.

The kinetics are those of PC/channel/Cav3p3_MA24_PC.mod, which is identical to SC/channel/Cav3p3_RI21_SC.mod apart from its SUFFIX line and a g_equiv diagnostic. 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 Cav3p3_RI2021_SC, the mod file’s current-law scaling is not dimensionally self-consistent and g_scale is therefore dimensionless, the GHK helper carries the mod file’s own F/R constants and its celsius + 273.14 Kelvin conversion plus a small-argument series branch the mod file lacks, V_sh has no counterpart in the mod file, the Q10 is declared on the Gate objects, and current() negates NEURON’s outward-positive ica. The perm and g_scale defaults are the deposit’s tuned values, not values reported by the 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