Model of repetitive firing in Grueneberg ganglion olfactory neurons (Liu et al., 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:151817
This model is constructed based on properties of Na+ and K+ currents observed in whole-cell patch clamp recordings of mouse Grueneberg ganglion neurons in acute slices. Two distinct Na+ conductances representing the TTX-sensitive and TTX-resistant currents and one delayed rectifier K+ currrent are included. By modulating the maximal conductances of Na+ currents, one can reproduce the regular, phasic, and sporadic patterns of repetitive firing found in the patch clamp experiments.
Reference:
1 . Liu CY, Xiao C, Fraser SE, Lester HA, Koos DS (2012) Electrophysiological characterization of Grueneberg ganglion olfactory neurons: spontaneous firing, sodium conductance, and hyperpolarization-activated currents. J Neurophysiol 108:1318-34 [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): Olfactory receptor GLU cell; Grueneberg ganglion neuron;
Channel(s): I K; I K,leak; I Sodium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Temporal Pattern Generation; Action Potentials; Rebound firing; Recurrent Discharge; Olfaction;
Implementer(s): Liu, Cambrian [camliu at chla.usc.edu];
Search NeuronDB for information about:  Olfactory receptor GLU cell; I K; I K,leak; I Sodium;
/
GG
readme.txt
code_holder.hoc
elvis.ses
elvism10.ses
elvisp10.ses
graphs.hoc
gui_controller.hoc
hvas.ses
iclamp.hoc
init.hoc
kchannels.ses
leak.ses
mosinit.hoc *
runner.hoc
soma.hoc
                            
func an() {
	if ($1 == -66) {
		return (0.007*(65.99-66)/(exp((65.99-66)/1.4)-1))
	} else {
		return (0.007*(-1*$1-66)/(exp((-1*$1-66)/1.4)-1))
	}
}

func bn() {
	return (0.37*exp((-1*$1-66)/35))
}

func ninf() {
	return (an($1)/(an($1)+bn($1)))
}

func amS() {
	return (0.5*(-1*$1-33)/(exp((-1*$1-33)/4)-1))
}

func bmS() {
	return (2.4*exp((-1*$1-65)/21))
}

func ahS() {
	return (1.1*exp((-1*$1-65)/8))
}

func bhS() {
	return (1/(exp((-1*$1-50)/4)+1))
}

func minfS() {
	return (amS($1)/(amS($1)+bmS($1)))
}

func hinfS() {
	return (ahS($1)/(ahS($1)+bhS($1)))
}

func amR() {
	if ($1 == -54) {
		return (0.25*(53.99-54)/(exp((53.99-54)/2.3)-1))
	} else {
		return (0.25*(-1*$1-54)/(exp((-1*$1-54)/2.3)-1))
	}
}

func bmR() {
	return (0.86*exp((-1*$1-66)/29))
}

func ahR() {
	return (0.025*exp((-1*$1-65)/10.5))
}

func bhR() {
	return (1.6/(exp((-1*$1-43)/31)+1))
}

func minfR() {
	return (amR($1)/(amR($1)+bmR($1)))
}

func hinfR() {
	return (ahR($1)/(ahR($1)+bhR($1)))
}

Loading data, please wait...