BrainX Ecosystem
Home
Platform
Full-Scale Simulation AI Compatibility Differentiable Optimization Powered by JAX
Ecosystem
Research
Papers about BrainX Papers using BrainX Papers citing BrainX
Documentation
brainpy (classic) ↗ brainunit brainstate brainpy.state braincell brainmass brainevent braintrace braintools
Skip to main content
Ctrl+K
braincell - Home braincell - Home

Get Started

  • Installation
  • Overview & Roadmap
  • First Steps

Concepts

  • Architecture
  • Units
  • Cells
  • Morphology
  • Mechanisms
  • Ions & Channels
  • Regions & Locsets
  • Discretization
  • Integration

Modeling Guides

  • Modeling Tutorials
    • Overview
    • Single-Compartment Neurons
    • Channels
    • Ions
    • Morphology in BrainCell
    • Single-cell Frontend: Morphology, Visualization, and Model Decoration
    • Region and Locset Filters
    • Mechanisms in BrainCell
    • Cell in BrainCell
    • Point Tree Visualization
  • Examples
    • Your First Hodgkin–Huxley Neuron
    • Comparison of Gating Properties of Low-Threshold and High-Threshold Calcium Channels
    • The Frequency–Current (F–I) Curve
    • Channel Ablation: What the Potassium Current Does
    • Spike-Frequency Adaptation
    • Post-Inhibitory Rebound Bursting
    • Effects of Different Integration Methods on HH Neuron Dynamics
    • Construction and Electrophysiological Simulation of Thalamic Neuron Models
    • Simulation and Analysis of Excitatory-Inhibitory Neuronal Networks (E-I Networks)
  • Numerical Integration
    • Overview: How Integration Works
    • Defining Differential Equations
    • Choosing and Using Solvers
    • Advanced Integration
  • File Formats & IO
    • IO Overview
    • SWC
    • Neurolucida ASC
    • NeuroML2
    • NeuroMorpho.Org
    • Checkpointing

Developer Guide

  • Contributing
  • Project Layout
  • Testing
  • Extending braincell
  • Troubleshooting & FAQ

API Reference

  • Release Notes
  • braincell module
    • HHTypedNeuron
    • SingleCompartment
    • Cell
    • RunResult
    • IonChannel
    • Ion
    • IonInfo
    • MixIons
    • Channel
    • braincell.mix_ions
    • CV
    • CVTree
    • Node
    • NodeTree
    • CVPolicy
    • CVPerBranch
    • CVPolicyByTypeRule
    • CompositeByTypePolicy
    • DLambda
    • MaxCVLen
    • Morphology
    • Branch
    • Soma
    • Dendrite
    • Axon
    • BasalDendrite
    • ApicalDendrite
    • CustomBranch
    • CableProperty
    • CurrentClamp
    • SineClamp
    • FunctionClamp
  • braincell.morph module
    • MorphoBranch
    • MorphoEdge
    • MorphoMetric
  • braincell.ion module
    • Calcium
    • CalciumFixed
    • CalciumDetailed
    • CalciumFirstOrder
    • CalciumInitNernst
    • CdpCAM_MA2024_PC
    • CdpCR_MA2020_GrC
    • CdpHVA_SU2015_DCN
    • CdpLVA_SU2015_DCN
    • CdpStC_MA2020_GoC
    • CdpStC_CAMOnly_MA2020_GoC
    • CdpStC_NoCAM_MA2020_GoC
    • CdpStC_MA2025_BC
    • CdpStC_RI2021_SC
    • ToyCaBindingKinetic_SU2015_DCN
    • ToyCaBindingSourceKinetic_SU2015_DCN
    • ToyCaBindingIcaSourceKinetic_SU2015_DCN
    • ToyCaPumpFactorKinetic_SU2015_DCN
    • ToyDiamFactorKinetic_SU2015_DCN
    • Potassium
    • PotassiumFixed
    • PotassiumInitNernst
    • Sodium
    • SodiumFixed
    • SodiumInitNernst
  • braincell.channel module
    • CaN_IS2008
    • CaL_IS2008
    • CaT_HM1992
    • CaT_HP1992
    • CaHT_HM1992
    • CaHT_Re1993
    • CaHVA_MA2020_GoC
    • CaHVA_MA2020_GrC
    • CaHVA_SU2015_DCN
    • CaLVA_SU2015_DCN
    • CaL_SU2015_DCN
    • Ca_ZH2019_IO
    • Cav1p2_MA2020_GoC
    • Cav1p2_MA2025_BC
    • Cav1p3_MA2020_GoC
    • Cav1p3_MA2025_BC
    • Cav2p1_MA2024_PC
    • Cav2p1_MA2024_PC_Frozen
    • Cav2p1_MA2025_BC
    • Cav2p1_RI2021_SC
    • Cav2p3_MA2020_GoC
    • Cav3p1_MA2020_GoC
    • Cav3p1_MA2024_PC
    • Cav3p1_MA2024_PC_Frozen
    • Cav3p1Test_PC24
    • Cav3p2_MA2024_PC
    • Cav3p2_MA2025_BC
    • Cav3p2_RI2021_SC
    • Cav3p3_MA2024_PC
    • Cav3p3_MA2024_PC_Frozen
    • Cav3p3_RI2021_SC
    • HCN_HM1992
    • HCN_SU2015_DCN
    • HCN_ZH2019_IO
    • HCN1_MA2020_GoC
    • HCN1_MA2024_PC
    • HCN1_MA2025_BC
    • HCN1_RI2021_SC
    • HCN2_MA2020_GoC
    • LeakageChannel
    • IL
    • K_HH1952
    • K_TM1991
    • K_Leak
    • K_Kv_test
    • KDR_Ba2002
    • Kdr_ZH2019_IO
    • KA1_HM1992
    • KA2_HM1992
    • KK2A_HM1992
    • KK2B_HM1992
    • KNI_Ya1989
    • KM_MA2020_GoC
    • KM_MA2020_GrC
    • KM_RI2021_SC
    • Kir2p3_MA2020_GrC
    • Kir2p3_MA2024_PC
    • Kir2p3_MA2025_BC
    • Kir2p3_RI2021_SC
    • Kv1p1_MA2020_GoC
    • Kv1p1_MA2020_GrC
    • Kv1p1_MA2024_PC
    • Kv1p1_MA2025_BC
    • Kv1p1_RI2021_SC
    • Kv1p5_MA2020_GrC
    • Kv1p5_MA2024_PC
    • Kv2p2_0010_MA2020_GrC
    • Kv3p3_MA2024_PC
    • Kv3p4_MA2020_GoC
    • Kv3p4_MA2020_GrC
    • Kv3p4_MA2024_PC
    • Kv3p4_MA2025_BC
    • Kv3p4_RI2021_SC
    • Kv4p3_MA2020_GoC
    • Kv4p3_MA2020_GrC
    • Kv4p3_MA2024_PC
    • Kv4p3_MA2025_BC
    • Kv4p3_RI2021_SC
    • fKdr_SU2015_DCN
    • sKdr_SU2015_DCN
    • AHP_De1994
    • SK_SU2015_DCN
    • Kca1p1_MA2020_GoC
    • Kca1p1_MA2020_GrC
    • Kca1p1_MA2024_PC
    • Kca1p1_MA2025_BC
    • Kca1p1_RI2021_SC
    • Kca2p2_MA2020_GoC
    • Kca2p2_MA2020_GrC
    • Kca2p2_MA2024_PC
    • Kca2p2_MA2025_BC
    • Kca2p2_RI2021_SC
    • Kca3p1_MA2020_GoC
    • Kca3p1_MA2024_PC
    • Kca3p1_MA2025_BC
    • Na_HH1952
    • Na_TM1991
    • Na_Ba2002
    • Na_ZH2019_IO
    • NaF_SU2015_DCN
    • NaP_SU2015_DCN
    • NaFHF_MA2020_GrC
    • Nav_MA2020_GrC
    • Nav1p1_MA2025_BC
    • Nav1p1_RI2021_SC
    • Nav1p6_MA2020_GoC
    • Nav1p6_MA2024_PC
    • Nav1p6_MA2025_BC
    • Nav1p6_RI2021_SC
  • braincell.synapse module
    • AMPA
    • GABAa
    • NMDA
  • braincell.mech module
    • Mechanism
    • Params
    • Density
    • Channel
    • Ion
    • CVContext
    • Point
    • Junction
    • Synapse
    • StateProbe
    • MechanismProbe
    • CurrentProbe
    • ProbeMechanism
  • braincell.filter module
    • RegionExpr
    • AllRegion
    • EmptyRegion
    • SubtreeRegion
    • BranchRangeFilter
    • BranchInFilter
    • BranchSlice
    • RadiusRangeRegion
    • EuclideanDistanceRegion
    • TreeDistanceRegion
    • RegionAnchors
    • RegionMask
    • RegionSetOp
    • LocsetExpr
    • RootLocation
    • Terminals
    • BranchPoints
    • UniformSamples
    • StepSamples
    • RandomSamples
    • AtLocation
    • LocsetMask
    • LocsetSetOp
    • braincell.filter.branch_in
    • braincell.filter.branch_range
    • braincell.filter.at
    • SelectionCache
  • braincell.io module
    • SwcReader
    • SwcReadOptions
    • SwcReport
    • SwcIssue
    • AscReader
    • AscReport
    • AscIssue
    • AscMetadata
    • AscSpineRecord
    • NeuroMlReader
    • braincell.io.load_neuromorpho
    • braincell.io.fetch_neuromorpho
    • NeuroMorphoClient
    • NeuroMorphoQuery
    • NeuroMorphoNeuron
    • NeuroMorphoMeasurement
    • NeuroMorphoDetail
    • NeuroMorphoFilePlan
    • NeuroMorphoDownloadItem
    • NeuroMorphoDownloadRecord
    • NeuroMorphoUrls
    • NeuroMorphoSearchPage
    • NeuroMorphoCache
    • NeuroMorphoCacheLayout
    • NeuroMorphoCacheStatus
    • NeuroMorphoError
    • NeuroMorphoHTTPError
    • NeuroMorphoNotFoundError
    • CheckpointError
    • CheckpointVersionError
    • braincell.io.save_morpho
    • braincell.io.load_morpho
    • braincell.io.save_branch
    • braincell.io.load_branch
  • braincell.quad module
    • DiffEqState
    • DiffEqSingleState
    • DiffEqGroupState
    • DiffEqModule
    • IndependentIntegration
    • braincell.quad.state
    • braincell.quad.hidden_state
    • braincell.quad.state_grouping
    • IntegratorEntry
    • IntegratorRegistry
    • get_integrator
    • get_registry
    • register_integrator
    • all_integrators
    • braincell.quad.exp_euler_step
    • braincell.quad.exp_exp_euler_step
    • braincell.quad.ind_exp_euler_step
    • braincell.quad.euler_step
    • braincell.quad.midpoint_step
    • braincell.quad.rk2_step
    • braincell.quad.heun2_step
    • braincell.quad.ralston2_step
    • braincell.quad.rk3_step
    • braincell.quad.heun3_step
    • braincell.quad.ssprk3_step
    • braincell.quad.ralston3_step
    • braincell.quad.rk4_step
    • braincell.quad.ralston4_step
    • braincell.quad.backward_euler_step
    • braincell.quad.implicit_euler_step
    • braincell.quad.implicit_exp_euler_step
    • braincell.quad.implicit_rk4_step
    • braincell.quad.cn_exp_euler_step
    • braincell.quad.cn_rk4_step
    • braincell.quad.splitting_step
    • braincell.quad.staggered_step
  • braincell.vis module
    • braincell.vis.plot2d
    • braincell.vis.plot3d
    • braincell.vis.plot_movie
    • braincell.vis.plot_traces
    • braincell.vis.plot_dendrogram
    • braincell.vis.plot_topology
    • braincell.vis.plot_point_topology
    • braincell.vis.plot_sholl
    • braincell.vis.plot_branch_order_histogram
    • braincell.vis.compare_morphologies
    • braincell.vis.compare_values
    • VisHooks
    • PickInfo
    • braincell.vis.theme
    • braincell.vis.publication_theme
    • braincell.vis.configure_defaults
    • braincell.vis.get_defaults
    • braincell.vis.reset_defaults
    • braincell.vis.set_defaults
    • braincell.vis.save_figure
    • VisDefaults
    • PublicationTheme
    • OverlaySpec
    • ValueSpec
    • LayoutConfig
    • LayoutCache
  • .rst

Nav_MA2020_GrC

Contents

  • Nav_MA2020_GrC
    • Nav_MA2020_GrC.current()
    • Nav_MA2020_GrC.init_state()
    • Nav_MA2020_GrC.reset_state()
    • Nav_MA2020_GrC.root_type

Nav_MA2020_GrC#

class braincell.channel.Nav_MA2020_GrC(size, temp=Quantity(305.15, 'K'), g_max=Quantity(13., 'mS / cm^2'), name=None, solver=None, substeps=None)#

Resurgent Nav sodium current, granule-cell parameterisation.

A 13-state Raman & Bean (2001) [2]-style resurgent sodium Markov scheme, refitted to the transient/persistent/resurgent granule-cell recordings and kinetic scheme of Magistretti et al. (2006) [1] and imported here for the granule-cell model of (Masoli et al., 2020) [3]. Five closed states C1-C5 form an activation ladder mirrored by five inactivated states I1-I5; C5 opens into O, which can transition into a blocked state OB or into the shared deep-inactivated state I6 (also reachable from I5); I6 is algebraically eliminated as dependent_state.

All transition rates share one temperature factor and a small set of voltage-dependent and constant primitives:

\[\begin{split}\begin{aligned} \phi &= 3^{(T - 20)/10} \\ \alpha(V) &= \phi\, A_\alpha\, e^{V/V_\alpha}, \quad \beta(V) = \phi\, A_\beta\, e^{-V/V_\beta}, \quad \theta(V) = \phi\, A_\theta\, e^{-V/V_\theta} \\ \gamma &= \phi A_\gamma, \quad \delta = \phi A_\delta, \quad \varepsilon = \phi A_\varepsilon \\ C_{on} &= \phi A_{Con}, \quad C_{off} = \phi A_{Coff}, \quad O_{on} = \phi A_{Oon}, \quad O_{off} = \phi A_{Ooff} \\ a &= (O_{on}/C_{on})^{1/4}, \quad b = (O_{off}/C_{off})^{1/4} \end{aligned}\end{split}\]

with \(V\) in mV (unitless argument to the exponentials) and \(T\) the temperature in degrees Celsius. The closed and inactivated ladders share the same scaling weights \(n_1{=}5.422,\ n_2{=}3.279,\ n_3{=}1.83,\ n_4{=}0.738\):

\[\begin{split}\begin{aligned} f_{0k} &= n_k\, \alpha(V), & b_{0k} &= n_{5-k}\, \beta(V), & k&=1,\dots,4 \\ f_{1k} &= n_k\, \alpha(V)\, a, & b_{1k} &= n_{5-k}\, \beta(V)\, b, & k&=1,\dots,4 \\ f_{ik} &= C_{on}\, a^{\,k-1}, & b_{ik} &= C_{off}\, b^{\,k-1}, & k&=1,\dots,5 \\ f_{0O} &= \gamma, & b_{0O} &= \delta \\ f_{ip} &= \varepsilon, & b_{ip} &= \theta \\ f_{1n} &= \gamma, & b_{1n} &= \delta \\ f_{in} &= O_{on}, & b_{in} &= O_{off} \end{aligned}\end{split}\]

where subscript 0k/1k index the Ck<->Ck+1/ Ik<->Ik+1 ladder steps, ik the Ck<->Ik cross-links, 0O the C5<->O opening step, ip the O<->OB blocking step, and 1n/in the I5<->I6/O<->I6 deep-inactivation links.

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

  • temp (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Absolute temperature driving \(\phi\), default 32 degrees Celsius.

  • g_max (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Callable) – Maximal conductance density, default 13.0 mS/cm2.

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

  • solver (str | None) – Override for Markov’s default ODE solver.

  • substeps (int | None) – Override for Markov’s default substep count.

See also

NaFHF_MA2020_GrC

Same 13-state scheme with an additional slow-blocked branch (L3-L6) enabled.

Nav1p6_MA2020_GoC

Same general resurgent-Markov family, fitted instead to Purkinje-cell kinetics with its own constants.

Notes

Ported from Nav_MA20_GrC.mod, whose header attributes the scheme to “Raman 13 state model. Adapted from Magistretti et al, 2006.” This class does not subclass Nav1p6_MA2020_GoC; it is an independent implementation with its own __init__ and rate constants. \(\phi\) is referenced to 20 degrees Celsius here, unlike the Nav1.6/Nav1.1 Golgi/Purkinje/basket/stellate family, which references 22 degrees Celsius.

Discrepancy between code and bibliography record. This class ships ACon = 0.005 and AOoff = 0.005. The bibliography’s cross-checked fingerprint for the MA2020 granule sodium pair states that Nav_MA2020_GrC and NaFHF_MA2020_GrC share ACon = 0.025 and AOoff = 0.002 – those values are correct for NaFHF_MA2020_GrC (confirmed against its own code) but not for this class. The values documented above are read directly from this class’s __init__ and are the ones in effect at runtime.

No import deviation is recorded for this mechanism in the bibliography’s MA2020 import-deviations tables.

References

[1]

Magistretti, J., Castelli, L., Forti, L., & D’Angelo, E. (2006). Kinetic and functional analysis of transient, persistent and resurgent sodium currents in rat cerebellar granule cells in situ: an electrophysiological and modelling study. The Journal of Physiology, 573(1), 83-106. doi:10.1113/jphysiol.2006.106682

[2]

Raman, I. M., & Bean, B. P. (2001). Inactivation and recovery of sodium currents in cerebellar Purkinje neurons: evidence for two mechanisms. Biophysical Journal, 80(2), 729-737. doi:10.1016/S0006-3495(01)76052-3

[3]

Masoli, S., Tognolina, M., Laforenza, U., Moccia, F., & D’Angelo, E. (2020). Parameter tuning differentiates granule cell subtypes enriching transmission properties at the cerebellum input stage. Communications Biology, 3(1), 222. doi:10.1038/s42003-020-0953-x

current(V, Na)[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.

init_state(V, Na, batch_size=None)[source]#

Initialize the state of the ion channel.

This method should set up the initial state of all variables for the channel.

Parameters:
  • *args – Variable length argument list.

  • **kwargs – Arbitrary keyword arguments.

reset_state(V, Na, batch_size=None)[source]#

Reset the state of the ion channel.

This method should reset all state variables of the channel to their initial values.

Parameters:
  • *args – Variable length argument list.

  • **kwargs – Arbitrary keyword arguments.

root_type#

alias of Sodium

previous

NaFHF_MA2020_GrC

next

Nav1p1_MA2025_BC

Contents
  • Nav_MA2020_GrC
    • Nav_MA2020_GrC.current()
    • Nav_MA2020_GrC.init_state()
    • Nav_MA2020_GrC.reset_state()
    • Nav_MA2020_GrC.root_type

By BrainX Ecosystem

© Copyright 2025, braincell.

Last updated on Aug 16, 2026.

BrainX Ecosystem

An open, differentiable ecosystem for brain simulation. We build the foundations the next decade of computational neuroscience will run on.

Modeling
  • brainpy (classic) ↗
  • brainpy.state
  • braincell
  • brainmass
Infrastructure
  • brainunit
  • brainevent
  • braintrace
  • braintools
Compilation
  • brainstate

Research

  • Papers about BrainX
  • Papers using BrainX
  • Papers citing BrainX
© 2026 BrainX Developers · How to cite →
Apache-2.0 JAX