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]
Citations  Citation Browser
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

// this is a copy of the channels of the granule cell model
// used also for the axons in Maex & De Schutter 2007

/*********************************************************************
**               The current equations themselves 
*********************************************************************/


float offset = 0.010 // 0.0 // 0.010

function make_Axon_chans

    float temperature = 5
    int i, cdivs
    float zinf, ztau, c, dc, cmin, cmax
    float x, dx, y
    float a, b
    /* The folowing variables are temporary (not temperature) variables
	used to speed up computations */
    float mintau
    float tau
    float temp1
    float temp2

    /* Equations specific to the Granule cell, made by CP */
    /* Inactivating Na current */

	create tabchannel Axon_InNa
	setfield Axon_InNa Ek {ENa} Gbar 70 Ik 0 Gk 0 Xpower 3 Ypower 1  \
	    Zpower 0

	call Axon_InNa TABCREATE X {tab_xdivs} {tab_xmin} {tab_xmax}

	x = {tab_xmin} - {offset}
	dx = ({tab_xmax} - {tab_xmin})/{tab_xdivs}
	mintau = (1e-3*0.05)
	temp1 = (1e3*1.5)

        openfile Axon_InNa_a_max_37.test w
        openfile Axon_InNa_a_tau_37.test w

	for (i = 0; i <= ({tab_xdivs}); i = i + 1)
		temp2 = ((x) + 39e-3) // instead of ((x) + 39e-3)
		a = (temp1)*({exp {0.081e3*(temp2)}})
		b = (temp1)*({exp {-0.066e3*(temp2)}})
		tau = 1/(a + b)

		if (tau  < (mintau))		// tau_min is 0.05*5e-3 

			setfield Axon_InNa X_A->table[{i}] {mintau / temperature}
		else
			setfield Axon_InNa X_A->table[{i}] {tau / temperature}
		end
		//Xinf
		setfield Axon_InNa X_B->table[{i}] {a*tau}

                writefile Axon_InNa_a_max_37.test {x} {getfield Axon_InNa X_B->table[{i}]}
                writefile Axon_InNa_a_tau_37.test {x} {getfield Axon_InNa X_A->table[{i}]}

		x = x + dx
	end
	tweaktau Axon_InNa X
	setfield Axon_InNa X_A->calc_mode 1 X_B->calc_mode 1

        closefile Axon_InNa_a_max_37.test
        closefile Axon_InNa_a_tau_37.test

	call Axon_InNa TABCREATE Y {tab_xdivs} {tab_xmin} {tab_xmax}
	x = {tab_xmin} - {offset}
	mintau = (1e-3*0.225)
	temp1 = (1e3*0.12)

        openfile Axon_InNa_i_max_37.test w
        openfile Axon_InNa_i_tau_37.test w

// trying to increase threshold

	for (i = 0; i <= ({tab_xdivs}); i = i + 1)
		temp2 = (0.089e3)*(((x) + 50e-3)) // instead of (0.089e3)*(((x) + 50e-3))
		a = (temp1)*({exp {-(temp2)}})
		b = (temp1)*({exp {temp2}})
		tau = 1/(a + b)

		if (tau < mintau)		// tau_min is 0.225*5e-3 

			setfield Axon_InNa Y_A->table[{i}] {mintau / temperature}
		else
			//Xinf
			setfield Axon_InNa Y_A->table[{i}] {tau / temperature}
		end
		setfield Axon_InNa Y_B->table[{i}] {a*tau}

                writefile Axon_InNa_i_max_37.test {x} {getfield Axon_InNa Y_B->table[{i}]}
                writefile Axon_InNa_i_tau_37.test {x} {getfield Axon_InNa Y_A->table[{i}]}

		x = x + dx

	end
	tweaktau Axon_InNa Y
	setfield Axon_InNa Y_A->calc_mode 1 Y_B->calc_mode 1

        closefile Axon_InNa_i_max_37.test
        closefile Axon_InNa_i_tau_37.test

    call Axon_InNa TABSAVE tabAxonInNa.dat

    call Axon_InNa TABFILL X 3000 0
    call Axon_InNa TABFILL Y 3000 0


// Delayed Rectifier K current 

	create tabchannel Axon_KDr
	setfield Axon_KDr Ek {EK} Gbar 19 Ik 0 Gk 0 Xpower 4 Ypower 1  \
	    Zpower 0

	call Axon_KDr TABCREATE X {tab_xdivs} {tab_xmin} {tab_xmax}
	x = {tab_xmin} - {offset}
	dx = ({tab_xmax} - {tab_xmin})/{tab_xdivs}
	temp1 = 1e3*0.17

        openfile Axon_Kdr_a_max.test w
        openfile Axon_Kdr_a_tau.test w

	for (i = 0; i <= ({tab_xdivs}); i = i + 1)
		temp2 = x + 38e-3
		a = temp1*({exp {0.073e3*(temp2)}})
		b = temp1*({exp {-0.018e3*(temp2)}})

		setfield Axon_KDr X_A->table[{i}] {temperature * a}
		setfield Axon_KDr X_B->table[{i}] {temperature * (a + b)}

                writefile Axon_Kdr_a_tau.test {x} {1 / (temperature * (a + b))}
                writefile Axon_Kdr_a_max.test {x} {a / (a + b)}

		x = x + dx
	end
	setfield Axon_KDr X_A->calc_mode 1 X_B->calc_mode 1

        closefile Axon_Kdr_a_max.test
        closefile Axon_Kdr_a_tau.test

	call Axon_KDr TABCREATE Y {tab_xdivs} {tab_xmin} {tab_xmax}
	x = {tab_xmin} - {offset}

        openfile Axon_KDr_i_max.test w
        openfile Axon_KDr_i_tau.test w

	for (i = 0; i <= ({tab_xdivs}); i = i + 1)
		if (x > -0.046)  
                          a = 0.76
                else      a = 1e3*(0.0007 + 0.000065*({exp {-0.08e3*(x + 46e-3)}}))
	        end
        	b = 1e3*(110e-5)/(1 + ({exp {-0.0807e3*(x + 44e-3)}}))

		setfield Axon_KDr Y_A->table[{i}] {temperature * a}
		setfield Axon_KDr Y_B->table[{i}] {temperature * (a + b)}

		writefile Axon_KDr_i_tau.test {x} {1 / (temperature * (a + b))}
                writefile Axon_KDr_i_max.test {x} {a / (a + b)}

                x = x + dx
	end
	setfield Axon_KDr Y_A->calc_mode 1 Y_B->calc_mode 1

        closefile Axon_KDr_i_tau.test
        closefile Axon_KDr_i_max.test

    call Axon_KDr TABSAVE tabAxonKDr.dat

    call Axon_KDr TABFILL X 3000 0
    call Axon_KDr TABFILL Y 3000 0

end