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 gap junctions
//
// 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 Gap
public src, target, g, valid, pr, set_gm, gm, cm
objref srcsec, targetsec, cm, gm, y, b, xvec, sl, lm, this, fih
strdef tstr

proc init(){
    g_ = 10
    valid_ = 0
    cm = new Matrix(2,2,2)
    gm = new Matrix(2,2)
    y = new Vector(2)
    b = new Vector(2)
    xvec = new Vector(2)
}

func src() {
    srcsec = new SectionRef()
    xvec.x[0] = $1
    valid_ = 0
    return valid()
}

func target() {
    targetsec = new SectionRef()
    xvec.x[1] = $1
    valid_ = 0
    return valid()
}

func g() {
    if (numarg() > 0) {
        g_ = $1
        if (valid_) {
            set_gm()
        }
    }
    return g_
}

proc set_gm() { local us, a// conductance in nanosiemens
    if (valid_ == 0) { return }
    us = .001*g_
    srcsec.sec { a = 100/area(xvec.x[0]) }
    gm.x[0][0] = us*a
    gm.x[0][1] = -us*a
    targetsec.sec { a = 100/area(xvec.x[1]) }
    gm.x[1][1] = us*a
    gm.x[1][0] = -us*a
}

func valid() {
    if (valid_ == 0) {
        if (object_id(srcsec) && object_id(targetsec)) {
            mkgap()
        }
    }
    return valid_
}

proc mkgap() {
    sl = new SectionList()
    srcsec.sec sl.append()
    targetsec.sec sl.append()
    valid_ = 1
    set_gm()
    lm = new LinearMechanism(cm, gm, y, b, sl, xvec)
    // only necessary because we anticpate changes in diameter
    // fih = new FInitializeHandler(0, "set_gm()")
    // unfortunately up through the  5.6 2004/02/09 Main (44)
    // version there is an error in parsing the third arg, so
    sprint(tstr, "%s.set_gm()", this)
    fih = new FInitializeHandler(0, tstr)
}

proc pr() {
    if (valid_) {
srcsec.sec printf("%s %s(%g)", this, secname(), xvec.x[0])
targetsec.sec printf("---%s(%g) \tg = %g (ns)\n", secname(), xvec.x[1], g())
    }else{
        printf("%s not used\n", this)
    }
}
endtemplate Gap

Loading data, please wait...