TITLE Cerebellum Golgi Cell Model

COMMENT

Author:L. Forti & S. Solinas
Data from: Santoro et al. J Neurosci. 2000
Last revised: April 2006

---
Adapted by Sungho Hong and Claus Lang
Computational Neuroscience Unit, Okinawa Institute of Science and Technology, Japan
Supervision: Erik De Schutter

Correspondence: Sungho Hong (shhong@oist.jp)

September 16, 2017
ENDCOMMENT

NEURON {

        SUFFIX Golgi_hcn2

	NONSPECIFIC_CURRENT ih

	RANGE Q10_diff,Q10_channel,gbar_Q10, ic, fix_celsius

	RANGE o_fast_inf, o_slow_inf, tau_f, tau_s, gbar, ehcn2, g, o

	:GLOBAL o_fast_inf, o_slow_inf
}

UNITS {

        (mA) = (milliamp)

	(mV) = (millivolt)

	(S)  = (siemens)

}


PARAMETER {

    fix_celsius = 37 (degC)

	gbar = 8e-5   (S/cm2)   < 0, 1e9 >

	Q10_diff	= 1.5
	Q10_channel	= 3

        ehcn2 = -20 (mV)

	Ehalf = -81.95 (mV)
	c = 0.1661 (/mV)

	rA = -0.0227 (/mV)
        rB = -1.4694 (1)
        tCf = 0.0269 (1)
        tDf = -5.6111 (mV)
	tEf = 2.3026 (/mV)
	tCs = 0.0152 (1)
        tDs = -5.2944 (mV)
	tEs = 2.3026 (/mV)
}

ASSIGNED {

	ih		(mA/cm2)

        v               (mV)

	g		(S/cm2)

	o_fast_inf

        o_slow_inf

        tau_f           (ms)

	tau_s           (ms)

	gbar_Q10 (mho/cm2)

	Q10     (1)

	ic

	o
    }

INITIAL {

    gbar_Q10 = gbar*(Q10_diff^((fix_celsius-23)/10))

    rate(v)

    o_fast = o_fast_inf

    o_slow = o_slow_inf

}

STATE {	o_fast o_slow }		: fraction of fast and slow open channels


BREAKPOINT {

	SOLVE state METHOD cnexp

	g = gbar_Q10 * (o_fast + o_slow)

        ih = g * (v - ehcn2)

	ic = ih

	o = o_fast + o_slow
}

DERIVATIVE state {

	rate(v)

	o_fast' = (o_fast_inf - o_fast) / tau_f
	o_slow' = (o_slow_inf - o_slow) / tau_s

}


FUNCTION r(potential (mV),r1,r2)  { 	:fraction of fast component in double exponential

        UNITSOFF

	if (potential >= -64.70)  {

			r = 0

	} else{

			if (potential <= -108.70)  {

			r = 1

			} else{

					r =  (r1 * potential) + r2

			}

			}

	UNITSON

}

FUNCTION tau_fast(potential (mV),t1,t2,t3) (ms) {

	UNITSOFF

	Q10 = Q10_channel^((fix_celsius -23) / 10)

        tau_fast = exp(t3 * ((t1 * potential) - t2)) / Q10

	UNITSON

}

FUNCTION tau_slow(potential (mV) ,t1,t2,t3) (ms) {

	UNITSOFF

	Q10 = Q10_channel^((fix_celsius -23) / 10)

        tau_slow = exp(t3 * ((t1 * potential) - t2)) / Q10

	UNITSON

}

FUNCTION o_inf(potential (mV),Ehalf,c)  {

	UNITSOFF

        o_inf = 1 / (1 + exp((potential - Ehalf) * c))

        UNITSON

}

PROCEDURE rate(v (mV)) {
	TABLE o_fast_inf, o_slow_inf, tau_f, tau_s
	DEPEND fix_celsius FROM -100 TO 30 WITH 13000

	o_fast_inf = r(v,rA,rB) * o_inf(v,Ehalf,c)

        o_slow_inf = (1 - r(v,rA,rB)) * o_inf(v,Ehalf,c)

	tau_f =  tau_fast(v,tCf,tDf,tEf)

	tau_s =  tau_slow(v,tCs,tDs,tEs)

}