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

 Download zip file   Auto-launch 
Help downloading and running models
Accession:232023
"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. ..."
Reference:
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;
Gene(s):
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 oist.jp]; Guo, Daqing [dqguo at uestc.edu.cn]; Raikov, Ivan [ivan.g.raikov at gmail.com]; Publio, Rodrigo [publio at oist.jp]; De Schutter, Erik [erik at oist.jp];
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;
// Template for connections from cerebellar granule to Golgi cells
//
// Written by Shyam Kumar Sudhakar, Ivan Raikov, Tom Close, Rodrigo Publio, Daqing Guo, and Sungho Hong
// Computational Neuroscience Unit, Okinawa Institute of Science and Technology, Japan
// Supervisor: Erik De Schutter
//
// Correspondence: Sungho Hong (shhong@oist.jp)
//
// September 16, 2017

begintemplate GCtoGoC
external GranulePop,GolgiPop, step_time,numDendGolgi,numAMPAGolgiPF,numAMPAGolgiGC,gseed,CV_gmax,GoC_Ad_nseg,GoC_Bd_nseg,AA_GoC_con
objref  excNCelem,pc

proc init() { local i,j,count,axonid,pfid localobj nc,ncm,cell,dendrite,nc1,dendritenmda,r

    print "Connecting GCtoGoC"
    r=new Random(gseed)
    numGC  = GranulePop.nCells
    numGoC = GolgiPop.nCells

    mAMPA= 200e-6 //uS
    mNMDA=(800e-6)/2 //uS
    SDAMPA  = mAMPA*CV_gmax
    SDNMDA  = mNMDA*CV_gmax
    mAMPA1  = 240e-6
    SDAMPA1  = mAMPA1*CV_gmax


    del = 20
    thresh = -10

    pc = new ParallelContext()
    objref excNCelem
    excNCelem = new List()


    // Connect ascending axons to dendrites at the GL

    for (i=pc.id; i < numGoC; i +=pc.nhost) {

    cell = pc.gid2cell(i+GolgiPop.startindex)

    if(cell.AxonID.size()>1){ // At least 1 PF connection

        for j=0, cell.AxonID.size()-1 {

           axonid        = cell.AxonID.x(j)

           if (AA_GoC_con == 1) { //for brep connectivity
           dendno        = cell.AAdend.x(j)
           segno         = cell.AAseg.x(j)

           if (dendno<3) { //Ascending axons to Basal dendrites

           objpos        = ((dendno-1)*GoC_Bd_nseg)+segno-1
           dendrite	 = cell.AAampa.object(objpos)
           dendritenmda  = cell.AAnmda.object(objpos)

           }else{  // Ascending axons to apical
           objpos        = ((dendno-3)*GoC_Ad_nseg)+segno-1
           dendrite      = cell.PFampa.object(objpos)
           dendritenmda  = cell.PFnmda.object(objpos)
           }
           }else{ //for hoc connectivity
           dendno        = r.discunif(1,2) // pick a random dendrite
           segno         = r.discunif(1,GoC_Bd_nseg) // pick a random segment no
           objpos        = ((dendno-1)*GoC_Bd_nseg)+segno-1 // pick the object position from the list
           dendrite	 = cell.AAampa.object(objpos)
           dendritenmda  = cell.AAnmda.object(objpos)
           }


           nc            = pc.gid_connect(axonid,dendrite)
           //nc1         = pc.gid_connect(axonid,dendritenmda)


           if (cell.Axondel.x(j)<=step_time){
                nc.delay =  step_time + step_time/10
             // nc1.delay = step_time + step_time/10
            }else{
                nc.delay = cell.Axondel.x(j)
             // nc1.delay = cell.Axondel.x(j)

            }

            wAMPA        = r.normal(mAMPA,SDAMPA*SDAMPA)
            wNMDA        = r.normal(mNMDA,SDNMDA*SDNMDA)

            nc.weight    = wAMPA
            // nc1.weight = wNMDA
            excNCelem.append(nc)
            // excNCelem.append(nc1)


        }
    }
    }

    // Connect PF to dendrites at the ML

    for (i=pc.id; i < numGoC; i +=pc.nhost) {

    cell = pc.gid2cell(i+GolgiPop.startindex)

    if (cell.PFID.size()>1) { // At least 1 MF connection

        for j=0, cell.PFID.size()-1 {
        pfid          = cell.PFID.x(j)
        dendno        = cell.PFdend.x(j)
        segno         = cell.PFseg.x(j)
        objpos        = ((dendno-3)*GoC_Ad_nseg)+segno-1


        dendrite      = cell.PFampa.object(objpos)
        dendritenmda  = cell.PFnmda.object(objpos)

        nc = pc.gid_connect(pfid,dendrite)
        // nc1 = pc.gid_connect(pfid,dendritenmda)

        if (cell.PFdel.x(j)<=step_time) {
           nc.delay   = step_time + step_time/10
        // nc1.delay  = step_time + step_time/10

        }else{
           nc.delay   = cell.PFdel.x(j)
        // nc1.delay  = cell.PFdel.x(j)

        }

            wAMPA     = r.normal(mAMPA,SDAMPA*SDAMPA)
            wNMDA     = r.normal(mNMDA,SDNMDA*SDNMDA)

            if (cell.PFID.size()>5800) { // Extra scaling for some dangerously over-connected cells
                nc.weight = wAMPA*(4750/6200)
            } else {
                nc.weight = wAMPA
            }

         // nc1.weight= wNMDA
            excNCelem.append(nc)
         // excNCelem.append(nc1)

        }
    }
    }


} // end init
endtemplate GCtoGoC

objref ncGCtoGoC[1]
ncGCtoGoC[0] = new GCtoGoC()

Loading data, please wait...