Status epilepticus alters dentate basket cell tonic inhibition (Yu J et al 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:155602
Status epilepticus (SE) leads to changes in dentate inhibitory neuronal networks and alters synaptic and tonic inhibition in granule cells. Recently, we identified that one week after pilocarpine-induced status epilepticus, dentate fast-spiking basket cells (FS-BCs), which underlie fast perisomatic inhibition, show two distinct changes in inhibition: (1) enhanced tonic currents (IGABA) and (2)depolarizing shift in GABA reversal (EGABA) following SE. These two changes can have opposing effects on neuronal inhibition with increases in tonic GABA conductance (gGABA) reducing excitability when the GABA currents are shunting (or hyperpolarizing) and potentially enhancing excitability when GABA currents are depolarizing. The following model is used to examine the post-SE changes in tonic GABA conductance, together with the depolarized GABA reversal potential modify FS-BC excitability and dentate network activity.
Reference:
1 . Yu J, Proddutur A, Elgammal FS, Ito T, Santhakumar V (2013) Status epilepticus enhances tonic GABA currents and depolarizes GABA reversal potential in dentate fast-spiking basket cells. J Neurophysiol 109:1746-63 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Dentate gyrus basket cell;
Channel(s):
Gap Junctions:
Receptor(s): GabaA;
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Epilepsy;
Implementer(s):
Search NeuronDB for information about:  GabaA; Gaba;
/
YuEtAl2013
ReadMe.html
bgka.mod *
CaBK.mod *
ccanl.mod *
gap.mod
Gfluct2.mod *
gskch.mod *
hyperde3.mod *
ichan2.mod *
LcaMig.mod *
markov.mod *
nca.mod *
tca.mod *
tonic.mod *
fixed rseed Control -74 spill_ tonic 10uS with mossy kill.hoc
fixed rseed Pilo -54 spill_ tonic 10uS with mossy kill.hoc
mosinit.hoc
screenshot1.png
                            
TITLE Stochastic Hodgkin and Huxley model incorporating channel noise (approximate effective version).

COMMENT

This mod-file implementes a stochastic version of the HH model incorporating channel noise.
This version is the approximate ``effective'' version, i.e. it employs a Ornstein-Uhlenbeck process with
the same mean and variance of the Markov model. Note that the time constant of the exponentially
decaying covariance function of this effective model is just an approximation of the time constant
of the Markov model.

Author: Daniele Linaro - daniele.linaro@unige.it
Date: September 2010

ENDCOMMENT

UNITS {
    (mA) = (milliamp)
    (mV) = (millivolt)
    (S)  = (siemens)
    (pS) = (picosiemens)
    (um) = (micrometer)
} : end UNITS


NEURON {
    SUFFIX HHcnf
    USEION na READ ena WRITE ina
    USEION k READ ek WRITE ik
    NONSPECIFIC_CURRENT il
    RANGE el, gl
    RANGE gnabar, gkbar
    RANGE gna, gk
    RANGE gamma_na, gamma_k
    RANGE m_inf, h_inf, n_inf
    RANGE tau_m, tau_h, tau_n, tau_y, tau_z
    RANGE var_y, var_z
    RANGE noise_y, noise_z
    RANGE Nna, Nk
    RANGE seed    
    : these auxiliary variables are only needed if the exact method of solution is used    
    RANGE mu_y, mu_z
    THREADSAFE
} : end NEURON


PARAMETER {
    gnabar  = 0.12   (S/cm2)
    gkbar   = 0.036  (S/cm2)
    gl      = 0.0003 (S/cm2)  
    el       = -54.3 (mV)       : leakage reversal potential
    gamma_na = 20  (pS)		: single channel sodium conductance
    gamma_k  = 15  (pS)		: single channel potassium conductance
    seed = 5061983              : always use the same seed
} : end PARAMETER


STATE {
    m h n yy zz
} : end STATE


ASSIGNED {
    ina        (mA/cm2)
    ik         (mA/cm2)
    il         (mA/cm2)
    gna        (S/cm2)
    gk         (S/cm2)
    ena        (mV)
    ek         (mV)
    
    dt         (ms)
    area       (um2)
    celsius    (degC)
    v          (mV)
        
    Nna  (1) : number of potassium channels
    Nk   (1) : number of sodium channels
    
    m_inf h_inf n_inf
    noise_y noise_z
    var_y (ms2) var_z (ms2)
    tau_m (ms) tau_h (ms) tau_n (ms) tau_y (ms) tau_z (ms)
    : these auxiliary variables are only needed if the exact method of solution is used
    mu_y mu_z
} : end ASSIGNED

INITIAL {
    Nna = ceil(((1e-8)*area)*(gnabar)/((1e-12)*gamma_na))   : area in um2 -> 1e-8*area in cm2; gnabar in S/cm2; gamma_na in pS -> 1e-12*gamma_na in S
    Nk = ceil(((1e-8)*area)*(gkbar)/((1e-12)*gamma_k))   : area in um2 -> 1e-8*area in cm2; gkbar in S/cm2; gamma_k in pS -> 1e-12*gamma_k in S
    
    rates(v)
    m = m_inf
    h = h_inf
    n = n_inf
    yy = 0.
    zz = 0.
    set_seed(seed)
} : end INITIAL


BREAKPOINT {
    SOLVE states
    gna = gnabar * (m*m*m*h + zz)
    if (gna < 0) {
	gna = 0
    }
    gk = gkbar * (n*n*n*n + yy)
    if (gk < 0) {
	gk = 0
    }
    ina = gna * (v - ena)
    ik  = gk * (v - ek)
    il  = gl * (v - el)
} : end BREAKPOINT


PROCEDURE states() {
    rates(v)
    m = m + dt * (m_inf-m)/tau_m
    h = h + dt * (h_inf-h)/tau_h
    n = n + dt * (n_inf-n)/tau_n
    : Exact
    yy = yy*mu_y + noise_y
    zz = zz*mu_z + noise_z
    : Euler-Maruyama
    :yy = yy - dt * yy / tau_y + noise_y
    :zz = zz - dt * zz / tau_z + noise_z
    
    :consistency() 
    VERBATIM
    return 0;
    ENDVERBATIM
} : end PROCEDURE states()


PROCEDURE rates(Vm (mV)) { 
    LOCAL a,b,m3_inf,n4_inf,q10,sum,var_z1,var_z2,var_z3,var_z4,var_z5,var_z6,var_z7,tau_z1,tau_z2,tau_z3,tau_z4,tau_z5,tau_z6,tau_z7,var_y1,var_y2,var_y3,var_y4,one_minus_m,one_minus_h,one_minus_n
    
    UNITSOFF
    
    q10 = 3.^((celsius-6.3)/10.)
    
    : alpha_m and beta_m
    a = alpham(Vm)
    b = betam(Vm)
    sum = a+b
    tau_m = 1. / (q10*sum)
    m_inf = a / sum
    one_minus_m = 1. - m_inf
    m3_inf = m_inf*m_inf*m_inf

    : alpha_h and beta_h
    a = alphah(Vm)
    b = betah(Vm)
    sum = a+b
    tau_h = 1. / (q10*sum)
    h_inf = a / sum
    one_minus_h = 1. - h_inf
    
    tau_z1 = tau_h
    tau_z2 = tau_m
    tau_z3 = tau_m/2
    tau_z4 = tau_m/3
    tau_z5 = tau_m*tau_h/(tau_m+tau_h)
    tau_z6 = tau_m*tau_h/(tau_m+2*tau_h)
    tau_z7 = tau_m*tau_h/(tau_m+3*tau_h)
    var_z1 = 1.0 / Nna * m3_inf*m3_inf*h_inf * one_minus_h
    var_z2 = 3.0 / Nna * m3_inf*m_inf*m_inf*h_inf*h_inf * one_minus_m
    var_z3 = 3.0 / Nna * m3_inf*m_inf*h_inf*h_inf * one_minus_m*one_minus_m
    var_z4 = 1.0 / Nna * m3_inf*h_inf*h_inf * one_minus_m*one_minus_m*one_minus_m
    var_z5 = 3.0 / Nna * m3_inf*m_inf*m_inf*h_inf * one_minus_m*one_minus_h
    var_z6 = 3.0 / Nna * m3_inf*m_inf*h_inf * one_minus_m*one_minus_m*one_minus_h
    var_z7 = 1.0 / Nna * m3_inf*h_inf * one_minus_m*one_minus_m*one_minus_m*one_minus_h
    
    tau_z = (var_z1+var_z2+var_z3+var_z4+var_z5+var_z6+var_z7) / (var_z1/tau_z1+var_z2/tau_z2+var_z3/tau_z3+var_z4/tau_z4+var_z5/tau_z5+var_z6/tau_z6+var_z7/tau_z7)
    var_z = 1.0 / Nna * m3_inf * h_inf * (1.0 - m3_inf*h_inf)
     
    : Exact
    mu_z = exp(-dt/tau_z)
    noise_z = sqrt(var_z * (1-mu_z*mu_z)) * normrand(0,1)
    : Euler-Maruyama
    :noise_z = sqrt(2 * dt * var_z / tau_z) * normrand(0,1)
    
    : alpha_n and beta_n
    a = alphan(Vm)
    b = betan(Vm)
    sum = a+b
    tau_n = 1. / (q10*sum)
    n_inf = a / sum
    one_minus_n = 1. - n_inf
    n4_inf = n_inf * n_inf * n_inf * n_inf
    
    var_y1 = 4.0/Nk * n4_inf*n_inf*n_inf*n_inf * one_minus_n
    var_y2 = 6.0/Nk * n4_inf*n_inf*n_inf * one_minus_n*one_minus_n
    var_y3 = 4.0/Nk * n4_inf*n_inf * one_minus_n*one_minus_n*one_minus_n
    var_y4 = 1.0/Nk * n4_inf * one_minus_n*one_minus_n*one_minus_n*one_minus_n

    tau_y = (var_y1+var_y2+var_y3+var_y4) / (var_y1/tau_n + var_y2/tau_n/2 + var_y3/tau_n/3 + var_y4/tau_n/4)
    var_y = 1.0/Nk * n4_inf * (1.0-n4_inf)
    
    : Exact
    mu_y = exp(-dt/tau_y)
    noise_y = sqrt(var_y * (1-mu_y*mu_y)) * normrand(0,1)
    : Euler-Maruyama
    :noise_y = sqrt(2 * dt * var_y / tau_y) * normrand(0,1)
    
    UNITSON
}

PROCEDURE consistency(){
    if (m > 1) {
	m = 1
    }
    if (m < 0) {
	m = 0
    }
    if (h > 1) {
        h = 1
    }
    if (h < 0) {
	h = 0
    }
    if (n > 1) {
	n = 1
    }
    if (n < 0) {
	n = 0
    } 
}


FUNCTION vtrap(x,y) {  :Traps for 0 in denominator of rate eqns.
    if (fabs(x/y) < 1e-6) {
        vtrap = y*(1 - x/y/2)
    }else{
        vtrap = x/(exp(x/y) - 1)
    }
}


FUNCTION alpham(Vm (mV)) (/ms) {
    UNITSOFF
    alpham = .1 * vtrap(-(Vm+40),10)
    UNITSON
}


FUNCTION betam(Vm (mV)) (/ms) {
    UNITSOFF
    betam =  4 * exp(-(Vm+65)/18)
    UNITSON
}


FUNCTION alphah(Vm (mV)) (/ms) {
    UNITSOFF
    alphah = .07 * exp(-(Vm+65)/20)
    UNITSON
}


FUNCTION betah(Vm (mV)) (/ms) {
    UNITSOFF
    betah = 1 / (exp(-(Vm+35)/10) + 1)
    UNITSON
}


FUNCTION alphan(Vm (mV)) (/ms) {
    UNITSOFF
    alphan = .01*vtrap(-(Vm+55),10) 
    UNITSON
}


FUNCTION betan(Vm (mV)) (/ms) {
    UNITSOFF
    betan = .125*exp(-(Vm+65)/80)
    UNITSON
}

COMMENT
PROCEDURE evaluate_fct(v(mV)) { 
    LOCAL a, b, q10, sum
    UNITSOFF
    
    q10 = 3^((celsius-6.3)/10)
    
    : alpha_m and beta_m
    a = alpham(v)
    b = betam(v)
    sum = a+b
    tau_m = 1. / (q10*sum)
    m_inf = a / sum
    var_m = (a*(1-m) + b*m) / Nna
    m_noise = nom * sqrt(var_m * dt) * normrand(0,1)
        
    : alpha_h and beta_h
    a = alphah(v)
    b = betah(v)
    sum = a+b
    tau_h = 1. / (q10*sum)
    h_inf = a / sum
    var_h = (a*(1-h) + b*h) / Nna
    h_noise = noh * sqrt(var_h * dt) * normrand(0,1)
    
    : alpha_n and beta_n
    a = alphan(v)
    b = betan(v)
    sum = a+b
    tau_n = 1. / (q10*sum)
    n_inf = a / sum
    var_n = (a*(1-n) + b*n) / Nk
    n_noise = non * sqrt(var_n * dt) * normrand(0,1)
    UNITSON
}
ENDCOMMENT