Cav2p1_MA2024_PC_Frozen#

class braincell.channel.Cav2p1_MA2024_PC_Frozen(size, g_max=Quantity(0.00022, 'cm / s'), V_sh=Quantity(0., 'mV'), temp=Quantity(296.15, 'K'), name=None)#

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

A standalone Purkinje-cell Cav2.1 mechanism that stops the gradient through the membrane potential where it enters the constant-field (GHK) flux term. Its kinetics and its named parameter block are those of Cav2p1_RI2021_SC, and its attribution is that of Cav2p1_MA2024_PC: the Cav2.1 kinetics built from the dissociated Purkinje neuron recordings of (Swensen & Bean, 2005) [1] and published in (Anwar, Hong & De Schutter, 2012) [2], imported for the human Purkinje cell model of (Masoli et al., 2024) [3]. It inherits none of that code, and its forward current is not identical to the unfrozen class’s – 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.2e-4 cm/s.

  • 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; the mod file’s vshift. Defaults to 0.0 mV.

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

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

See also

Cav2p1_MA2024_PC

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

Cav2p1_RI2021_SC

Where the equation set, the permeability discrepancy and the mod header corrections are documented in full.

Cav2p1_RI2021_SC_Frozen

Stellate-cell frozen variant, which is a subclass of this class and overrides nothing.

Cav2p1_MA2025_BC_Frozen

Basket-cell frozen variant, likewise a subclass of this class overriding nothing.

Notes

This class is not a subclass of the unfrozen Purkinje-cell import. It derives from HH directly and re-declares everything: root_type, the gate, the whole constructor and parameter block, f_m_inf, f_m_tau and current. A change to Cav2p1_RI2021_SC therefore does not propagate here. The two Cav2.1 frozen siblings, Cav2p1_RI2021_SC_Frozen and Cav2p1_MA2025_BC_Frozen, are subclasses of this class and add nothing but a registry key.

“Frozen” describes the gradient path, not the channel states. The m gate keeps integrating exactly as in the unfrozen class – 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.

The freezing is not the only difference from the unfrozen class. current() here calls the module-level _cav3p1_nmodl_ghk_flux helper, whereas Cav2p1_RI2021_SC calls the shared ghk_flux(). The two helpers use different physical constants: the shared one uses CODATA values and the temperature as passed, while the NMODL helper uses F = 9.6485e4 C/mol, R = 8.3145 J/(K mol) and a 273.19 + celsius Kelvin conversion carried as _CAV3P1_NMODL_TEMP_OFFSET. Those are exactly the constants Cav2p1_MA24_PC.mod itself declares, so the helper’s _cav3p1_ name – inherited from the Cav3.1 import, whose mod file declares the same values – understates its applicability here. The consequence is that this class’s forward current differs from Cav2p1_MA2024_PC’s by of order \(10^{-4}\) in relative terms, and that this class is the closer of the two to the mod file. Nothing in the mod file corresponds to the freezing itself: it is a BrainCell autodiff facility with no NMODL counterpart, so it is not an import deviation and changes nothing a NEURON comparison would observe.

As in Cav2p1_RI2021_SC, g_max is a permeability in cm/s rather than a conductance density, the mod file’s unused vhalfh/cvh are dropped, the Q10 is declared on the Gate because the mod file divides the whole tau by it, and current() negates NEURON’s outward-positive ica to match BrainCell’s inward-positive convention. 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