Model of Type 3 firing in neurons (Clay et al 2008)

 Download zip file 
Help downloading and running models
An ionic model for Type 3 firing in neurons (Clay et al 2008) Some neurons fire only once in response to a sustained depolarizing current pulse, type 3 behavior. One example, surprisingly, is the squid giant axon. The Hodgkin-Huxley (HH) model of this preparation fires repetitively for these conditions – type 2, a result that is not observed experimentally as shown in the above paper. Changing one parameter of their model of IK is sufficient to mimic the result.
1 . Clay JR, Paydarfar D, Forger DB (2008) A simple modification of the Hodgkin and Huxley equations explains type 3 excitability in squid giant axons. J R Soc Interface 5:1421-8 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s):
Gap Junctions:
Simulation Environment: NEURON; Python;
Model Concept(s):
Implementer(s): Ganguly, Mohit [mohit.ganguly at]; Clay, John R ;
TITLE hhrx.mod   squid sodium, potassium, and leak channels with temperature as a range variable


Modified from hh.mod so that temperature is controlled by RANGE variable localtemp  
MG June 2015

 This is the original Hodgkin-Huxley treatment for the set of sodium,
  potassium, and leakage channels found in the squid giant axon membrane.
  ("A quantitative description of membrane current and its application
  conduction and excitation in nerve" J.Physiol. (Lond.) 117:500-544 (1952).)
 Membrane voltage is in absolute mV and has been reversed in polarity
  from the original HH convention and shifted to reflect a resting potential
  of -65 mV.
 Remember to set localtemp=6.3 (or whatever) in your HOC file.
 See squid.hoc for an example of a simulation using this model.
 SW Jaslove  6 March, 1992

        (mA) = (milliamp)
        (mV) = (millivolt)
        (S) = (siemens)

? interface
	THREADSAFE : assigned GLOBALs will be per thread
        SUFFIX hhrx
        USEION na READ ena WRITE ina
        USEION k READ ek WRITE ik
        RANGE gnabar, gkbar, gl, el, gna, gk
	RANGE localtemp
	RANGE minf, hinf, ninf, mtau, htau, ntau
	:RANGE Ena, Ek
        :GLOBAL minf, hinf, ninf, mtau, htau, ntau

        gl = .0003 (S/cm2)        <0,1e9>
        el = -54.3 (mV)
        :gk = 62.5e-3 (S/cm2) 
	nacoeff = 1
	kcoeff = 1


        m h n :localtemp  

        v (mV)
        :celsius (degC)
        localtemp (degC)
        ena (mV)
        ek (mV)
	gnabar (S/cm2)
	gkbar (S/cm2)
        gna (S/cm2)
        gk (S/cm2)
        ina (mA/cm2)
        ik (mA/cm2)
        il (mA/cm2)
        minf hinf ninf
        mtau (ms) htau (ms) ntau (ms)

? currents
        SOLVE states METHOD cnexp
        gna = gnabar*m*m*m*h
        ina = gna*(v - ena)
        gk = gkbar*n*n*n*n
        ik = gk*(v - ek)
        il = gl*(v - el)

        m = minf
        h = hinf
        n = ninf

? states
        m' =  (minf-m)/mtau
        h' = (hinf-h)/htau
        n' = (ninf-n)/ntau
:LOCAL q10
? rates
PROCEDURE rates(v(mV)) {  :Computes rate and other constants at current v.
                      :Call once from HOC to initialize inf at resting v.
        LOCAL  alpha, beta, sum, q10
        :TABLE minf, mtau, hinf, htau, ninf, ntau DEPEND celsius FROM -100 TO 100 WITH 200
        :TABLE minf, mtau, hinf, htau, ninf, ntau DEPEND localtemp FROM -100 TO 100 WITH 200
        :q10 = 3^((celsius - 6.3)/10)
                :"m" sodium activation system
        alpha = .1 * vtrap(-(v+40),10)
        beta =  4* exp(-(v+65)/18)
        sum = alpha + beta
        mtau = 1/(q10*sum)
        minf = alpha/sum
                :"h" sodium inactivation system
        alpha = .07 * exp(-(v+65)/20)
        beta = 1/ (exp(-(v+35)/10) + 1)
        sum = alpha + beta
        htau = 1/(q10*sum)
        hinf = alpha/sum
                :"n" potassium activation system
        alpha = .01*vtrap(-(v+55),10)
        beta = .125*exp(-(v+65)/80)
        sum = alpha + beta
        ntau = 1/(q10*sum)
        ninf = alpha/sum
FUNCTION vtrap(x,y) {  :Traps for 0 in denominator of rate eqns.
        if (fabs(x/y) < 1e-6) {
                vtrap = y*(1 - x/y/2)
                vtrap = x/(exp(x/y) - 1)

FUNCTION function(a,b){
	if (fabs(exp(a)-b)<1e-6){
		function = 1
	}else {
		function = (exp(a)-b)/(exp(a)-1)


Loading data, please wait...