Phase response curves firing rate dependency of rat purkinje neurons in vitro (Couto et al 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:155735
NEURON implementation of stochastic gating in the Khaliq-Raman Purkinje cell model. NEURON implementation of the De Schutter and Bower model of a Purkinje Cell. Matlab scripts to compute the Phase Response Curve (PRC). LCG configuration files to experimentally determine the PRC. Integrate and Fire models (leaky and non-leaky) implemented in BRIAN to see the influence of the PRC in a network of unconnected neurons receiving sparse common input.
Reference:
1 . Couto J, Linaro D, De Schutter E, Giugliano M (2015) On the firing rate dependency of the phase response curve of rat Purkinje neurons in vitro. PLoS Comput Biol 11:e1004112 [PubMed]
2 . Linaro D, Couto J, Giugliano M (2014) Command-line cellular electrophysiology for conventional and real-time closed-loop experiments. J Neurosci Methods 230:5-19 [PubMed]
Citations  Citation Browser
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): Cerebellum Purkinje GABA cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB; Brian; LCG; Python;
Model Concept(s): Phase Response Curves;
Implementer(s): Couto, Joao [jpcouto at gmail.com];
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell;
: Ih current
: Created 8/6/02 - nwg

NEURON {
    SUFFIX hpkj_cn
    NONSPECIFIC_CURRENT i
    RANGE ghbar, eh
    GLOBAL ninf, ntau
    : channel noise - start
    RANGE gh, gamma_h
    RANGE Nh, one_over_Nh
    RANGE seed
    : channel noise - end
}

UNITS {
    (mA) = (milliamp)
    (mV) = (millivolt)
    (S) = (siemens)
    : channel noise - start
    (pS) = (picosiemens)
    : channel noise - end
}

PARAMETER {
    v	 	(mV)
    
    ghbar = .0001	(S/cm2)
    
    eh = -30	(mV)
    : channel noise - start
    seed = 5061983 (1)
    gamma_h = 10 (pS)
    : channel noise - end
}

ASSIGNED {
    i (mA/cm2)
    ninf
    ntau
    
    : channel noise - start
    gh (S/cm2)
    Nh (1)
    one_over_Nh (1)
    
    dt (ms)
    area (um2)
    
    tau_hpkj (ms)
    sigma_hpkj (ms2)
    noise_hpkj
    mu_hpkj
    : channel noise - end
}

STATE {
    n
    : channel noise - start
    z_hpkj
    : channel noise - end
}

INITIAL {
    rates(v)
    n = ninf
    : channel noise - start
    Nh = ceil(((1e-8)*area)*(ghbar)/((1e-12)*gamma_h))
    one_over_Nh = 1.0 / Nh
    printf("ihpkj>> the number of channels is %.0f.\n", Nh)
    z_hpkj = 0.
    : channel noise - end

}

BREAKPOINT {
    SOLVE states
    gh = ghbar * (n + z_hpkj)
    if (gh < 0) {
        gh = 0
    }
    else if (gh > ghbar) {
        gh = ghbar
    }
    i = gh * (v - eh)
}

PROCEDURE states() {
    rates(v)
    n = n + dt * (ninf - n) / ntau
    : channel noise - start
    z_hpkj = z_hpkj*mu_hpkj + noise_hpkj
    : channel noise - end
}

PROCEDURE rates(v (mV)) {
    ninf = 1/(1+exp((v+90.1)/9.9))
    ntau = 1000 * (.19 + .72*exp(-((v-(-81.5))/11.9)^2))
    : channel noise - start
    mu_hpkj = exp(-dt/ntau)
    sigma_hpkj = one_over_Nh * ninf * (1-ninf)
    noise_hpkj = sqrt(sigma_hpkj * (1-mu_hpkj*mu_hpkj)) * normrand(0,1)
   : channel noise - end    
}