Olfactory bulb mitral cell gap junction NN model: burst firing and synchrony (O`Connor et al. 2012)

 Download zip file 
Help downloading and running models
Accession:146030
In a network of 6 mitral cells connected by gap junction in the apical dendrite tuft, continuous current injections of 0.06 nA are injected into 20 locations in the apical tufts of two of the mitral cells. The current injections into one of the cells starts 10 ms after the other to generate asynchronous firing in the cells (Migliore et al. 2005 protocol). Firing of the cells is asynchronous for the first 120 ms. However after the burst firing phase is completed the firing in all cells becomes synchronous.
Reference:
1 . O'Connor S, Angelo K, Jacob TJC (2012) Burst firing versus synchrony in a gap junction connected olfactory bulb mitral cell network model Frontiers in Computational Neuroscience 6:75:1-18 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell;
Channel(s): I Na,t; I L high threshold; I A; I K; I K,Ca;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Bursting; Oscillations; Synchronization; Active Dendrites; Influence of Dendritic Geometry; Calcium dynamics; Olfaction;
Implementer(s):
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; I Na,t; I L high threshold; I A; I K; I K,Ca;
/
oconnoretal2012
README
AMPA.mod
Ca_mit_conc_ChannelML.mod
CurrentClampExt.mod
KA_ChannelML.mod
KCa3_ChannelML_new.mod
Kdr_ChannelML.mod
LCa3_mit_usb_ChannelML.mod
LeakConductance.mod
NaxSH0_ChannelML.mod
NaxSH10_ChannelML.mod
SynForRndSpike.mod
Cell1.hoc
Cell2.hoc
Cell3.hoc
Cell4.hoc
Cell5.hoc
Cell6.hoc
cellCheck.hoc
CellPositions.dat
ElectricalInputs.dat
gap.hoc
init.hoc
mosinit.hoc *
nCtools.hoc
NetworkConnections.dat
regenerateMods
simulation.props
                            
/*
 *
 * A neuroConstruct helper file to print out details of a single cell's overall state
 * and a helper function for the current NEURON state
 *
 */

objref mt, ms
mt = new MechanismType(0)
         
double totParamVal[32] // max number params

dummyRevPot = 99999


proc cellInfo() {

    totalDiam = 0 
    totalNseg = 0 
    totalL = 0 
    
    totalRa = 0
    totalCm = 0
    
    numSections = 0 
    
    forall {
    
        totalDiam = totalDiam + diam
        totalNseg = totalNseg + nseg
        totalRa = totalRa + Ra
        totalCm = totalCm + cm
        
        totalL = totalL + L
        numSections = numSections + 1
    }
    
    print "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

    print "+        "
    print "+        Temperature:        ", celsius
    print "+        "
    print "+        Total diam:         ", totalDiam
    print "+        Total length        ", totalL
    print "+        Total nseg:         ", totalNseg
    print "+        Total Ra:           ", totalRa
    print "+        Total cm:           ", totalCm
    print "+        "
    
    strdef mname
    strdef pname
    
    totEk = 0
    totko = 0
    totki = 0
    numEk = 0
    totENa = 0
    totnao = 0
    totnai = 0
    numENa = 0
    totECa = 0
    totcai = 0
    totcao = 0
    numECa = 0
    
    forall { 
        if (ismembrane("k_ion")) {
            numEk = numEk +1
            totEk = totEk + ek
            totko = totko + ko
            totki = totki + ki
        }
        if (ismembrane("na_ion")) {
            numENa = numENa +1
            totENa = totENa + ena
            totnao = totnao + nao
            totnai = totnai + nai
        }
        if (ismembrane("ca_ion")) {
            numECa = numECa +1
            totECa = totECa + eca
            totcai = totcai + cai
            totcao = totcao + cao
        }
     }
     
     if ( numEk != 0 ){
        print "+        k ion on ", numEk,"secs, ave rev pot:  ", (totEk/numEk), ", int conc: ",(totki/numEk), ", ext conc: ",(totko/numEk)
     }
     if ( numENa != 0 ){
        print "+        na ion on ", numENa,"secs, ave rev pot:  ", (totENa/numENa), ", int conc: ",(totnai/numENa), ", ext conc: ",(totnao/numENa)
     }
     if ( numECa != 0 ){
        print "+        ca ion on ", numECa,"secs, ave rev pot:  ", (totECa/numECa), ", int conc: ",(totcai/numECa), ", ext conc: ",(totcao/numECa)
     }
    
    print "+        "
    
    for i=0, mt.count()-1 {
         mt.select(i)
         mt.selected(mname)
         numPresent = 0
         ms = new MechanismStandard(mname, 1)
         numParams = ms.count()
         
         
         for j=0, numParams-1 {
            totParamVal[j] = 0
         }
         
         
         forall { 
            if (ismembrane(mname)) {
                numPresent = numPresent + 1
                
                ms.in() // load with values of current section
                
                for j=0, numParams-1 {
                    ms.name(pname, j)
                    //print "Param: ", pname, " value: ", ms.get(pname)
                    
                    totParamVal[j] = totParamVal[j] + ms.get(pname)
                }
            }
         }
         
         if (numPresent>0) {
            print "+        Mechanism:  ", mname, " present on: ", numPresent, "sections, num params: ", numParams, ""
            for j=0, numParams-1 {
                ms.name(pname, j)
                print "+            - ", pname, " AVE value all sections: ", (totParamVal[j]/numPresent)
            }
         }
    }
    
    
    print "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"


}




proc simInfo() {

    print "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
    
    
    active = cvode.active()
    
    
    print "+    Simulation temperature:       ", celsius
    print "+    tstop:                        ", tstop
    print "+    dt:                           ", dt
    print "+    Variable time step active:    ", active
    
    print "++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

}

Loading data, please wait...