Large scale neocortical model for PGENESIS (Crone et al 2019)

 Download zip file 
Help downloading and running models
Accession:260267
This is model code for a large scale neocortical model based on Traub et al. (2005), modified to run on PGENESIS on supercomputing resources. "In this paper (Crone et al 2019), we evaluate the computational performance of the GEneral NEural SImulation System (GENESIS) for large scale simulations of neural networks. While many benchmark studies have been performed for large scale simulations with leaky integrate-and-fire neurons or neuronal models with only a few compartments, this work focuses on higher fidelity neuronal models represented by 50–74 compartments per neuron. ..."
Reference:
1 . Crone JC, Vindiola MM, Yu AB, Boothe DL, Beeman D, Oie KS, Franaszczuk PJ (2019) Enabling Large-Scale Simulations With the GENESIS Neuronal Simulator Frontiers in Neuroinformatics 13:69
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex;
Cell Type(s): Neocortex L2/3 pyramidal GLU cell; Neocortex L5/6 pyramidal GLU cell; Thalamus reticular nucleus GABA cell; Neocortex fast spiking (FS) interneuron; Neocortex layer 2-3 interneuron; Neocortex layer 5 interneuron; Neocortex spiking low threshold (LTS) neuron; Neocortex spiny stellate cell;
Channel(s): I Sodium; I Potassium; I Calcium;
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Gene(s):
Transmitter(s): Glutamate; Gaba;
Simulation Environment: PGENESIS; GENESIS;
Model Concept(s): Oscillations; Methods; Detailed Neuronal Models; Extracellular Fields;
Implementer(s): Crone, J ; Vindiola, MM ; Yu, AB ; Boothe, DL ; Beeman, Dave; Oie, KS ; Franaszczuk, PJ ; Anderson, WS ; Kudela, Pawel ; Traub, Roger D [rtraub at us.ibm.com];
Search NeuronDB for information about:  Thalamus reticular nucleus GABA cell; Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; GabaA; AMPA; NMDA; I Sodium; I Calcium; I Potassium; Gaba; Glutamate;
/
Crone_et_al_Neocortex_Model_Frontiers_in_Neuroinformatics
config_neuron
synchans
synchansB23FS.g *
synchansB23FSlongrange.g
synchansB5FS.g *
synchansB5FSlongrange.g
synchansC23FS.g *
synchansC23FSlongrange.g
synchansC5FS.g *
synchansC5FSlongrange.g
synchansI23LTS.g *
synchansI23LTSlongrange.g
synchansI5LTS.g *
synchansI5LTSlongrange.g
synchansnRT.g *
synchansnRTlongrange.g
synchansP23FRBa.g *
synchansP23FRBalongrange.g
synchansP23RSa.g *
synchansP23RSalongrange.g
synchansP23RSb.g *
synchansP23RSblongrange.g
synchansP23RSc.g *
synchansP23RSclongrange.g
synchansP23RSd.g *
synchansP23RSdlongrange.g
synchansP5IBa.g *
synchansP5IBalongrange.g
synchansP5IBb.g *
synchansP5IBblongrange.g
synchansP5IBc.g *
synchansP5IBclongrange.g
synchansP5IBd.g *
synchansP5IBdlongrange.g
synchansP5RSa.g *
synchansP5RSalongrange.g
synchansP6RSa.g *
synchansP6RSalongrange.g
synchansP6RSb.g *
synchansP6RSblongrange.g
synchansP6RSc.g *
synchansP6RSclongrange.g
synchansP6RSd.g *
synchansP6RSdlongrange.g
synchansST4RS.g
synchansST4RSlongrange.g
synchansTCR.g *
synchansTCRlongrange.g
                            
//genesis

/* FILE INFORMATION
** "Generic" excitatory (glutamate) and inhibitory (GABA) synaptically
**  activated channels  (based on mitsyn.g by Upi Bhalla)
**
** The channels have an alpha_function type conductance change for
** each synaptic event.
**
** Modified by D. Beeman for GENESIS 2.0 syntax and synchan object - 5/19/94
*/

// CONSTANTS
float EGlu = 0.0
float EGABA = -0.081
float SOMA_A = 1e-9
float GGlu = SOMA_A * 50
float GGABA = SOMA_A * 50

// CONSTANTS for NMDA Channel
float CMg = 1.5     // [Mg] in mM
float eta = 0.33    // per mM
float gamma = 60    // per Volt

//===================================================================
//                     SYNAPTIC CHANNELS   (Values guessed at)
//===================================================================


function make_Ex_ch7P23RSAMPAlongrange

// AMPA synapse for P23RS - P5IB

	if ({exists Ex_ch7P23RSAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7P23RSAMPAlongrange
    	setfield	        Ex_ch7P23RSAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7P23RSNMDAlongrange

// NMDA synapse for P23RS - P5IB

    if ({exists Ex_ch7P23RSNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7P23RSNMDAlongrange

        setfield     Ex_ch7P23RSNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7P23RSNMDAlongrange/block
        setfield         Ex_ch7P23RSNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7P23RSNMDAlongrange Ex_ch7P23RSNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7P23RSNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7P23RSNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7P23RSNMDAlongrange VOLTAGE Vm

end


function make_Inh_ch7B23FSGABAalongrange

//GABA_A synapse for B23FS - P5IB

	if ({exists Inh_ch7B23FSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7B23FSGABAalongrange
    	setfield	        Inh_ch7B23FSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 6.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Ex_ch7P5IBAMPAlongrange

// AMPA synapse for P5IB - P5IB

	if ({exists Ex_ch7P5IBAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7P5IBAMPAlongrange
    	setfield	        Ex_ch7P5IBAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7P5IBNMDAlongrange

// NMDA synapse for P5IB - P5IB

    if ({exists Ex_ch7P5IBNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7P5IBNMDAlongrange

        setfield     Ex_ch7P5IBNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7P5IBNMDAlongrange/block
        setfield         Ex_ch7P5IBNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7P5IBNMDAlongrange Ex_ch7P5IBNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7P5IBNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7P5IBNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7P5IBNMDAlongrange VOLTAGE Vm

end

function make_Inh_ch7B5FSGABAalongrange

//GABA_A synapse for B5FS - P5IB

	if ({exists Inh_ch7B5FSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7B5FSGABAalongrange
    	setfield	        Inh_ch7B5FSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 6.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Ex_ch7P6RSAMPAlongrange

// AMPA synapse for P6RS - P5IB

	if ({exists Ex_ch7P6RSAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7P6RSAMPAlongrange
    	setfield	        Ex_ch7P6RSAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7P6RSNMDAlongrange

// NMDA synapse for P6RS - P5IB

    if ({exists Ex_ch7P6RSNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7P6RSNMDAlongrange

        setfield     Ex_ch7P6RSNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7P6RSNMDAlongrange/block
        setfield         Ex_ch7P6RSNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7P6RSNMDAlongrange Ex_ch7P6RSNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7P6RSNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7P6RSNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7P6RSNMDAlongrange VOLTAGE Vm

end

function make_Inh_ch7C23FSGABAalongrange

//GABA_A synapse for C23FS - P5IB

	if ({exists Inh_ch7C23FSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7C23FSGABAalongrange
    	setfield	        Inh_ch7C23FSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 6.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Inh_ch7C5FSGABAalongrange

//GABA_A synapse for C5FS - P5IB

	if ({exists Inh_ch7C5FSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7C5FSGABAalongrange
    	setfield	        Inh_ch7C5FSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 6.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Ex_ch7ST4RSAMPAlongrange

// AMPA synapse for ST4RS - P5IB

	if ({exists Ex_ch7ST4RSAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7ST4RSAMPAlongrange
    	setfield	        Ex_ch7ST4RSAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7ST4RSNMDAlongrange

// NMDA synapse for ST4RS - P5IB

    if ({exists Ex_ch7ST4RSNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7ST4RSNMDAlongrange

        setfield     Ex_ch7ST4RSNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7ST4RSNMDAlongrange/block
        setfield         Ex_ch7ST4RSNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7ST4RSNMDAlongrange Ex_ch7ST4RSNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7ST4RSNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7ST4RSNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7ST4RSNMDAlongrange VOLTAGE Vm

end

function make_Inh_ch7I23LTSGABAalongrange

//GABA_A synapse for I23LTS - P5IB

	if ({exists Inh_ch7I23LTSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7I23LTSGABAalongrange
    	setfield	        Inh_ch7I23LTSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 20.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Inh_ch7I5LTSGABAalongrange

//GABA_A synapse for I5LTS - P5IB

	if ({exists Inh_ch7I5LTSGABAalongrange})
		return
	end

	create		synchan	Inh_ch7I5LTSGABAalongrange
    	setfield	        Inh_ch7I5LTSGABAalongrange \
	Ek			{ EGABA } \
	tau1		{ 20.0e-3 } \	// sec
    tau2        { 1.0e-12 } \    // sec
	gmax		{GGABA}		// Siemens
end

function make_Ex_ch7TCRAMPAlongrange

// AMPA synapse for TCR - P5IB

	if ({exists Ex_ch7TCRAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7TCRAMPAlongrange
    	setfield	        Ex_ch7TCRAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7TCRNMDAlongrange

// NMDA synapse for TCR - P5IB

    if ({exists Ex_ch7TCRNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7TCRNMDAlongrange

        setfield     Ex_ch7TCRNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7TCRNMDAlongrange/block
        setfield         Ex_ch7TCRNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7TCRNMDAlongrange Ex_ch7TCRNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7TCRNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7TCRNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7TCRNMDAlongrange VOLTAGE Vm

end

function make_Ex_ch7TCRAMPAlongrange

// AMPA synapse for TCR - P5IB

	if ({exists Ex_ch7TCRAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7TCRAMPAlongrange
    	setfield	        Ex_ch7TCRAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7TCRNMDAlongrange

// NMDA synapse for TCR - P5IB

    if ({exists Ex_ch7TCRNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7TCRNMDAlongrange

        setfield     Ex_ch7TCRNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7TCRNMDAlongrange/block
        setfield         Ex_ch7TCRNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7TCRNMDAlongrange Ex_ch7TCRNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7TCRNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7TCRNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7TCRNMDAlongrange VOLTAGE Vm

end

function make_Ex_ch7P23FRBAMPAlongrange

// AMPA synapse for P23FRB - P5IB

	if ({exists Ex_ch7P23FRBAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7P23FRBAMPAlongrange
    	setfield	        Ex_ch7P23FRBAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7P23FRBNMDAlongrange

// NMDA synapse for P23FRB - P5IB

    if ({exists Ex_ch7P23FRBNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7P23FRBNMDAlongrange

        setfield     Ex_ch7P23FRBNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7P23FRBNMDAlongrange/block
        setfield         Ex_ch7P23FRBNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7P23FRBNMDAlongrange Ex_ch7P23FRBNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7P23FRBNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7P23FRBNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7P23FRBNMDAlongrange VOLTAGE Vm

end

function make_Ex_ch7P5RSAMPAlongrange

// AMPA synapse for P5RS - P5IB

	if ({exists Ex_ch7P5RSAMPAlongrange})
		return
	end

	create		synchan	Ex_ch7P5RSAMPAlongrange
    	setfield	        Ex_ch7P5RSAMPAlongrange \
		Ek			{EGlu} \
		tau1		{ 2.0e-3 } \	// sec
		tau2		{ 2.0e-3 } \ 	// sec
		gmax		{GGlu} // Siemens
end

function make_Ex_ch7P5RSNMDAlongrange

// NMDA synapse for P5RS - P5IB

    if ({exists Ex_ch7P5RSNMDAlongrange})
        return
    end

    create  synchan  Ex_ch7P5RSNMDAlongrange

        setfield     Ex_ch7P5RSNMDAlongrange     \
        Ek           {EGlu}         \
        tau2         { 0.67e-3 }    \ // sec
        tau1         { 130.0e-3 }   \ // sec
        gmax         {GGlu}           // Siemens

    create Mg_block Ex_ch7P5RSNMDAlongrange/block
        setfield         Ex_ch7P5RSNMDAlongrange/block \
        CMg              {CMg}            \
        KMg_A            {1.0/eta}        \
        KMg_B            {1.0/gamma}      

    addmsg Ex_ch7P5RSNMDAlongrange Ex_ch7P5RSNMDA/block CHANNEL Gk Ek

    addmsg Ex_ch7P5RSNMDAlongrange/block . CHANNEL Gk Ek

    addmsg . Ex_ch7P5RSNMDAlongrange/block VOLTAGE Vm

    // Even though we don't use the channel current, CHECK expects this message.

    // addmsg . Ex_ch7P5RSNMDAlongrange VOLTAGE Vm

end

Loading data, please wait...