Hodgkin-Huxley models of different classes of cortical neurons (Pospischil et al. 2008)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:123623
"We review here the development of Hodgkin- Huxley (HH) type models of cerebral cortex and thalamic neurons for network simulations. The intrinsic electrophysiological properties of cortical neurons were analyzed from several preparations, and we selected the four most prominent electrophysiological classes of neurons. These four classes are 'fast spiking', 'regular spiking', 'intrinsically bursting' and 'low-threshold spike' cells. For each class, we fit 'minimal' HH type models to experimental data. ..."
Reference:
1 . Pospischil M, Toledo-Rodriguez M, Monier C, Piwkowska Z, Bal T, Frégnac Y, Markram H, Destexhe A (2008) Minimal Hodgkin-Huxley type models for different classes of cortical and thalamic neurons. Biol Cybern 99:427-41 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Channel/Receptor;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex V1 L6 pyramidal corticothalamic GLU cell; Neocortex V1 L2/6 pyramidal intratelencephalic GLU cell; Neocortex fast spiking (FS) interneuron; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s): I Na,t; I L high threshold; I T low threshold; I K; I M;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Parameter Fitting; Simplified Models;
Implementer(s): Destexhe, Alain [Destexhe at iaf.cnrs-gif.fr];
Search NeuronDB for information about:  Neocortex V1 L6 pyramidal corticothalamic GLU cell; Neocortex V1 L2/6 pyramidal intratelencephalic GLU cell; I Na,t; I L high threshold; I T low threshold; I K; I M;
/
PospischilEtAl2008
README.html *
cadecay_destexhe.mod *
HH_traub.mod *
IL_gutnick.mod
IM_cortex.mod *
IT_huguenard.mod *
demo_IN_FS.hoc *
demo_PY_IB.hoc *
demo_PY_IBR.hoc *
demo_PY_LTS.hoc *
demo_PY_RS.hoc *
fig5b.jpg *
mosinit.hoc *
rundemo.hoc *
sIN_template *
sPY_template *
sPYb_template *
sPYbr_template *
sPYr_template *
                            
/*----------------------------------------------------------------------------

	Simplified model of fast-spiking cortical neuron
	================================================

        Single-compartment model of "fast-spiking" cortical neurons,
        which is the most commonly encountered electrophysiological type
        of inhibitory (interneuron) cell in cortex.  The model is based
	on the presence of two voltage-dependent currents: 
        - INa, IK: action potentials
	(no spike-frequency adaptation in this model)


  Model described in:

   Pospischil, M., Toledo-Rodriguez, M., Monier, C., Piwkowska, Z., 
   Bal, T., Fregnac, Y., Markram, H. and Destexhe, A.
   Minimal Hodgkin-Huxley type models for different classes of
   cortical and thalamic neurons.
   Biological Cybernetics 99: 427-441, 2008.

  The model was taken from a thalamocortical model, described in:

   Destexhe, A., Contreras, D. and Steriade, M.
   Mechanisms underlying the synchronizing action of corticothalamic
   feedback through inhibition of thalamic relay cells.
   J. Neurophysiol. 79: 999-1016, 1998.


        Alain Destexhe, CNRS, 2009
	http://cns.iaf.cnrs-gif.fr

----------------------------------------------------------------------------*/


//----------------------------------------------------------------------------
//  load and define general graphical procedures
//----------------------------------------------------------------------------

load_file("stdrun.hoc")

objectvar g[20]			// max 20 graphs
ngraph = 0

proc addgraph() { local ii	// define subroutine to add a new graph
				// addgraph("variable", minvalue, maxvalue)
	ngraph = ngraph+1
	ii = ngraph-1
	g[ii] = new Graph()
	g[ii].size(tstart,tstop,$2,$3)
	g[ii].xaxis()
	g[ii].yaxis()
	g[ii].addvar($s1,1,0)
	g[ii].save_name("graphList[0].")
	graphList[0].append(g[ii])
}

proc addtext() { local ii	// define subroutine to add a text graph
				// addtext("text")
	ngraph = ngraph+1
	ii = ngraph-1
	g[ii] = new Graph()
	g[ii].size(0,tstop,0,1)
	g[ii].xaxis(3)
	g[ii].yaxis(3)
	g[ii].label(0.1,0.8,$s1)
	g[ii].save_name("graphList[0].")
	graphList[0].append(g[ii])
	text_id = ii
}

proc addline() {		// to add a comment to the text window
				// addline("text")
	g[text_id].label($s1)
}


  nrnmainmenu()			// create main menu
  nrncontrolmenu()		// crate control menu


//----------------------------------------------------------------------------
//  transient time
//----------------------------------------------------------------------------

trans = 0000

print " "
print ">> Transient time of ",trans," ms"
print " "









//----------------------------------------------------------------------------
//  create IN cells
//----------------------------------------------------------------------------

print " "
print "<<==================================>>"
print "<<            CREATE CELLS          >>"
print "<<==================================>>"
print " "

xopen("sIN_template")		// read geometry file

ncells = 1			// nb of cells in each layer <<>>

objectvar IN[ncells]
for i=0,ncells-1 {
  IN[i] = new sIN()
}









//----------------------------------------------------------------------------
//  insert electrode in each IN cell
//----------------------------------------------------------------------------

if(ismenu==0) {
  load_file("electrod.hoc")	// electrode template
  ismenu = 1
}

objectvar El[ncells]			// create electrodes

CURR_AMP = 0.5

for i=0,ncells-1 {			// insert one in each cell
	IN[i].soma El[i] = new Electrode()
	IN[i].soma El[i].stim.loc(0.5)
	El[i].stim.del = 300
	El[i].stim.dur = 400
	El[i].stim.amp = CURR_AMP
}

electrodes_present=1






//----------------------------------------------------------------------------
//  setup simulation parameters
//----------------------------------------------------------------------------

Dt = 0.1			// macroscopic time step <<>>
npoints = 10000

dt = 0.1			// must be submultiple of Dt
tstart = trans
tstop = trans + npoints * Dt
runStopAt = tstop
steps_per_ms = 5
celsius = 36
v_init = -70






//----------------------------------------------------------------------------
//  add graphs
//----------------------------------------------------------------------------

strdef gtxt

if(batch == 0) {
  for i=0,ncells-1 {
	sprint(gtxt,"IN[%d].soma.v(0.5)",i)
	addgraph(gtxt,-120,40)
  }
}





//----------------------------------------------------------------------------
//  add text
//----------------------------------------------------------------------------

access IN[0].soma

proc text() {
  sprint(gtxt,"%d IN cells",ncells)
  addtext(gtxt)
  sprint(gtxt,"Passive: gleak=%g Eleak=%g",IN.soma.g_pas,IN.soma.e_pas)
  addline(gtxt)
  sprint(gtxt,"HH: gNa=%g, gK=%g, vtraub=%g",IN.soma.gnabar_hh2,\
  IN.soma.gkbar_hh2,IN.soma.vtraub_hh2)
  addline(gtxt)
}


Loading data, please wait...