5-neuron-model of neocortex for producing realistic extracellular AP shapes (Van Dijck et al. 2012)

 Download zip file 
Help downloading and running models
Accession:226812
This is a 5-neuron model of neocortex, containing one tufted layer-5 pyramidal cell, two non-tufted pyramidal cells, and two inhibitory interneurons. It was used to reproduce extracellular spike shapes in a study comparing algorithms for spike sorting and electrode selection. The neuron models are adapted from Dyhrfjeld-Johnsen et al. (2005).
Reference:
1 . Van Dijck G, Seidl K, Paul O, Ruther P, Van Hulle MM, Maex R (2012) Enhancing the yield of high-density electrode arrays through automated electrode selection. Int J Neural Syst 22:1-19 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Extracellular; Neuron or other electrically excitable cell; Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Neocortex U1 L5B pyramidal pyramidal tract GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: GENESIS;
Model Concept(s):
Implementer(s): Maex, Reinoud [reinoud at bbf.uia.ac.be];
Search NeuronDB for information about:  Neocortex U1 L5B pyramidal pyramidal tract GLU cell; Neocortex U1 L2/6 pyramidal intratelencephalic GLU cell;
/
Five-neuron-neocortex
L5P37C-onlybasal
channels
README
Axon_chans.g *
Axon_chans_tab.g
Axon_comps.g
DiffRm.g *
DS1_141099_rot2_sc_defmesh_axon_onlybasal.p
electrodes_fixbug.g
electrodes_try.g *
Excitatory_fibres.g
Fibres.g *
Firing_rate_modulation.g *
Firing_rate_profile.g *
Golgi_grc_multicomp_ax.g
Gran_chan_tab.g *
Gran_comp_soma_dend_axon.g
Gran_const.g *
Gran_synchan.g *
Harsch-Robinson_modulation.g *
Hgradient.g *
Inhibitory_fibres.g *
L5P_ascout.g
L5P_ascout_exp.g *
L5P_chans.g *
L5P_chans_tab.g
L5P_chans_tab_Temp.g *
L5P_chans_Temp.g *
L5P_comps.g *
L5P_comps+axon+syn.g
L5P_const.g *
L5P_const+axon+syn.g *
L5P_graph.g
L5P_history.g
L5P_onlybasal_make.g
L5P_synchan.g
L5P37C_onlybasal.g
nsynapses.g *
                            
//genesis

//changed only names of synaptic channels to make it compatible with L5P
//and added soma/spike for same reasons

// copied from Golg_comp_soma_dend.g
 
// copied from Golgi_comp.g
// makes soma and dendritic compartment
// no synapses on soma
// no InNa and KDr on dendrite

// modification MAEX 16/4/96
// mf_NMDA synchan removed (not used)
// pf_AMPA synchan added for selective normalization of mossy fiber and
// parallel fiber inputs

/**********************************************************************
This is a copy of the single-compartment Granule cell comp (CP, RM),
except for the inclusion of a nerstpotential object for calcium, which
is copied from the Purkinje cell model (EDS), and for the addition of
a spike generation object
********************************************************************/

/*********************************************************************
function make_interneuron_comps 	(see make_Granule_comps)	
*********************************************************************/

function make_Granule_comps_soma_dend_axon


/* separate function so we can have local variables */

	float len, dia, surf, shell_vol, shell_dia

	/* make spherical soma prototype with sodium currents*/
	len = 0.00e-6
	dia = 1
	surf = dia*dia*{PI}
	shell_dia = dia - 2*{Shell_thick}
	shell_vol = (dia*dia*dia - shell_dia*shell_dia*shell_dia)*{PI}/6.0

	if (!({exists soma}))
		create compartment soma
	end
	// F
	// ohm, correct for sphere
	// V
	// V
	// ohm

//        ce /library/granule

	setfield soma Cm {{CM}*surf} Ra {8.0*{RA}/(dia*{PI})}  \
	    Em {EREST_ACT} Vm {RESET_ACT} Rm {{RMs}/surf} inject 0.0  \
	    dia {dia} len {len}

	// Now copy the channels and set maximal conductances */


        if (!({exists soma/InNa}))
        	copy Gran_InNa soma/InNa
	        addmsg soma soma/InNa VOLTAGE Vm
	        addmsg soma/InNa soma CHANNEL Gk Ek
	end
        setfield soma/InNa Gbar {{GInNas}*surf}
        if (!({exists soma/KDr}))
        	copy Gran_KDr soma/KDr
	        addmsg soma soma/KDr VOLTAGE Vm
	        addmsg soma/KDr soma CHANNEL Gk Ek
	end
        setfield soma/KDr Gbar {{GKDrs}*surf}
	if (!({exists soma/KA}))
                copy Gran_KA soma/KA
	        addmsg soma soma/KA VOLTAGE Vm
	        addmsg soma/KA soma CHANNEL Gk Ek
	end
        setfield soma/KA Gbar {{GKAs}*surf}
	if (!({exists soma/CaHVA}))
                copy Gran_CaHVA soma/CaHVA
	        addmsg soma soma/CaHVA VOLTAGE Vm
	        addmsg soma/CaHVA soma CHANNEL Gk Ek
	end
        setfield soma/CaHVA Gbar {{GCaHVAs}*surf}
	if (!({exists soma/H}))
                copy Gran_H soma/H
	        addmsg soma soma/H VOLTAGE Vm
	        addmsg soma/H soma CHANNEL Gk Ek
	end
        setfield soma/H Gbar {{GHs}*surf}
        if (!({exists soma/Moczyd_KC}))
                copy Moczyd_KC soma/Moczyd_KC
	        addmsg soma soma/Moczyd_KC VOLTAGE Vm
	        addmsg soma/Moczyd_KC soma CHANNEL Gk Ek
	end
        setfield soma/Moczyd_KC Gbar {{GMocs}*surf}

/*
	if (!({exists soma/mf_AMPA}))
                copy AMPA soma/mf_AMPA
	        addmsg  soma/mf_AMPA  soma CHANNEL Gk  Ek
	        addmsg  soma soma/mf_AMPA  VOLTAGE Vm
        end
	setfield soma/mf_AMPA 	gmax    {{getfield soma/mf_AMPA gmax} * surf}
//        setfield soma/mf_AMPA normalize_weights 1
*/

	if (!({exists soma/AMPA}))
//                copy AMPA soma/AMPA
                copy AMPA soma/AMPA
	        addmsg  soma/AMPA  soma CHANNEL Gk  Ek
	        addmsg  soma soma/AMPA  VOLTAGE Vm
        end
	setfield soma/AMPA 	gmax    {{getfield soma/AMPA gmax} * surf}


/*      if (!({exists soma/mf_NMDA}))
        	copy NMDA soma/mf_NMDA
	        addmsg  soma/mf_NMDA soma/mf_NMDA/Mg_BLOCK CHANNEL Gk Ek
	        addmsg  soma/mf_NMDA/Mg_BLOCK soma CHANNEL Gk Ek
	        addmsg  soma soma/mf_NMDA/Mg_BLOCK VOLTAGE Vm
	        addmsg  soma soma/mf_NMDA VOLTAGE Vm
        end
	setfield soma/mf_NMDA 	gmax    {GNMDAs * surf} 
*/

/*
// had to change here GABAA by GABA
        if (!({exists soma/GABAA}))
                copy GABA soma/GABAA
                addmsg  soma/GABAA soma CHANNEL Gk Ek
                addmsg  soma soma/GABAA VOLTAGE Vm
        end
        setfield soma/GABAA gmax {G_GABAAs * surf}
*/


// had to change here GABAA by GABA
        if (!({exists soma/GABA}))
                copy GABA soma/GABA
                addmsg  soma/GABA soma CHANNEL Gk Ek
                addmsg  soma soma/GABA VOLTAGE Vm
        end
        setfield soma/GABA gmax {G_GABAAs * surf}



        if (!({exists soma/GABA}))
                copy GABA soma/GABA
                addmsg  soma/GABA soma CHANNEL Gk Ek
                addmsg  soma soma/GABA VOLTAGE Vm
        end
        setfield soma/GABA gmax {G_GABAAs * surf}


	//lets keep it simple for now

        if (!{exists soma/Ca_pool})
                create Ca_concen soma/Ca_pool
        	addmsg soma/Ca_pool soma/Moczyd_KC CONCEN Ca
	        addmsg soma/CaHVA soma/Ca_pool I_Ca Ik
        end
	setfield soma/Ca_pool tau {CaTau} \
                              B {1.0/(2.0*96494*shell_vol*{PI}*100/2012.67)} \
                    	    Ca_base {CCaI} thick {Shell_thick}
// the volume of the Ca-pool may not change in this 1C model


	// Possibility of modelling NMDA Ca influx (not done in Gabbiani et al.)
	// Probably not worth the effort (yet).

        if (!{exists soma/Ca_nernst})
                create nernst soma/Ca_nernst
	        addmsg soma/Ca_pool soma/Ca_nernst CIN Ca
        	addmsg soma/Ca_nernst soma/CaHVA EK E
        end
	setfield soma/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
	     scale {1.0} T {37}


   create spikegen soma/spike
   setfield soma/spike thresh -0.01  \
                       abs_refract 0.0015 \
                       output_amp 1
   addmsg soma soma/spike INPUT Vm


/*      create spikegen soma/spike
        setfield soma/spike thresh 0 abs_refract 0.01 output_amp 1
        addmsg soma soma/spike INPUT Vm
*/

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

	/* make cylindrical dendrite prototype */
        len = 1
        dia = 1
        surf = len*dia*{PI}
        shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
	shell_dia = dia - 2*{Shell_thick}
	shell_vol = (dia*dia*dia - shell_dia*shell_dia*shell_dia)*{PI}/6.0
	if (!({exists /library/granule/dend}))
		create compartment /library/granule/dend
	end

        ce /library/granule

	setfield dend Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})}  \ 
	    Em {EREST_ACT} Vm {RESET_ACT} Rm {{RMs}/surf} inject 0.0  \
	    dia {dia} len {len}

	// Now copy the channels and set maximal conductances */


        if (!({exists dend/InNa}))
        	copy Gran_InNa dend/InNa
	        addmsg dend dend/InNa VOLTAGE Vm
	        addmsg dend/InNa dend CHANNEL Gk Ek
	end
        setfield dend/InNa Gbar 0 // {{GInNas}*surf}
        if (!({exists dend/KDr}))
        	copy Gran_KDr dend/KDr
	        addmsg dend dend/KDr VOLTAGE Vm
	        addmsg dend/KDr dend CHANNEL Gk Ek
	end
        setfield dend/KDr Gbar 0 // {{GKDrs}*surf}
	if (!({exists dend/KA}))
                copy Gran_KA dend/KA
	        addmsg dend dend/KA VOLTAGE Vm
	        addmsg dend/KA dend CHANNEL Gk Ek
	end
        setfield dend/KA Gbar {{GKAs}*surf}
	if (!({exists dend/CaHVA}))
                copy Gran_CaHVA dend/CaHVA
	        addmsg dend dend/CaHVA VOLTAGE Vm
	        addmsg dend/CaHVA dend CHANNEL Gk Ek
	end
        setfield dend/CaHVA Gbar {{GCaHVAs}*surf * 0.8}

	if (!({exists dend/H}))
                copy Gran_H dend/H
	        addmsg dend dend/H VOLTAGE Vm
	        addmsg dend/H dend CHANNEL Gk Ek
	end
        setfield dend/H Gbar {{GHs}*surf}

        if (!({exists dend/Moczyd_KC}))
                copy Moczyd_KC dend/Moczyd_KC
	        addmsg dend dend/Moczyd_KC VOLTAGE Vm
	        addmsg dend/Moczyd_KC dend CHANNEL Gk Ek
	end
        setfield dend/Moczyd_KC Gbar {{GMocs}*surf * 0.8}


	if (!({exists dend/AMPA}))
//                copy AMPA dend/AMPA
                copy AMPA dend/AMPA
	        addmsg  dend/AMPA  dend CHANNEL Gk  Ek
	        addmsg  dend dend/AMPA  VOLTAGE Vm
        end
	setfield dend/AMPA 	gmax    {{getfield dend/AMPA gmax} * surf}

/*
	if (!({exists dend/mf_AMPA}))
                copy AMPA dend/mf_AMPA
	        addmsg  dend/mf_AMPA  dend CHANNEL Gk  Ek
	        addmsg  dend dend/mf_AMPA  VOLTAGE Vm
        end
	setfield dend/mf_AMPA 	gmax    {{getfield dend/mf_AMPA gmax} * surf}
//        setfield dend/mf_AMPA normalize_weights 1

	if (!({exists dend/pf_AMPA}))
                copy AMPA dend/pf_AMPA
	        addmsg  dend/pf_AMPA  dend CHANNEL Gk  Ek
	        addmsg  dend dend/pf_AMPA  VOLTAGE Vm
        end
	setfield dend/pf_AMPA 	gmax    {{getfield dend/pf_AMPA gmax} * surf}
//        setfield dend/pf_AMPA normalize_weights 1
*/
/*
        if (!({exists dend/mf_NMDA}))
        	copy NMDA dend/mf_NMDA
	        addmsg  dend/mf_NMDA dend/mf_NMDA/Mg_BLOCK CHANNEL Gk Ek
	        addmsg  dend/mf_NMDA/Mg_BLOCK dend CHANNEL Gk Ek
	        addmsg  dend dend/mf_NMDA/Mg_BLOCK VOLTAGE Vm
	        addmsg  dend dend/mf_NMDA VOLTAGE Vm
        end
	setfield dend/mf_NMDA 	gmax    {GNMDAs * surf}
*/
/*
        if (!({exists dend/GABAA}))
                copy GABA dend/GABAA
                addmsg  dend/GABAA dend CHANNEL Gk Ek
                addmsg  dend dend/GABAA VOLTAGE Vm
        end
        setfield dend/GABAA gmax {G_GABAAs * surf}
//        setfield dend/GABAA normalize_weights 1
*/

        if (!({exists dend/GABA}))
                copy GABA dend/GABA
                addmsg  dend/GABA dend CHANNEL Gk Ek
                addmsg  dend dend/GABA VOLTAGE Vm
        end
        setfield dend/GABA gmax {G_GABAAs * surf}
//        setfield dend/GABAA normalize_weights 1


	//lets keep it simple for now

        if (!{exists dend/Ca_pool})
                create Ca_concen dend/Ca_pool
        	addmsg dend/Ca_pool dend/Moczyd_KC CONCEN Ca
	        addmsg dend/CaHVA dend/Ca_pool I_Ca Ik
        end
	setfield dend/Ca_pool tau {CaTau} \
                              B {1.0/(2.0*96494*shell_vol*{PI}*100/2012.67)} \
                    	    Ca_base {CCaI} thick {Shell_thick}
// the volume of the Ca-pool may not change in this 1C model


	// Possibility of modelling NMDA Ca influx (not done in Gabbiani et al.)
	// Probably not worth the effort (yet).

        if (!{exists dend/Ca_nernst})
                create nernst dend/Ca_nernst
	        addmsg dend/Ca_pool dend/Ca_nernst CIN Ca
        	addmsg dend/Ca_nernst dend/CaHVA EK E
        end
	setfield dend/Ca_nernst Cin {CCaI} Cout {CCaO} valency {2} \
	     scale {1.0} T {37}



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

	/* make cylindrical axon prototype */
        len = 1
        dia = 1
        surf = len*dia*{PI}
        shell_vol = (2*dia*shell_dia - shell_dia*shell_dia)*len*{PI}/4.0
	shell_dia = dia - 2*{Shell_thick}
	shell_vol = (dia*dia*dia - shell_dia*shell_dia*shell_dia)*{PI}/6.0
	if (!({exists /library/granule/axon}))
		create compartment /library/granule/axon
	end

        ce /library/granule

	setfield axon Cm {{CM}*surf} Ra {4.0*{RA}*len/(dia*dia*{PI})}  \ 
	    Em {EREST_ACT} Vm {RESET_ACT} Rm {{RMs}/surf} inject 0.0  \
	    dia {dia} len {len}

	// Now copy the channels and set maximal conductances */


        if (!({exists axon/InNa}))
        	copy Gran_InNa axon/InNa
	        addmsg axon axon/InNa VOLTAGE Vm
	        addmsg axon/InNa axon CHANNEL Gk Ek
	end
        setfield axon/InNa Gbar {{GInNas}*surf}

        if (!({exists axon/KDr}))
        	copy Gran_KDr axon/KDr
	        addmsg axon axon/KDr VOLTAGE Vm
	        addmsg axon/KDr axon CHANNEL Gk Ek
	end
        setfield axon/KDr Gbar {{GKDrs}*surf*1.5}

/*
	if (!({exists axon/pf_AMPA}))
                copy AMPA axon/pf_AMPA
	        addmsg  axon/pf_AMPA  axon CHANNEL Gk  Ek
	        addmsg  axon axon/pf_AMPA  VOLTAGE Vm
        end
	setfield axon/pf_AMPA 	gmax    {{getfield axon/pf_AMPA gmax} * surf}

        if (!({exists axon/GABAA}))
                copy GABAA axon/GABAA
                addmsg  axon/GABAA axon CHANNEL Gk Ek
                addmsg  axon axon/GABAA VOLTAGE Vm
        end
        setfield axon/GABAA gmax {G_GABAAs * surf}
//        setfield axon/GABAA normalize_weights 1
*/




end


Loading data, please wait...