Model of the cerebellar granular network (Sudhakar et al 2017)

 Download zip file   Auto-launch 
Help downloading and running models
"The granular layer, which mainly consists of granule and Golgi cells, is the first stage of the cerebellar cortex and processes spatiotemporal information transmitted by mossy fiber inputs with a wide variety of firing patterns. To study its dynamics at multiple time scales in response to inputs approximating real spatiotemporal patterns, we constructed a large-scale 3D network model of the granular layer. ..."
1 . Sudhakar SK, Hong S, Raikov I, Publio R, Lang C, Close T, Guo D, Negrello M, De Schutter E (2017) Spatiotemporal network coding of physiological mossy fiber inputs by the cerebellar granular layer. PLoS Comput Biol 13:e1005754 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Cerebellum;
Cell Type(s): Cerebellum golgi cell;
Channel(s): I A; I Calcium; I K; I K,Ca; I Na,t; I h; I Na,p; I T low threshold;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; NMDA; Gaba;
Transmitter(s): Glutamate; Gaba;
Simulation Environment: NEURON;
Model Concept(s): Spatio-temporal Activity Patterns; Oscillations; Synchronization; Winner-take-all;
Implementer(s): Hong, Sungho [shhong at]; Guo, Daqing [dqguo at]; Raikov, Ivan [ivan.g.raikov at]; Publio, Rodrigo [publio at]; De Schutter, Erik [erik at];
Search NeuronDB for information about:  AMPA; NMDA; Gaba; I Na,p; I Na,t; I T low threshold; I A; I K; I h; I K,Ca; I Calcium; Gaba; Glutamate;
/*******Cerebellar Granule Cell Model **********

FILE: Granule_template.hoc

// Cerebellum Granular Cell Model
// Last revised by Fontana Andrea 5.2.1999
// Last revised by Nieus Thierry 11.1.2001

FILE: Granule_template.hoc

Adapted by Sungho Hong and Claus Lang
Computational Neuroscience Unit, Okinawa Institute of Science and Technology, Japan
Supervision: Erik De Schutter

Correspondence: Sungho Hong (

September 16, 2017

begintemplate GC_cl
public soma, axon,connect2target, MFdel,GoCID,spiketime, spikecount,ite,GLID,gabai,gabag,record_flag
public ampa, gaba, NMDA, synapses, MFID,GoCdel,spikecount,AP, cellID,setv,MFT,MFI,Volvec
create soma

objref netcon, nil, MFID, MFdel,GoCID, spiketime, AP, spikecount,MFT,MFI,ICl,Volvec
objref ampa, gaba, NMDA, synapses,GoCdel,spikecount,AP, cellID,GLID,gabag,gabai,alph,syntonicGABA

proc init() {

	MFID = new Vector()
	MFI = new Vector()
    gabag = new Vector()
    gabai = new Vector()
	ite = 0
    record_flag = 0
	MFdel = new Vector()
	GoCID = new Vector()
    GLID=new Vector()
	GoCdel = new Vector()
	cellID = new Vector()
	spiketime = new Vector()
	spikecount= new Vector()
    Volvec = new Vector()
	ampa = new List()
	gaba = new List()
	NMDA = new List()
    alph = new Random(eseed)
	create soma
	soma {
        ICl=new IClamp(0.5)

        nseg = 1
    	diam = 9.76
    	L = 9.76
    	cm = 1
    	Ra = 100

        dprob=alph.uniform(-diam*0.2, diam*0.2)
        diam = diam + dprob


        insert GRANULE_LKG1
    	insert GRANULE_LKG2
    	insert GRANULE_Nmda_leak
    	insert GRANULE_NA
    	insert GRANULE_NAR
    	insert GRANULE_PNA
    	insert GRANULE_KV
    	insert GRANULE_KA
    	insert GRANULE_KIR
    	insert GRANULE_KCA
    	insert GRANULE_KM
    	insert GRANULE_CA
    	insert GRANULE_CALC

    	usetable_GRANULE_NA = 1
    	usetable_GRANULE_NAR = 1
    	usetable_GRANULE_PNA = 1
    	usetable_GRANULE_KV  = 1
    	usetable_GRANULE_KA = 1
    	usetable_GRANULE_KIR = 1
    	usetable_GRANULE_KCA = 1
    	usetable_GRANULE_KM = 1
    	usetable_GRANULE_CA = 1
		usetable_GRANULE_Nmda_leak = 1

        fix_celsius_GRANULE_LKG1 = fix_celsius
    	fix_celsius_GRANULE_LKG2 = fix_celsius
    	fix_celsius_GRANULE_Nmda_leak = fix_celsius
    	fix_celsius_GRANULE_NA = fix_celsius
    	fix_celsius_GRANULE_NAR = fix_celsius
    	fix_celsius_GRANULE_PNA = fix_celsius
    	fix_celsius_GRANULE_KV = fix_celsius
    	fix_celsius_GRANULE_KA = fix_celsius
    	fix_celsius_GRANULE_KIR = fix_celsius
    	fix_celsius_GRANULE_KCA = fix_celsius
    	fix_celsius_GRANULE_KM = fix_celsius
    	fix_celsius_GRANULE_CA = fix_celsius
    	fix_celsius_GRANULE_CALC = fix_celsius

        ena = 87.39
    	ek = -84.69
    	eca = 129.33
    	ecl = -65

        // syntonicGABA = new GrCtonicGABA(0.5)

		// create a different seed for each synapse
		for i=0,0 {
    		ampa.append(new GrCAMPAplusNMDA(0.5))
            // gaba.append(new GrCGABAreduced(0.5))
            // instead using the old GABA mechanism
            gaba.append(new GrCGABAexp(0.5))
            gaba.object(i).tau1 =  3
            gaba.object(i).tau2 =  5
            gaba.object(i).tau3 =  35

		AP = new APCount(0.5)
    	AP.thresh = -10

obfunc connect2target() {localobj nc // $o1 target point proces, optinal $o2 returned Netcon
    soma nc = new NetCon(&v(0.5),$o1)
    if (numarg()==2) {$o2 = nc} // for backward compatibility
    return nc

proc setv() {
    forall v = $1

endtemplate GC_cl

Loading data, please wait...